Predefine __NO_MATH_ERRNO__ for -fno-math-errno.
[gcc.git] / gcc / ChangeLog
1 2014-11-12 Joseph Myers <joseph@codesourcery.com>
2
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.
6
7 2014-11-12 Richard Biener <rguenther@suse.de>
8
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.
31
32 2014-11-12 Jakub Jelinek <jakub@redhat.com>
33
34 PR c/59708
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
61 functions.
62 (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
63 into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
64 never used.
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
82 arguments for it.
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
86 for it.
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
90 internal functions.
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
95 internal functions.
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.
101
102 2014-11-12 Richard Biener <rguenther@suse.de>
103
104 * genmatch.c (capture_info::capture_info): Add missing
105 COND_EXPR handling.
106 (capture_info::walk_match): Fix COND_EXPR handling.
107 (capture_info::walk_result): Likewise.
108
109 2014-11-12 Richard Biener <rguenther@suse.de>
110
111 PR middle-end/63821
112 * match.pd: Add missing conversion to the -(T)-X pattern.
113
114 2014-11-12 Richard Biener <rguenther@suse.de>
115
116 PR bootstrap/63819
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.
120
121 2014-11-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
122
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
131 gsi parameter.
132
133 2014-11-12 Richard Sandiford <richard.sandiford@arm.com>
134
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.
140
141 2014-11-12 Tejas Belagod <tejas.belagod@arm.com>
142
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.
151
152 2014-11-11 Patrick Palka <ppalka@gcc.gnu.org>
153
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.
163
164 2014-11-11 Andrew Pinski <apinski@cavium.com>
165
166 Bug target/61997
167 * config.gcc (aarch64*-*-*): Set target_gtfiles to include
168 aarch64-builtins.c.
169 * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
170 at the end of the file.
171
172 2014-11-11 Anthony Brandon <anthony.brandon@gmail.com>
173 Manuel López-Ibáñez <manu@gcc.gnu.org>
174
175 PR driver/36312
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
181 the same.
182
183 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
184
185 * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
186
187 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
188
189 PR target/61535
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.
194
195 2014-11-11 David Malcolm <dmalcolm@redhat.com>
196
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
203 builddir.
204 (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
205 (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
206 out.
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.
216 (TV_ASSEMBLE): New.
217 (TV_LINK): New.
218 (TV_LOAD): New.
219
220 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
221
222 PR target/63610
223 * configure: Regenerate.
224
225 2014-11-11 James Greenhalgh <james.greenhalgh@arm.com>
226
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.
231
232 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
233
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.
239
240 2014-11-11 Evgeny Stupachenko <evstupac@gmail.com>
241
242 * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
243 permutations on power of 2 cases.
244
245 2014-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
246
247 * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
248 (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
249
250 2014-11-11 Richard Biener <rguenther@suse.de>
251
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.
255
256 2014-11-11 Martin Liska <mliska@suse.cz>
257
258 PR ipa/63622
259 PR ipa/63795
260 * ipa-icf.c (sem_function::merge): Add new target symbol alias
261 support guard.
262 (sem_variable::merge): Likewise.
263 * ipa-icf.h (target_supports_symbol_aliases_p): New function.
264
265 2014-11-11 Richard Biener <rguenther@suse.de>
266
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.
275
276 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
277
278 * system.h: Include algorithm and utility.
279 * rtl.h: Do not include utility here.
280 * wide-int.h: Ditto.
281 * tree-vect-data-refs.c (swap): Remove template.
282 (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
283
284 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
285
286 PR bootstrap/63699
287 PR bootstrap/63750
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>.
292
293 2014-11-11 Terry Guo <terry.guo@arm.com>
294
295 * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
296 * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
297 registers.
298 (*thumb1_movhf): Likewise.
299
300 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
301
302 * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
303 instead of INT64_MAX.
304
305 2014-11-11 Tobias Burnus <burnus@net-b.de>
306
307 * doc/install.texi (Prerequisites): Remove CLooG.
308
309 2014-11-10 Trevor Saunders <tsaunders@mozilla.com>
310
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.
316 (debug): Adjust.
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.
336
337 2014-11-11 Bin Cheng <bin.cheng@arm.com>
338
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.
342
343 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
344
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.
362 (*addhi_1): Ditto.
363 (*addqi_1): 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.
370
371 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
372
373 Revert:
374 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
375
376 PR target/63620
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.
381 (*pushxf): Ditto.
382 (*pushdf): Ditto.
383
384 2014-11-11 Jakub Jelinek <jakub@redhat.com>
385 Martin Liska <mliska@suse.cz>
386
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.
390
391 2014-11-10 Vladimir Makarov <vmakarov@redhat.com>
392
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.
398
399 2014-11-10 Patrick Palka <ppalka@gcc.gnu.org>
400
401 PR middle-end/63748
402 * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
403 SSA copies whose source and destination names both occur in
404 abnormal PHIs.
405
406 2014-11-10 Roman Gareev <gareevroman@gmail.com>
407
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.
421
422 2014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
423
424 * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
425 Add.
426
427 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
428
429 * config/frv/frv.c (frv_io_handle_use_1): Delete.
430 (frv_io_handle_use): Use find_all_hard_regs.
431
432 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
433
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.
438
439 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
440
441 * config/frv/frv.c: Include rtl-iter.h.
442 (frv_acc_group_1): Delete.
443 (frv_acc_group): Use FOR_EACH_SUBRTX.
444
445 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
446
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.
450
451 2014-11-10 Jan Hubicka <hubicka@ucw.cz>
452
453 PR bootstrap/63573
454 * calls.c (initialize_argument_information): When emitting thunk call
455 use original memory placement of the argument.
456
457 2014-11-10 Renlin Li <renlin.li@arm.com>
458
459 PR middle-end/61529
460 * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
461
462 2014-11-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
463
464 * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
465 bswaphi if available.
466
467 2014-11-10 Bernd Schmidt <bernds@codesourcery.com>
468
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-*-*.
477
478 2014-11-10 Richard Biener <rguenther@suse.de>
479
480 * tree-ssa-operands.c (finalize_ssa_uses): Properly put
481 released operands on the free list.
482
483 2014-11-10 Richard Biener <rguenther@suse.de>
484
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.
488
489 2014-11-10 Richard Biener <rguenther@suse.de>
490
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.
496
497 2014-11-10 Richard Biener <rguenther@suse.de>
498
499 PR middle-end/63798
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.
503
504 2014-11-10 Joern Rennecke <joern.rennecke@embecosm.com>
505
506 * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
507
508 2014-11-10 Martin Liska <mliska@suse.cz>
509
510 * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
511 for the test because of default char signedness
512 on powerpc64 target.
513
514 2014-11-10 Richard Biener <rguenther@suse.de>
515
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.
519
520 2014-11-10 Richard Biener <rguenther@suse.de>
521
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.
526
527 2014-11-10 Eric Botcazou <ebotcazou@adacore.com>
528
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.
531
532 2014-11-10 Yuri Rumyantsev <ysrumyan@gmail.com>
533
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.
539
540 2014-11-09 Jason Merrill <jason@redhat.com>
541
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.
546
547 2014-11-09 Joern Rennecke <joern.rennecke@embecosm.com>
548
549 * config/avr/predicates.md (low_io_address_operand): Fix typo.
550
551 2014-11-09 Vladimir Makarov <vmakarov@redhat.com>
552
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
558 the new names.
559 (undo_optional_reloads): Ditto.
560 * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
561 New prototypes.
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
566 bb_killed_pseudos.
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
577 analysis.
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.
583
584 2014-11-09 Richard Biener <rguenther@suse.de>
585
586 * match.pd: Add patterns convering two conversions in a row
587 from fold-const.c.
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.
592
593 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
594
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.
598
599 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
600
601 * config/arm/arm.c (arm_note_pic_base): Delete.
602 (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
603
604 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
605
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.
609
610 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
611
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
616 insn itself.
617 (arm_no_early_store_addr_dep): Likewise.
618
619 2014-11-08 Eric Botcazou <ebotcazou@adacore.com>
620
621 * config/arm/arm.c (arm_set_return_address): Mark the store as frame
622 related, if any.
623 (thumb_set_return_address): Likewise.
624
625 2014-11-07 Jeff Law <law@redhat.com>
626
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.
630
631 2014-11-07 Richard Biener <rguenther@suse.de>
632
633 PR tree-optimization/63605
634 * fold-const.c (fold_binary_loc): Properly use element_precision
635 for types that may not be scalar.
636
637 2014-11-07 Evgeny Stupachenko <evstupac@gmail.com>
638
639 PR target/63534
640 * config/i386/i386.md (builtin_setjmp_receiver): Use
641 pic_offset_table_rtx for PIC register.
642 (nonlocal_goto_receiver): Delete.
643
644 2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
645
646 * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
647 * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
648
649 2014-11-07 Martin Liska <mliska@suse.cz>
650
651 PR ipa/63580
652 * cgraphunit.c (cgraph_node::create_wrapper):
653 TREE_ADDRESSABLE is set to false for a newly created thunk.
654
655 2014-11-07 Martin Liska <mliska@suse.cz>
656
657 PR ipa/63747
658 * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
659 Missing checking for CASE_LOW and CASE_HIGH added.
660
661 2014-11-07 Martin Liska <mliska@suse.cz>
662
663 PR ipa/63595
664 * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
665 is correctly handled for thunks created by IPA ICF.
666
667 2014-11-07 Jiong Wang <jiong.wang@arm.com>
668 2014-11-07 Richard Biener <rguenther@suse.de>
669
670 PR tree-optimization/63676
671 * gimple-fold.c (fold_gimple_assign): Do not fold node when
672 TREE_CLOBBER_P be true.
673
674 2014-11-07 Richard Biener <rguenther@suse.de>
675
676 PR middle-end/63770
677 * match.pd: Guard conflicting GENERIC pattern properly.
678
679 2014-11-07 Richard Biener <rguenther@suse.de>
680
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.
701
702 2014-11-07 Terry Guo <terry.guo@arm.com>
703
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.
712
713 2014-11-06 John David Anglin <danglin@gcc.gnu.org>
714
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
717 or in_call_delay.
718
719 2014-11-06 Steve Ellcey <sellcey@imgtec.com>
720
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
724 of tm_defines.
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.
729
730 2014-11-06 Joseph Myers <joseph@codesourcery.com>
731
732 * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
733 cases of extended identifiers.
734
735 2014-11-06 Eric Botcazou <ebotcazou@adacore.com>
736
737 * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
738
739 2014-11-06 DJ Delorie <dj@redhat.com>
740
741 * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
742 conditional.
743 (movhicc_<code>_<mode>): Likewise.
744 * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
745 subregs.
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.
749
750 2014-11-06 Bernd Schmidt <bernds@codesourcery.com>
751
752 * function.c (thread_prologue_and_epilogue_insns): No longer static.
753 * function.h (thread_prologue_and_epilogue_insns): Declare.
754
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.
767
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
774 hooks.
775 (expand_library_call_value_1): Use the two new hooks.
776
777 * expr.c (use_reg_mode): Just return for pseudo registers.
778
779 * combine.c (try_combine): Don't allow a call as one of the source
780 insns.
781
782 * target.def (decl_end): New hook.
783 * varasm.c (assemble_variable_contents, assemble_constant_contents):
784 Use it.
785 * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
786 * doc/tm.texi: Regenerate.
787
788 2014-11-06 Renlin Li <renlin.li@arm.com>
789
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.
795
796 2014-11-06 James Greenhalgh <james.greenhalgh@arm.com>
797
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
803 parameters.
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.
807
808 2014-11-06 Marek Polacek <polacek@redhat.com>
809
810 * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
811 Remove vector limit.
812
813 2014-11-06 Richard Biener <rguenther@suse.de>
814
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.
830
831 2014-11-06 Hale Wang <hale.wang@arm.com>
832
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.
845
846 2014-11-06 Hale Wang <hale.wang@arm.com>
847
848 * config/arm/arm.c: Add cortex-m7 tune.
849 * config/arm/arm-cores.def: Use cortex-m7 tune.
850
851 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
852
853 PR target/63538
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.
860
861 2014-11-05 Joseph Myers <joseph@codesourcery.com>
862
863 PR preprocessor/9449
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.
871
872 2014-11-05 Ilya Tocar <ilya.tocar@intel.com>
873
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.
879
880 2014-11-05 Ilya Enkovich <ilya.enkovich@intel.com>
881
882 * ipa-chkp.c: New.
883 * ipa-chkp.h: New.
884 * tree-chkp.c: New.
885 * tree-chkp.h: New.
886 * tree-chkp-opt.c: New.
887 * rtl-chkp.c: New.
888 * rtl-chkp.h: New.
889 * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
890 tree-chkp-opt.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.
910 (BOUNDED_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
920 flag.
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
929 pointer_offset.
930 (store_bounds): New.
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
935 in bounds table.
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
953 stores and loads.
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
957 the stack.
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
962 returned bounds.
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
974 function.
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
995 value CONST_INT.
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.
1098 (Wchkp): 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
1113 IPA_REF_CHKP.
1114 * ipa-inline.c (early_inliner): Check edge has summary allocated.
1115 * ipa-split.c: Include tree-chkp.h.
1116 (find_retbnd): New.
1117 (split_part_set_ssa_name_p): New.
1118 (consider_split): Do not split retbnd and retval
1119 producers.
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
1136 used by free calls.
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
1149 assign_stmts.
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
1161 thunks.
1162 * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
1163 field.
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
1179 returned bounds.
1180 * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
1181 reference.
1182 (cgraph_rebuild_references): Likewise.
1183 * cgraphunit.c: Include tree-chkp.h.
1184 (assemble_thunks_and_aliases): Skip thunks calling instrumneted
1185 function version.
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
1200 0 to 1.
1201 * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
1202 pointer bounds.
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
1208 fields.
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
1227 bounds parameters.
1228 * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
1229 thunk still exists.
1230 (sem_variable::merge): Reset need_bounds_init flag.
1231 * doc/extend.texi: Document Pointer Bounds Checker built-in functions
1232 and attributes.
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.
1246 (BND32mode): New.
1247 (BND64mode): New.
1248 * doc/invoke.texi (-mmpx): New.
1249 (-mno-mpx): New.
1250 (chkp-max-ctor-size): New.
1251 * config/i386/constraints.md (w): New.
1252 (Ti): New.
1253 (Tb): New.
1254 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
1255 * config/i386/i386-modes.def (BND32): New.
1256 (BND64): 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.
1264 (PTA_MPX): New.
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
1273 UNSPEC_BNDLDX_ADDR.
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
1289 flags.
1290 (bdesc_mpx): New.
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
1324 and force_bnd_pass.
1325 (function_arg_advance_32): Return number of used integer
1326 registers.
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.
1353 (BND_REGNO_P): New.
1354 (ANY_BND_REG_P): New.
1355 (BNDmode): New.
1356 (HI_REGISTER_NAMES): Add bound registers.
1357 (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
1358 stdarg fields.
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.
1369 (BND0_REG): New.
1370 (BND1_REG): 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.
1378 (BND): New.
1379 (bnd_ptr): New.
1380 (BNDCHECK): New.
1381 (bndcheck): New.
1382 (*jcc_1): Add MPX bnd prefix.
1383 (*jcc_2): Likewise.
1384 (jump): Likewise.
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.
1391 (<mode>_mk): New.
1392 (*<mode>_mk): New.
1393 (mov<mode>): New.
1394 (*mov<mode>_internal_mpx): New.
1395 (<mode>_<bndcheck>): New.
1396 (*<mode>_<bndcheck>): New.
1397 (<mode>_ldx): New.
1398 (*<mode>_ldx): New.
1399 (<mode>_stx): New.
1400 (*<mode>_stx): 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.
1409 (ULONG): 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.
1420
1421 2014-11-05 Bernd Schmidt <bernds@codesourcery.com>
1422
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.
1434
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.
1439
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.
1448 (pass_ira): Use it.
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.
1455
1456 * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
1457 global vars.
1458
1459 * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
1460 sorry if necessary.
1461
1462 2014-11-05 Alex Velenko <Alex.Velenko@arm.com>
1463
1464 * simplify-rtx.c (simplify_binary_operation_1): Div check added.
1465 * rtl.h (SUBREG_P): New macro added.
1466
1467 2014-11-05 Tejas Belagod <tejas.belagod@arm.com>
1468
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
1486 internal types.
1487 * config/aarch64/t-aarch64: Update dependency.
1488
1489 2014-11-04 Pat Haugen <pthaugen@us.ibm.com>
1490
1491 * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
1492 atomic_update_decl): Guard declaration with #ifdef.
1493
1494 2014-11-04 Marek Polacek <polacek@redhat.com>
1495
1496 * sanopt.c (sanopt_optimize_walker): Remove unused variables.
1497
1498 2014-11-04 Marek Polacek <polacek@redhat.com>
1499
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.
1506
1507 2014-11-04 Jiong Wang <jiong.wang@arm.com>
1508 2014-11-04 Wilco Dijkstra <wilco.dijkstra@arm.com>
1509
1510 PR target/63293
1511 * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
1512 stack adjustment.
1513
1514 2014-11-04 Bernd Schmidt <bernds@codesourcery.com>
1515
1516 * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
1517 also verify that mode is equal to the mode of op0.
1518
1519 * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
1520 emit into a sequence instead.
1521
1522 2014-11-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1523
1524 * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
1525
1526 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
1527
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.
1536
1537 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
1538
1539 config/arm/neon.md (reduc_plus_*): Rename to...
1540 (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
1541
1542 2014-11-04 Michael Collison <michael.collison@linaro.org>
1543
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.
1553
1554 2014-11-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1555
1556 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
1557 of __ARM_FEATURE_IDIV.
1558
1559 2014-11-04 Marek Polacek <polacek@redhat.com>
1560
1561 * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
1562
1563 2014-11-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1564
1565 * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
1566
1567 2014-11-04 Zhenqiang Chen <zhenqiang.chen@arm.com>
1568
1569 Revert:
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.
1573
1574 2014-11-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
1575
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
1579 field (union).
1580
1581 2014-11-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
1582
1583 * input.c (expand_location_to_spelling_point): Fix typo.
1584 (expansion_point_location_if_in_system_header): Fix comment.
1585
1586 2014-11-03 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
1587
1588 * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
1589
1590 2014-11-03 Richard Biener <rguenther@suse.de>
1591
1592 * tree-eh.c (operation_could_trap_helper_p): Handle conversions
1593 like ordinary operations.
1594 * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
1595 as NOP_EXPR.
1596
1597 2014-11-03 Joseph Myers <joseph@codesourcery.com>
1598
1599 * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
1600 macros.
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.
1613
1614 2014-11-03 Richard Biener <rguenther@suse.de>
1615
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.
1624
1625 2014-11-03 Marc Glisse <marc.glisse@inria.fr>
1626
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
1631 definitions.
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.
1641
1642 2014-11-03 Marc Glisse <marc.glisse@inria.fr>
1643
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.
1648
1649 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
1650
1651 * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
1652
1653 2014-11-03 Andrew Pinski <apinski@cavium.com>
1654
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.
1703
1704 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
1705
1706 * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
1707 Allow CC mode if HAVE_cbranchcc4.
1708
1709 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
1710
1711 * config/arc/arc.c (write_ext_corereg_1): Delete.
1712 (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
1713
1714 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
1715
1716 * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
1717 (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
1718
1719 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
1720
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.
1724
1725 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
1726
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.
1730
1731 2014-11-02 Michael Collison <michael.collison@linaro.org>
1732
1733 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
1734 to support vector modes.
1735 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
1736
1737 2014-11-01 Andrew MacLeod <amacleod@redhat,com>
1738
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.
1750 * calls.c: Ditto.
1751 * cfgexpand.c: Ditto.
1752 * cilk-common.c: Ditto.
1753 * combine.c: Ditto.
1754 * dojump.c: Ditto.
1755 * dse.c: Ditto.
1756 * except.c: Ditto.
1757 * explow.c: Ditto.
1758 * expmed.c: Ditto.
1759 * function.c: Ditto.
1760 * ifcvt.c: Ditto.
1761 * internal-fn.c: Ditto.
1762 * loop-unroll.c: Ditto.
1763 * lra.c: Ditto.
1764 * modulo-sched.c: Ditto.
1765 * omp-low.c: Ditto.
1766 * postreload.c: Ditto.
1767 * ree.c: Ditto.
1768 * reload.c: Ditto.
1769 * reload1.c: Ditto.
1770 * shrink-wrap.c: Ditto.
1771 * simplify-rtx.c: Ditto.
1772 * stmt.c: Ditto.
1773 * target-globals.c: Ditto.
1774 * targhooks.c: Ditto.
1775 * toplev.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.
1822
1823 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1824
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.
1844
1845 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1846
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.
1851
1852 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1853
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
1860 fall-back.
1861
1862 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1863
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.
1869
1870 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1871
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.
1876
1877 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1878
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.
1885
1886 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1887
1888 * target.def (use_by_pieces_infrastructure_p): New.
1889 * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
1890 is deprecated.
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.
1907
1908 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
1909
1910 PR target/63702
1911 * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
1912 assignment to 'nargs' variable.
1913
1914 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
1915
1916 PR target/63620
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.
1921 (*pushxf): Ditto.
1922 (*pushdf): Ditto.
1923
1924 2014-10-31 Jakub Jelinek <jakub@redhat.com>
1925
1926 PR rtl-optimization/63659
1927 * ree.c (update_reg_equal_equiv_notes): New function.
1928 (combine_set_extension, transform_ifelse): Use it.
1929
1930 2014-10-31 Jeff Law <law@redhat.com>
1931
1932 * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
1933 and Jonny Grant (collect2).
1934
1935 2014-10-31 Richard Biener <rguenther@suse.de>
1936
1937 * builtins.c (fold_builtin_atomic_always_lock_free): Use
1938 CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
1939 approprate.
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.
1960
1961 2014-10-31 Richard Biener <rguenther@suse.de>
1962
1963 * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
1964 CONVERT_EXPRs in generated code.
1965 (dt_simplify::gen): Likewise.
1966
1967 2014-10-31 Evgeny Stupachenko <evstupac@gmail.com>
1968
1969 PR target/63534
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.
1977
1978 2014-10-31 Eric Botcazou <ebotcazou@adacore.com>
1979
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.
1982
1983 2014-10-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
1984
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.
1990
1991 2014-10-31 Jakub Jelinek <jakub@redhat.com>
1992
1993 PR sanitizer/63697
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.
1997
1998 2014-10-31 Max Ostapenko <m.ostapenko@partner.samsung.com>
1999
2000 PR ipa/63696
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.
2003
2004 2014-10-30 Felix Yang <felix.yang@huawei.com>
2005
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.
2016
2017 2014-10-30 Steve Ellcey <sellcey@imgtec.com>
2018
2019 * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
2020
2021 2014-10-30 Richard Biener <rguenther@suse.de>
2022
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.
2033
2034 2014-10-30 Richard Biener <rguenther@suse.de>
2035
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.
2045
2046 2014-10-30 Richard Biener <rguenther@suse.de>
2047
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.
2052
2053 2014-10-30 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2054
2055 * config/avr/driver-avr.c (avr_set_current_device): Remove.
2056
2057 2014-10-30 Martin Liska <mliska@suse.cz>
2058
2059 PR ipa/63574
2060 PR ipa/63664
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.
2064
2065 2014-10-30 Jeff Law <law@redhat.com>
2066
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.
2080
2081 2014-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2082
2083 * config/arm/arm.h (MACHMODE): Treat machine_mode as a
2084 scalar typedef.
2085 (CUMULATIVE_ARGS): Guard against target includes.
2086 (machine_function): Likewise.
2087
2088 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2089
2090 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
2091 recog state after aarch64_prev_real_insn call.
2092
2093 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2094
2095 * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
2096
2097 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2098
2099 * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
2100 (struct machine_function): Gate definition on
2101 !defined(USED_FOR_TARGET).
2102
2103 2014-10-29 DJ Delorie <dj@redhat.com>
2104
2105 * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
2106
2107 2014-10-29 Martin Liska <mliska@suse.cz>
2108
2109 PR ipa/63587
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.
2115
2116 2014-10-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
2117
2118 * godump.c (go_format_type): Represent "float _Complex" and
2119 "double _Complex" as complex64 or complex128 in Go, as appropriate.
2120
2121 2014-10-29 Richard Biener <rguenther@suse.de>
2122
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.
2127
2128 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
2129
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
2220 machine_mode.
2221 * gengtype.c (main): Treat machine_mode as a scalar typedef.
2222 * genmodes.c (emit_insn_modes_h): Hide inline functions if
2223 USED_FOR_TARGET.
2224
2225 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
2226
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.
2237
2238 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
2239
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.
2252
2253 2014-10-29 Richard Biener <rguenther@suse.de>
2254
2255 PR tree-optimization/63666
2256 * tree-vect-slp.c (vect_get_mask_element): Properly handle
2257 accessing out-of-bound elements.
2258
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>
2267
2268 * config/i386/i386.md
2269 (movhi_internal): Always detect maskmov.
2270 (movqi_internal): Fix target check.
2271
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>
2280
2281 * config/i386/avx512bwintrin.h: Add new intrinsics.
2282 * config/i386/avx512vlbwintrin.h: Ditto.
2283 * config/i386/avx512vlintrin.h: Ditto.
2284
2285 2014-10-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
2286
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
2304 in go.
2305
2306 * godump.c (go_format_type): Fix handling of arrays with zero elements.
2307
2308 2014-10-28 Andrew MacLeod <amacleod@redhat.com>
2309
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
2316 included files.
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.
2325 * calls.c: Ditto.
2326 * cfgexpand.c: Ditto.
2327 * cgraphbuild.c: Ditto.
2328 * cgraphclones.c: Ditto.
2329 * cgraphunit.c: Ditto.
2330 * combine.c: Ditto.
2331 * coverage.c: Ditto.
2332 * data-streamer.c: Ditto.
2333 * data-streamer-in.c: Ditto.
2334 * data-streamer-out.c: Ditto.
2335 * dbxout.c: Ditto.
2336 * dwarf2out.c: Ditto.
2337 * except.c: Ditto.
2338 * expr.c: Ditto.
2339 * final.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.
2348 * ipa.c: Ditto.
2349 * ipa-comdats.c: Ditto.
2350 * ipa-cp.c: Ditto.
2351 * ipa-devirt.c: Ditto.
2352 * ipa-icf.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.
2361 * ipa-ref.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.
2375 * omp-low.c: Ditto.
2376 * opts-global.c: Ditto.
2377 * passes.c: Ditto.
2378 * predict.c: Ditto.
2379 * print-tree.c: Ditto.
2380 * profile.c: Ditto.
2381 * ree.c: Ditto.
2382 * stor-layout.c: Ditto.
2383 * symtab.c: Ditto.
2384 * toplev.c: Ditto.
2385 * trans-mem.c: Ditto.
2386 * tree.c: Ditto.
2387 * tree-cfg.c: Ditto.
2388 * tree-eh.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.
2408 * tsan.c: Ditto.
2409 * ubsan.c: Ditto.
2410 * value-prof.c: Ditto.
2411 * varasm.c: Ditto.
2412 * varpool.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.
2425
2426 2014-10-28 Richard Biener <rguenther@suse.de>
2427
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.
2434
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>
2443
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.
2451
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>
2460
2461 * config/i386/i386.c
2462 (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
2463 avx_shufpd256_mask, avx_vpermilv2df_mask.
2464
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>
2473
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.
2494
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>
2503
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.
2529
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>
2538
2539 * config/i386/i386-builtin-types.def
2540 (SHORT): New.
2541 (V32HI): Ditto.
2542 (V12QI): Ditto.
2543 (V14QI): Ditto.
2544 (V32SI): Ditto.
2545 (V8UDI): Ditto.
2546 (V16USI): Ditto.
2547 (V32UHI): Ditto.
2548 (PSHORT): Ditto.
2549 (PV32QI): Ditto.
2550 (PV32HI): Ditto.
2551 (PV64QI): Ditto.
2552 (PCV8HI): Ditto.
2553 (PCV16QI): Ditto.
2554 (PCV16HI): Ditto.
2555 (PCV32QI): Ditto.
2556 (PCV32HI): Ditto.
2557 (PCV64QI): Ditto.
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.
4091
4092 2014-10-28 Jakub Jelinek <jakub@redhat.com>
4093
4094 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
4095 type for the left shift in CASE_CONVERT case.
4096
4097 2014-10-28 Max Ostapenko <m.ostapenko@partner.samsung.com>
4098
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
4102 hash building.
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
4114 parameters.
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.
4120
4121 2014-10-28 Richard Biener <rguenther@suse.de>
4122
4123 PR middle-end/63665
4124 * fold-const.c (fold_comparison): Properly guard simplifying
4125 against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
4126
4127 2014-10-28 Alan Lawrence <alan.lawrence@arm.com>
4128
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.
4140
4141 2014-10-28 Yury Gribov <y.gribov@samsung.com>
4142
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
4147 to default value.
4148 * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
4149 * opts.c (finish_options): Reword comment.
4150 * sanitizer.def: Add noabort ASan builtins.
4151
4152 2014-10-28 Yury Gribov <y.gribov@samsung.com>
4153
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.
4166
4167 2014-10-27 Jiong Wang <jiong.wang@arm.com>
4168
4169 PR target/63442
4170 * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
4171
4172 2014-10-27 DJ Delorie <dj@redhat.com>
4173
4174 * tree.c (build_common_tree_nodes): Don't even store the
4175 __int128 types if they're not supported.
4176
4177 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4178
4179 * config/i386/i386.c (ix86_loop_memcount): Delete.
4180 (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
4181
4182 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4183
4184 * config/i386/i386.c (find_constant_1): Delete.
4185 (find_constant): Use FOR_EACH_SUBRTX.
4186
4187 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4188
4189 * config/i386/i386.c (extended_reg_mentioned_1): Delete.
4190 (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
4191
4192 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4193
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.
4199
4200 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4201
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
4207 accordingly.
4208
4209 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4210
4211 * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
4212 a bool.
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.
4215
4216 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4217
4218 * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
4219 (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
4220
4221 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4222
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.
4226
4227 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4228
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.
4233
4234 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4235
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.
4241
4242 2014-10-27 Phil Muldoon <pmuldoon@redhat.com>
4243 Tom Tromey <tromey@redhat.com>
4244
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.
4252
4253 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4254
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...
4258
4259 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4260
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.
4265
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).
4271
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).
4275
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.
4284
4285 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4286
4287 * config/aarch64/aarch64-simd-builtins.def
4288 (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
4289 Remove.
4290 (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
4291
4292 * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
4293 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
4294
4295 (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
4296 (aarch64_reduc_plus_internal<mode>): ...this.
4297
4298 (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
4299 (aarch64_reduc_plus_internalv2si): ...this.
4300
4301 (reduc_splus_<mode>/V2F): Rename to...
4302 (aarch64_reduc_plus_internal<mode>): ...this.
4303
4304 * config/aarch64/iterators.md
4305 (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
4306 (UNSPEC_ADDV): New.
4307 (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
4308
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.
4314
4315 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4316
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.
4320
4321 * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
4322 back to old reduc_... + BIT_FIELD_REF only if not.
4323
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.
4327
4328 * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
4329 reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
4330 New.
4331
4332 * optabs.h (scalar_reduc_to_vector): Declare.
4333
4334 * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
4335 to either scalar or vector.
4336
4337 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4338
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.
4342
4343 * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
4344 scalar not vector.
4345
4346 * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
4347 for REDUC_{MIN,MAX,PLUS}_EXPR.
4348
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.
4352
4353 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
4354 comment.
4355
4356 2014-10-27 Andrew MacLeod <amacleod@redhat.com>
4357
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
4365 lits of includes.
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.
4372 * asan.c: Ditto.
4373 * auto-inc-dec.c: Ditto.
4374 * auto-profile.c: Ditto.
4375 * bb-reorder.c: Ditto.
4376 * bt-load.c: Ditto.
4377 * builtins.c: Ditto.
4378 * caller-save.c: Ditto.
4379 * calls.c: Ditto.
4380 * cfg.c: Ditto.
4381 * cfganal.c: Ditto.
4382 * cfgbuild.c: Ditto.
4383 * cfgcleanup.c: Ditto.
4384 * cfgexpand.c: Ditto.
4385 * cfghooks.c: Ditto.
4386 * cfgloop.c: Ditto.
4387 * cfgloopanal.c: Ditto.
4388 * cfgloopmanip.c: Ditto.
4389 * cfgrtl.c: Ditto.
4390 * cgraphbuild.c: Ditto.
4391 * cgraphclones.c: Ditto.
4392 * cgraphunit.c: Ditto.
4393 * combine-stack-adj.c: Ditto.
4394 * combine.c: Ditto.
4395 * compare-elim.c: Ditto.
4396 * coverage.c: Ditto.
4397 * cprop.c: Ditto.
4398 * cse.c: Ditto.
4399 * cselib.c: Ditto.
4400 * data-streamer-in.c: Ditto.
4401 * data-streamer-out.c: Ditto.
4402 * data-streamer.c: Ditto.
4403 * dce.c: Ditto.
4404 * ddg.c: Ditto.
4405 * ddg.h: Ditto.
4406 * df-core.c: Ditto.
4407 * df-problems.c: Ditto.
4408 * df-scan.c: Ditto.
4409 * df.h: Ditto.
4410 * dojump.c: Ditto.
4411 * dominance.c: Ditto.
4412 * domwalk.c: Ditto.
4413 * dse.c: Ditto.
4414 * dwarf2cfi.c: Ditto.
4415 * emit-rtl.c: Ditto.
4416 * et-forest.c: Ditto.
4417 * except.c: Ditto.
4418 * expmed.c: Ditto.
4419 * expr.c: Ditto.
4420 * final.c: Ditto.
4421 * fold-const.c: Ditto.
4422 * function.c: Ditto.
4423 * fwprop.c: Ditto.
4424 * gcc-plugin.h: Ditto.
4425 * gcse.c: 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.
4441 * gimple.c: Ditto.
4442 * gimplify-me.c: Ditto.
4443 * gimplify.c: Ditto.
4444 * graph.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.
4457 * ifcvt.c: Ditto.
4458 * init-regs.c: Ditto.
4459 * internal-fn.c: Ditto.
4460 * ipa-cp.c: Ditto.
4461 * ipa-devirt.c: Ditto.
4462 * ipa-icf-gimple.c: Ditto.
4463 * ipa-icf.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.
4473 * ipa.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.
4480 * ira.c: Ditto.
4481 * jump.c: Ditto.
4482 * lcm.c: Ditto.
4483 * loop-doloop.c: Ditto.
4484 * loop-init.c: Ditto.
4485 * loop-invariant.c: Ditto.
4486 * loop-iv.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.
4495 * lra.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.
4504 * mcf.c: Ditto.
4505 * mode-switching.c: Ditto.
4506 * modulo-sched.c: Ditto.
4507 * omp-low.c: Ditto.
4508 * optabs.c: Ditto.
4509 * opts-global.c: Ditto.
4510 * passes.c: Ditto.
4511 * postreload-gcse.c: Ditto.
4512 * postreload.c: Ditto.
4513 * predict.c: Ditto.
4514 * print-rtl.c: Ditto.
4515 * profile.c: Ditto.
4516 * recog.c: Ditto.
4517 * ree.c: Ditto.
4518 * reg-stack.c: Ditto.
4519 * regcprop.c: Ditto.
4520 * regcprop.h: Ditto.
4521 * reginfo.c: Ditto.
4522 * regrename.c: Ditto.
4523 * regstat.c: Ditto.
4524 * reload.c: Ditto.
4525 * reload1.c: Ditto.
4526 * reorg.c: Ditto.
4527 * resource.c: Ditto.
4528 * rtlanal.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.
4538 * sese.c: Ditto.
4539 * shrink-wrap.c: Ditto.
4540 * stack-ptr-mod.c: Ditto.
4541 * stmt.c: Ditto.
4542 * store-motion.c: Ditto.
4543 * symtab.c: Ditto.
4544 * toplev.c: Ditto.
4545 * tracer.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.
4555 * tree-eh.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.
4627 * tree.c: Ditto.
4628 * tsan.c: Ditto.
4629 * ubsan.c: Ditto.
4630 * valtrack.c: Ditto.
4631 * valtrack.h: Ditto.
4632 * value-prof.c: Ditto.
4633 * var-tracking.c: Ditto.
4634 * varasm.c: Ditto.
4635 * varpool.c: Ditto.
4636 * vtable-verify.c: Ditto.
4637 * web.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.
4700
4701 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4702
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.
4706
4707 2014-10-27 Richard Biener <rguenther@suse.de>
4708
4709 * match.pd (0 % X): Properly use the iterator iterating over
4710 all modulo operators.
4711 (X % 1): Likewise.
4712
4713 2014-10-27 Richard Biener <rguenther@suse.de>
4714
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.
4720
4721 2014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
4722
4723 PR c++/53061
4724 * doc/invoke.texi (fmessage-length): Update text to match reality.
4725
4726 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4727
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.
4731
4732 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4733
4734 * config/mips/mips.c (mips_at_reg_p): Delete.
4735 (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
4736
4737 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4738
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.
4742
4743 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4744
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.
4748
4749 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4750
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.
4754
4755 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4756
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
4760 all subrtxes here.
4761 (r10k_needs_protection_p_store): Update accordingly.
4762 (r10k_needs_protection_p): Likewise.
4763
4764 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4765
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.
4770
4771 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4772
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.
4776
4777 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4778
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.
4783
4784 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4785
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.
4791
4792 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4793
4794 * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
4795 (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
4796
4797 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4798
4799 * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
4800 return a bool. Replace "void *" with specific type. Iterate
4801 over all subrtxes.
4802 (mep_store_data_bypass_1): Update calls accordingly.
4803
4804 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4805
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.
4809
4810 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4811
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.
4815
4816 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4817
4818 * config/sh/sh.c (sh_contains_memref_p_1): Delete.
4819 (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
4820
4821 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4822
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.
4829
4830 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4831
4832 * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
4833 (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
4834
4835 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4836
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.
4840
4841 2014-10-25 Jakub Jelinek <jakub@redhat.com>
4842
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).
4846
4847 2014-10-25 Alan Modra <amodra@gmail.com>
4848
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
4852 in the "ops" array.
4853
4854 2014-10-25 Joseph Myers <joseph@codesourcery.com>
4855
4856 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
4857 not allow e500 double in registers not satisyfing
4858 SPE_SIMD_REGNO_P.
4859
4860 2014-10-24 Aldy Hernandez <aldyh@redhat.com>
4861
4862 * dwarf2out.c (declare_in_namespace): Only emit external
4863 declarations in the local scope once.
4864
4865 2014-10-24 Jonathan Wakely <jwakely@redhat.com>
4866
4867 * ginclude/stdbool.h: Do not define bool, true or false in C++11.
4868
4869 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
4870
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.
4875
4876 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
4877
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>):
4883 New pattern.
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.
4891
4892 2014-10-24 Georg-Johann Lay <avr@gjlay.de>
4893
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.
4900
4901 2014-10-24 Martin Liska <mliska@suse.cz>
4902
4903 * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
4904 added.
4905
4906 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4907
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.
4912
4913 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4914
4915 * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
4916 do while (0).
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.
4924 Include rtl-iter.h.
4925
4926 2014-10-24 Richard Biener <rguenther@suse.de>
4927
4928 * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
4929 to genmatch BUILD_LIBS instead.
4930
4931 2014-10-24 Richard Biener <rguenther@suse.de>
4932
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.
4963
4964 2014-10-24 Felix Yang <felix.yang@huawei.com>
4965 Jiji Jiang <jiangjiji@huawei.com>
4966
4967 PR target/63173
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
4992 builtins.
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.
4999
5000 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
5001
5002 * rtlanal.c (get_base_term): Handle SCRATCH.
5003
5004 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
5005
5006 * haifa-sched.c (sched_init): Disable max_issue when scheduling for
5007 register pressure.
5008
5009 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
5010
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.
5014
5015 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
5016
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
5023 heuristics.
5024 (ready_sort): Update.
5025 (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
5026 (schedule_block): Update.
5027
5028 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
5029
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.
5039
5040 2014-10-24 Richard Biener <rguenther@suse.de>
5041
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.
5045
5046 2014-10-24 Richard Biener <rguenther@suse.de>
5047
5048 * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
5049
5050 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
5051
5052 PR bootstrap/63632
5053 * collect2.c (main): Filter out -fno-lto.
5054
5055 2014-10-24 Martin Liska <mliska@suse.cz>
5056
5057 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
5058 division by zero in dumps.
5059 (sem_item_optimizer::merge_classes): Ditto.
5060
5061 2014-10-23 John David Anglin <danglin@gcc.gnu.org>
5062
5063 * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
5064
5065 2014-10-23 Ian Lance Taylor <iant@google.com>
5066
5067 * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
5068
5069 2014-10-23 Ian Lance Taylor <iant@google.com>
5070
5071 * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
5072
5073 2014-10-23 Jakub Jelinek <jakub@redhat.com>
5074
5075 PR debug/63623
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.
5080
5081 2014-10-23 DJ Delorie <dj@redhat.com>
5082
5083 * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
5084 independend of -mlarge.
5085 * config/msp430/constraints.md (Ys): Update comment.
5086
5087 2014-10-23 Evgeny Stupachenko <evstupac@gmail.com>
5088
5089 PR target/63534
5090 PR target/63618
5091 * cse.c (delete_trivially_dead_insns): Consider PIC register is used
5092 while it is pseudo.
5093 * dse.c (deletable_insn_p): Likewise.
5094
5095 2014-10-23 Georg-Johann Lay <avr@gjlay.de>
5096
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.
5101
5102 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
5103
5104 * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
5105 New.
5106 (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
5107 iterator.
5108 (define_expand "abs<mode>2"): Ditto.
5109
5110 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
5111
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.
5116
5117 2014-10-23 Richard Biener <rguenther@suse.de>
5118
5119 * Makefile.in (BUILD_CPPLIB): Add.
5120 (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
5121 Drop LIBIBERTY.
5122
5123 2014-10-23 Richard Biener <rguenther@suse.de>
5124
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.
5129
5130 2014-10-22 Richard Biener <rguenther@suse.de>
5131 Tobias Burnus <burnus@net-b.de>
5132
5133 PR lto/63603
5134 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
5135
5136 2014-10-22 Dehao Chen <dehao@google.com>
5137
5138 * auto-profile.c: Change order of header files.
5139
5140 2014-10-22 Guozhi Wei <carrot@google.com>
5141
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.
5145
5146 2014-10-22 David Malcolm <dmalcolm@redhat.com>
5147
5148 * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
5149
5150 2014-10-22 Andrew MacLeod <amacleod@redhat.com>
5151
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.
5175
5176 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
5177
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.
5182
5183 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
5184
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.
5188
5189 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
5190
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
5196 a parameter.
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.
5213
5214 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
5215
5216 * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
5217 attributes.
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):
5225 New functions.
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.
5242
5243 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
5244
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.
5256
5257 2014-10-22 Jakub Jelinek <jakub@redhat.com>
5258 Yury Gribov <y.gribov@samsung.com>
5259
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.
5277
5278 2014-10-22 Jiong Wang <jiong.wang@arm.com>
5279
5280 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
5281
5282 2014-10-22 Renlin Li <renlin.li@arm.com>
5283
5284 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
5285 __ARM_FEATURE_IDIV__.
5286
5287 2014-10-22 Richard Biener <rguenther@suse.de>
5288
5289 * Makefile.in (s-match): Adjust dependencies to only catch
5290 match.pd.
5291
5292 2014-10-22 Richard Biener <rguenther@suse.de>
5293 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
5294
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.
5321
5322 2014-10-22 Jakub Jelinek <jakub@redhat.com>
5323
5324 PR target/63594
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
5331 broadcast.
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.
5340
5341 PR target/63542
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.
5347
5348 2014-10-22 Alan Modra <amodra@gmail.com>
5349
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
5353 _obstack_begin.
5354 * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
5355 (regexp_representation): Likewise.
5356 * godump.c (go_output_type): Likewise.
5357
5358 2014-10-21 John David Anglin <danglin@gcc.gnu.org>
5359
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.
5363
5364 2014-10-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
5365
5366 * doc/invoke.texi (pedantic-errors): Explain better.
5367
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>
5373
5374 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
5375 __MEMX for avrtiny.
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.
5379
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.
5398 <TBD>bad address
5399 (function_arg_regno_p): Check different register list for arguments
5400 if AVRTINY.
5401 (init_cumulative_args): Check for AVRTINY to update number of argument
5402 registers.
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
5418 SImode.
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
5427 store functions.
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
5454 in case of AVRTINY.
5455 (order_regs_for_local_alloc): Updated register allocation order for
5456 AVRTINY.
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
5477 not have sbiw.
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.
5483
5484 2014-10-21 Andrew Pinski <apinski@cavium.com>
5485
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.
5495
5496 2014-10-21 Dehao Chen <dehao@google.com>
5497
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.
5530
5531 2014-10-21 David Malcolm <dmalcolm@redhat.com>
5532
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
5537 to file-scope.
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
5567 to...
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
5589 than once.
5590 * timevar.c (timevar_init): Ignore repeated calls.
5591 * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
5592 "ipa-prop.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.
5604
5605 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
5606
5607 * loop-doloop.c: Include loop-unroll.h.
5608
5609 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
5610
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.
5621
5622 2014-10-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
5623
5624 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
5625 MARKER_BYTE_UNKNOWN markers when handling casts.
5626
5627 2014-10-21 Richard Biener <rguenther@suse.de>
5628
5629 * tree-ssa-phiopt.c (value_replacement): Properly verify we
5630 are the non-singleton PHI.
5631
5632 2014-10-21 Jakub Jelinek <jakub@redhat.com>
5633
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.
5637
5638 2014-10-21 Ilya Tocar <ilya.tocar@intel.com>
5639
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
5643 VI1_AVX512.
5644
5645 2014-10-21 Zhenqiang Chen <zhenqiang.chen@arm.com>
5646
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.
5651
5652 2014-10-20 Andrew MacLeod <amacleod@redhat.com>
5653
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.
5665 * predict.c: Ditto.
5666 * sched-ebb.c: Ditto.
5667 * sched-rgn.c: Ditto.
5668 * tracer.c: Ditto.
5669 * tree-ssa-loop-ivcanon.c: Ditto.
5670
5671 2014-10-20 Richard Biener <rguenther@suse.de>
5672
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.
5678
5679 2014-10-20 Alan Modra <amodra@gmail.com>
5680
5681 PR debug/60655
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.
5686
5687 2014-10-20 Martin Liska <mliska@suse.cz>
5688
5689 PR ipa/63583
5690 * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
5691 Gimple tempate string is compared.
5692
5693 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
5694
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.
5698
5699 2014-10-19 Ilya Verbin <ilya.verbin@intel.com>
5700
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.
5707
5708 2014-10-19 Andreas Schwab <schwab@linux-m68k.org>
5709
5710 * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
5711 match_operand expression.
5712
5713 2014-10-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
5714 David Edelsohn <dje.gcc@gmail.com>
5715
5716 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
5717 function.
5718 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
5719
5720 2014-10-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
5721
5722 * doc/invoke.texi (Options to Request or Suppress Warnings):
5723 Explain options precedence.
5724 (Wtrampolines): Do not indent paragraph.
5725
5726 2014-10-18 John David Anglin <danglin@gcc.gnu.org>
5727
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
5732 override.
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.
5739
5740 2014-10-18 Oleg Endo <olegendo@gcc.gnu.org>
5741
5742 PR target/53513
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
5751 handling.
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
5759 fpscr_operand.
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.
5768
5769 2014-10-17 Eric Botcazou <ebotcazou@adacore.com>
5770
5771 * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
5772 (clone_inlined_nodes): Do not overwrite the clone if above predicate
5773 returns true.
5774
5775 2014-10-17 Ilya Tocar <ilya.tocar@intel.com>
5776
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,
5781 V4DFmode.
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.
5801
5802 2014-10-17 Kirill Yukhin <kirill.yukhin@intel.com>
5803
5804 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
5805 conditions to fix bootstrap.
5806
5807 2014-10-17 Andrew MacLeod <amacleod@redhat.com>
5808
5809 gcc-plugin.h: Add tm.h and flattened includes from function.h.
5810
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>
5819
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.
5826
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>
5835
5836 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
5837 expand_sse2_mulvxdi3.
5838
5839 2014-10-17 Richard Biener <rguenther@suse.de>
5840
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
5847 and FMA_EXPR.
5848
5849 2014-10-17 Jakub Jelinek <jakub@redhat.com>
5850
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
5865 caller.
5866 (optimize_range_tests_xor): Likewise. Fix up comment.
5867 (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
5868 functions.
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.
5873
5874 PR tree-optimization/63302
5875 * tree-ssa-reassoc.c (optimize_range_tests_xor,
5876 optimize_range_tests_diff): Use !integer_pow2p () instead of
5877 tree_log2 () < 0.
5878
5879 2014-10-17 Martin Liska <mliska@suse.cz>
5880
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.
5884
5885 2014-10-17 Marc Glisse <marc.glisse@inria.fr>
5886
5887 * tree-into-ssa.c (is_old_name): Replace "new" with "old".
5888
5889 2014-10-17 Tom de Vries <tom@codesourcery.com>
5890
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.
5894
5895 2014-10-17 Tom de Vries <tom@codesourcery.com>
5896
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.
5900
5901 2014-10-17 Uros Bizjak <ubizjak@gmail.com>
5902
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.
5910
5911 2014-10-16 DJ Delorie <dj@redhat.com>
5912
5913 * flag-types.h (sanitize_code): Don't assume targets have 32-bit
5914 integers.
5915
5916 * config/rs6000/rs6000-c.c (rid_int128): New.
5917 (rs6000_macro_to_expand): Use instead of RID_INT128.
5918
5919 2014-10-16 Andrew MacLeod <amacleod@redhat.com>
5920
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
5925 from expr.h.
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
5933 to function.h.
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
5945 function.h.
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.
5975 * cse.c: Likewise.
5976 * cselib.c: Likewise.
5977 * dbxout.c: Likewise.
5978 * ddg.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.
5988 * expr.c: Likewise.
5989 * final.c: Likewise.
5990 * function.c: Likewise.
5991 * gcse.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.
5997 * ira.c: Likewise.
5998 * jump.c: Likewise.
5999 * lcm.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.
6007 * lra.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.
6023 * ree.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.
6042 * stmt.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.
6074 * tree.c: Likewise.
6075 * tsan.c: Likewise.
6076 * valtrack.c: Likewise.
6077 * varasm.c: Likewise.
6078 * vmsdbgout.c: Likewise.
6079 * web.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.
6139
6140 2014-10-16 Richard Earnshaw <rearnsha@arm.com>
6141
6142 * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
6143 (TARGET_LEGITIMIZE_ADDRESS): Redefine.
6144
6145 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
6146
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
6151 fldi_ok.
6152
6153 2014-10-16 Martin Liska <mliska@suse.cz>
6154
6155 * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
6156 Cast to unsigned long.
6157 (sem_item_optimizer::dump_cong_classes): Likewise.
6158
6159 2014-10-16 Tom de Vries <tom@codesourcery.com>
6160
6161 * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
6162 with SSA_NAME_IN_FREELIST.
6163
6164 2014-10-16 Richard Biener <rguenther@suse.de>
6165
6166 PR middle-end/63554
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.
6171
6172 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
6173
6174 PR target/59401
6175 * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
6176 GBR to 0.
6177
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>
6186
6187 * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
6188 V64QI modes.
6189
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>
6198
6199 * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
6200 V16SI, V32HI, V64QI modes.
6201
6202 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
6203
6204 PR target/53513
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.
6207
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
6211 list.
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.
6218
6219 * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
6220 (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
6221 FPSCR_STAT_REG.
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
6227 FPSCR_STAT_REG.
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.
6231
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.
6235
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.
6245
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_*
6257 function uses.
6258
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.
6264
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.
6272
6273 2014-10-16 Martin Liska <mliska@suse.cz>
6274 Jan Hubicka <hubicka@ucw.cz>
6275
6276 * Makefile.in: New object files included.
6277 * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
6278 is printed.
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.
6298
6299 2014-10-16 Richard Biener <rguenther@suse.de>
6300
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
6305 into another block.
6306
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>
6315
6316 * config/i386/sse.md
6317 (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
6318 support AVX-512VL instructions.
6319
6320 2014-10-16 DJ Delorie <dj@redhat.com>
6321
6322 * tree-core.h: Fix comment to not assume pointers are multiples of
6323 bytes.
6324
6325 2014-10-15 Tom Tromey <tromey@redhat.com>
6326
6327 * timevar.h (class auto_timevar): New class.
6328
6329 2014-10-15 Uros Bizjak <ubizjak@gmail.com>
6330
6331 PR go/59432
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.
6337
6338 Revert:
6339 2013-11-05 Ian Lance Taylor <iant@google.com>
6340
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.
6345
6346 2014-10-15 Jan Hubicka <hubicka@ucw.cz>
6347
6348 PR lto/62026
6349 * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
6350 to duplicate.
6351 * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
6352 at WPA time.
6353
6354 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
6355
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.
6377
6378 2014-10-15 Teresa Johnson <tejohnson@google.com>
6379
6380 PR bootstrap/63432
6381 * tree-ssa-threadupdate.c (recompute_probabilities): Better
6382 overflow checking.
6383
6384 2014-10-15 Renlin Li <renlin.li@arm.com>
6385
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.
6390
6391 2014-10-15 Richard Biener <rguenther@suse.de>
6392
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.
6396
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>
6405
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.
6425
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>
6434
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.
6444
6445 2014-10-15 Renlin Li <renlin.li@arm.com>
6446
6447 * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
6448
6449 2014-10-15 Jakub Jelinek <jakub@redhat.com>
6450
6451 * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
6452 MINUS_EXPR in unsigned type to avoid undefined behavior.
6453
6454 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
6455
6456 * stor-layout.c (self_referential_size): Do not promote arguments.
6457
6458 2014-10-15 Marek Polacek <polacek@redhat.com>
6459
6460 * doc/invoke.texi: Update to reflect that GNU11 is the default
6461 mode for C.
6462 * c-common.h (c_language_kind): Update comment.
6463
6464 2014-10-15 Richard Biener <rguenther@suse.de>
6465
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.
6469
6470 2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
6471 Jeff Law <law@redhat.com>
6472
6473 * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
6474 multiple hard registers, use smaller mode derived from MODE.
6475
6476 2014-10-15 Andreas Schwab <schwab@suse.de>
6477
6478 * explow.c (convert_memory_address_addr_space_1): Mark in_const
6479 as ATTRIBUTE_UNUSED.
6480
6481 2014-10-14 Jan Hubicka <hubicka@ucw.cz>
6482
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
6494 LPT_PEEL_SIMPLE.
6495 (UAP_PEEL): Remove.
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.
6509
6510 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
6511
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.
6516
6517 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
6518
6519 * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
6520 remove.
6521
6522 2014-10-14 Andrew Pinski <apinski@cavium.com>
6523
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.
6529
6530 2014-10-14 Andrew Pinski <apinski@cavium.com>
6531
6532 Revert:
6533 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
6534
6535 PR middle-end/49721
6536 * explow.c (convert_memory_address_addr_space): Also permute the
6537 conversion and addition of constant for zero-extend.
6538
6539 2014-10-14 DJ Delorie <dj@redhat.com>
6540
6541 * config/msp430/msp430-modes.def (PSI): Add.
6542
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.
6567
6568 2014-10-14 Eric Botcazou <ebotcazou@adacore.com>
6569
6570 PR ada/62019
6571 * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
6572 do not choke on null node.
6573 <VAR_DECL>: Likewise.
6574
6575 2014-10-14 DJ Delorie <dj@redhat.com>
6576
6577 * machmode.h (int_n_data_t): New.
6578 (int_n_enabled_p): New.
6579 (int_n_data): New.
6580 * tree.c (int_n_enabled_p): New.
6581 (int_n_trees): New.
6582 (make_or_reuse_type): Check for all __intN types, not just
6583 __int128.
6584 (build_common_tree_nodes): Likewise. Also fill in integer_typs[]
6585 entries.
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.
6590 (int_n_trees): New.
6591 * toplev.c (standard_type_bitsize): New.
6592 (do_compile): Check which __intN types are enabled for the current
6593 run.
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.
6602 (INT_N): New.
6603 (make_int_n): New.
6604 (emit_insn_modes_h): Count __intN entries and define
6605 NUM_INT_N_ENTS.
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.
6612
6613 * config/msp430/msp430-modes.def (PSI): Add.
6614
6615 2014-10-14 Kito Cheng <kito@0xlab.org>
6616
6617 * ira.c: Fix typo in comment.
6618 * ira.h: Ditto.
6619 * ira-build.c: Ditto.
6620 * ira-color.c: Ditto.
6621 * ira-emit.c: Ditto.
6622 * ira-int.h: Ditto.
6623 * ira-lives.c: Ditto.
6624
6625 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
6626
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.
6636
6637 2014-10-14 Evgeny Stupachenko <evstupac@gmail.com>
6638
6639 PR target/63534
6640 * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
6641 __morestack local.
6642
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>
6651
6652 * config/i386/i386.c
6653 (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
6654 (ix86_expand_int_vcond): Ditto.
6655
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>
6664
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.
6670
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>
6679
6680 * config/i386/sse.md
6681 (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
6682
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>
6691
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.
6696
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>
6705
6706 * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
6707
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>
6716
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.
6720
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>
6729
6730 * config/i386/sse.md
6731 (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
6732 (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
6733
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>
6742
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.
6758
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>
6767
6768 * config/i386/sse.md
6769 (define_insn "vec_dup<mode>"): Update constraints.
6770
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>
6779
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.
6784
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>
6793
6794 * config/i386/sse.md
6795 (define_expand "mul<mode>3<mask_name>"): Add masking.
6796
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>
6805
6806 * config/i386/sse.md
6807 (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
6808 (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
6809
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>
6818
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>"):
6823 Ditto.
6824
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>
6833
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
6843 code.
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,
6848 MODE_TI.
6849 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
6850
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>
6859
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.
6865
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>
6874
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.
6884 (define_insn
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.
6891
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>
6900
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.
6911
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>
6920
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.
6927 (define_insn
6928 "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
6929 Remove.
6930 (define_insn
6931 "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
6932 New.
6933 (define_insn
6934 "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
6935 Ditto.
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>"):
6940 Delete.
6941 (define_insn
6942 "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
6943 New.
6944 (define_insn
6945 "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
6946 Ditto.
6947 (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
6948 Delete.
6949 (define_insn
6950 "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
6951 New.
6952 (define_insn
6953 "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
6954 Ditto.
6955
6956 2014-10-14 Richard Biener <rguenther@suse.de>
6957
6958 PR tree-optimization/63512
6959 * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
6960 modified.
6961
6962 2014-10-14 Oleg Endo <olegendo@gcc.gnu.org>
6963
6964 PR target/63260
6965 * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
6966 abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute. Remove use
6967 of FPSCR.
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.
6972
6973 2014-10-14 Felix Yang <felix.yang@huawei.com>
6974 Jeff Law <law@redhat.com>
6975
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.
6983
6984 2014-10-13 Richard Henderson <rth@redhat.com>
6985
6986 * combine-stack-adj.c (no_unhandled_cfa): New.
6987 (maybe_merge_cfa_adjust): New.
6988 (combine_stack_adjustments_for_block): Use them.
6989
6990 2014-10-13 Aldy Hernandez <aldyh@redhat.com>
6991
6992 * Makefile.in (TAGS): Tag ../include files.
6993
6994 2014-10-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6995
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.
7005
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.
7017
7018 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
7019
7020 * config/i386/i386.c (ix86_address_cost): Lower cost for
7021 when address contains GOT register.
7022
7023 2014-10-13 Ilya Enkovich <ilya.enkovich@intel.com>
7024 Vladimir Makarov <vmakarov@redhat.com>
7025
7026 PR target/8340
7027 PR middle-end/47602
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):
7049 Document.
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
7053 register.
7054 * ira-color.c (color_pass): Add check on pseudo register.
7055 * ira-emit.c (change_loop): Don't create copies for PIC pseudo
7056 register.
7057 * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
7058 register.
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
7064 register.
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.
7068
7069 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
7070
7071 * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
7072 Remove m_SILVERMONT and m_INTEL from the tune.
7073
7074 2014-10-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7075
7076 PR libfortran/63471
7077 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
7078 when _HPUX_SOURCE is defined.
7079
7080 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
7081
7082 PR tree-optimization/62127
7083 * tree.c (remap_type_1): When remapping array, remap
7084 also its type.
7085
7086 2014-10-13 Christophe Lyon <christophe.lyon@linaro.org>
7087
7088 * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
7089 longer impact parallelization.
7090
7091 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
7092
7093 PR bootstrap/63496
7094 * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
7095
7096 2014-10-13 Marat Zakirov <m.zakirov@samsung.com>
7097
7098 * asan.c (instrument_derefs): BIT_FIELD_REF added.
7099
7100 2014-10-13 Richard Biener <rguenther@suse.de>
7101
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.
7107
7108 2014-10-13 Richard Sandiford <richard.sandiford@arm.com>
7109
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.
7114
7115 2014-10-12 Oleg Endo <olegendo@gcc.gnu.org>
7116
7117 PR target/59401
7118 * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
7119 of rtx.
7120 * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
7121 insn walking.
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.
7124
7125 2014-10-12 Trevor Saunders <tsaunders@mozilla.com>
7126
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
7135 char.
7136 (walk_type): Don't error out on for_user option.
7137 (write_func_for_structure): Emit user marking routines if requested by
7138 for_user option.
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.
7146
7147 2014-10-11 Oleg Endo <olegendo@gcc.gnu.org>
7148
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.
7156
7157 2014-10-11 Martin Liska <mliska@suse.cz>
7158
7159 PR middle-end/63376
7160 * cgraphunit.c (symbol_table::process_new_functions): Missing call
7161 for call_cgraph_insertion_hooks added.
7162
7163 2014-10-10 Jakub Jelinek <jakub@redhat.com>
7164
7165 PR c/63495
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.
7169
7170 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
7171
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.
7177
7178 2014-10-10 Marek Polacek <polacek@redhat.com>
7179
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.
7195
7196 2014-10-10 Richard Henderson <rth@redhat.com>
7197
7198 PR target/63404
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.
7201
7202 2014-10-10 Jeff Law <law@redhat.com>
7203
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
7209 rtx_insn.
7210 (update_equiv_regs): Update test for special marker in the
7211 INIT_INSNs list.
7212
7213 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7214
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
7220 value to 2.
7221 * doc/install.texi (aarch64*-*-*): Document
7222 new --enable-fix-cortex-a53-835769 option.
7223
7224 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7225 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7226
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.
7239
7240 2014-10-10 Jakub Jelinek <jakub@redhat.com>
7241
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.
7249
7250 2014-10-10 Richard Biener <rguenther@suse.de>
7251
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.
7255
7256 2014-10-10 Richard Biener <rguenther@suse.de>
7257
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
7264 after insertion.
7265
7266 2014-10-10 Eric Botcazou <ebotcazou@adacore.com>
7267
7268 * lra-assigns.c (assign_by_spills): Error out on spill failure.
7269
7270 2014-10-09 Markus Trippelsdorf <markus@trippelsdorf.de>
7271
7272 * pa-polymorphic-call.c (check_stmt_for_type_change): Move
7273 assertion.
7274
7275 2014-10-09 Richard Biener <rguenther@suse.de>
7276
7277 PR tree-optimization/63380
7278 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
7279 may trap.
7280
7281 2014-10-09 Joern Rennecke <joern.rennecke@embecosm.com>
7282
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
7288 -specs option.
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):
7336 Update prototype.
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.
7348
7349 * doc/extend.texi (io, address): Document new AVR variable attributes.
7350 (io_low): Likewise.
7351
7352 2014-10-09 Marek Polacek <polacek@redhat.com>
7353
7354 * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
7355
7356 2014-10-08 Richard Biener <rguenther@suse.de>
7357
7358 PR tree-optimization/61969
7359 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
7360 variables.
7361
7362 2014-10-09 Richard Biener <rguenther@suse.de>
7363
7364 PR tree-optimization/63445
7365 * tree-vrp.c (simplify_cond_using_ranges): Only warn about
7366 overflow for non-equality compares.
7367
7368 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
7369
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.
7374
7375 2014-10-08 Teresa Johnson <tejohnson@google.com>
7376
7377 PR bootstrap/63432.
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.
7381
7382 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
7383
7384 PR target/52941
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.
7391
7392 2014-10-08 Rong Xu <xur@google.com>
7393
7394 * gcov-tool.c (profile_overlap): New driver function
7395 to compute profile overlap.
7396 (print_overlap_usage_message): New.
7397 (overlap_usage): New.
7398 (do_overlap): New.
7399 (print_usage): Add calls to overlap function.
7400 (main): Ditto.
7401 * doc/gcov-tool.texi: Add documentation.
7402
7403 2014-10-08 Steve Ellcey <sellcey@mips.com>
7404
7405 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
7406 LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
7407
7408 2014-10-08 Jan Hubicka <hubicka@ucw.cz>
7409
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.
7413
7414 2014-10-08 Steve Ellcey <sellcey@mips.com>
7415
7416 * config/mips/linux64.h: Remove.
7417 * config/mips/gnu-user64.h: Remove.
7418 * gcc.config (mips*-*-*): Remove references to linux64.h and
7419 gnu-user64.h
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
7425 linux64.h.
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.
7438
7439 2014-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
7440 Richard Biener <rguenther@suse.de>
7441
7442 * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
7443 Get address space from operand 0 (BASE).
7444
7445 2014-10-07 Iain Sandoe <iain@codesourcery.com>
7446
7447 PR target/61387
7448 * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
7449
7450 2014-10-07 Aldy Hernandez <aldyh@redhat.com>
7451
7452 * dwarf2out.c: Remove current_function_has_inlines.
7453 (gen_subprogram_die): Same.
7454 (gen_inlined_subroutine_die): Same.
7455
7456 2014-10-07 Ilya Tocar <ilya.tocar@intel.com>
7457
7458 * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
7459 type.
7460 (_addcarry_u64): Ditto.
7461 (_addcarryx_u64): Ditto.
7462
7463 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
7464
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.
7468
7469 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
7470
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.
7475
7476 2014-10-06 Rong Xu <xur@google.com>
7477
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
7493 counters.
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.
7498
7499 2014-10-06 Rong Xu <xur@google.com>
7500
7501 * Makefile.in: Fix dependence.
7502 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
7503 indirect call topn profiler.
7504 * gcov-io.h: Ditto.
7505
7506 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
7507
7508 * calls.c (expand_call): Do not use the target as the return slot if
7509 it is not sufficiently aligned.
7510
7511 2014-10-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7512
7513 * config/rs6000/rs6000.c (analyze_swaps commentary): Add
7514 discussion of permutes and why we don't handle them.
7515
7516 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
7517
7518 * config/sparc/predicates.md (int_register_operand): Delete.
7519
7520 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
7521
7522 * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
7523
7524 2014-10-06 Jakub Jelinek <jakub@redhat.com>
7525
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
7537 if possible.
7538
7539 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
7540
7541 * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
7542 sanity check.
7543
7544 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
7545
7546 * ipa-polymorphic-call.c (possible_placement_new): Fix condition
7547 on size.
7548 (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
7549 into vptr pointer.
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.
7553
7554 2014-10-02 Mark Wielaard <mjw@redhat.com>
7555
7556 PR debug/63239
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.
7563
7564 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
7565
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
7580 vptr_changed.
7581 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
7582
7583 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
7584
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.
7590
7591 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
7592
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-*.
7607
7608 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
7609
7610 PR pch/63429
7611 * genconditions.c: Directly include ggc.h before rtl.h.
7612
7613 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
7614
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.
7619
7620 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7621
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.
7628
7629 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7630
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.
7634
7635 2014-10-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
7636
7637 * tree-pretty-print.c (dump_location): Make it extern. Dump also
7638 the column.
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
7644 LOCATION_LINE.
7645
7646
7647 2014-10-03 David Malcolm <dmalcolm@redhat.com>
7648
7649 * gcc.c (driver::global_initializations): Remove "const" so
7650 that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
7651 and decoded_options_count.
7652
7653 2014-10-03 Maciej W. Rozycki <macro@codesourcery.com>
7654
7655 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
7656 macro.
7657 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
7658 TARGET_E500_DOUBLE case here.
7659
7660 2014-10-03 Marc Glisse <marc.glisse@inria.fr>
7661
7662 PR c++/54427
7663 PR c++/57198
7664 PR c++/58845
7665 * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
7666
7667 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
7668
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.
7681
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.
7686
7687 2014-10-03 Jakub Jelinek <jakub@redhat.com>
7688
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
7691 TARGET_AVX512F.
7692 (expand_vec_perm_1): Likewise.
7693
7694 2014-10-03 Jakub Jelinek <jakub@redhat.com>
7695 Uros Bizjak <ubizjak@gmail.com>
7696
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.
7702
7703 2014-10-03 David Malcolm <dmalcolm@redhat.com>
7704
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"
7715 implementation.
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.
7732
7733 2014-10-03 Yury Gribov <y.gribov@samsung.com>
7734
7735 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
7736 don't emit empty ctors.
7737
7738 2014-10-03 Eric Botcazou <ebotcazou@adacore.com>
7739
7740 * convert.c (convert_to_integer): Do not introduce useless conversions
7741 between integral types.
7742
7743 2014-10-03 David Sherwood <david.sherwood@arm.com>
7744
7745 * ira-int.h (ira_allocno): Mark hard_regno as signed.
7746
7747 2014-10-03 Ilya Enkovich <ilya.enkovich@intel.com>
7748
7749 * lra-constraints.c (inherit_in_ebb): Handle calls with
7750 multiple return values.
7751 * caller-save.c (save_call_clobbered_regs): Likewise.
7752
7753 2014-10-03 Jakub Jelinek <jakub@redhat.com>
7754
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.
7758
7759 PR libgomp/61200
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.
7767
7768 PR target/62128
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.
7772
7773 2014-10-02 Jan Hubicka <hubicka@ucw.cz>
7774
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):
7785 Clear DYNAMIC.
7786 (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
7787 set it.
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.
7791
7792 2014-10-02 Teresa Johnson <tejohnson@google.com>
7793
7794 * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
7795 up when synthesizing counts to avoid rounding errors.
7796
7797 2014-10-02 Teresa Johnson <tejohnson@google.com>
7798
7799 PR middle-end/63422
7800 * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
7801 asserts to handle incoming insanities.
7802
7803 2014-10-02 Martin Jambor <mjambor@suse.cz>
7804
7805 PR tree-optimization/63375
7806 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
7807 references.
7808
7809 2014-10-02 Olivier Hainque <hainque@adacore.com>
7810
7811 * Makefile.in (CROSS): Define, to @CROSS.
7812
7813 2014-10-02 Jakub Jelinek <jakub@redhat.com>
7814
7815 PR target/62128
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.
7823
7824 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
7825
7826 * cgraphclones.c (build_function_type_skip_args): Do not make new
7827 type variant of old.
7828
7829 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
7830
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
7842 context updating.
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
7848 types.
7849 (try_speculative_devirtualization): New function.
7850 * ipa-utils.h (try_speculative_devirtualization): Declare.
7851
7852 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
7853
7854 * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
7855 dumping during WPA.
7856
7857 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
7858
7859 * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
7860 type variants.
7861
7862 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
7863
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.
7887
7888 2014-10-01 Segher Boessenkool <segher@kernel.crashing.org>
7889
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.
7894
7895 2014-10-01 Jakub Jelinek <jakub@redhat.com>
7896
7897 PR debug/63342
7898 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
7899 offset, TARGET_MEM_REF and SSA_NAME.
7900
7901 * config/i386/i386.c (expand_vec_perm_palignr): Handle
7902 256-bit vectors for TARGET_AVX2.
7903
7904 * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
7905 dfirst permutation.
7906
7907 PR target/63428
7908 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
7909 argument to avx2_permv2ti.
7910
7911 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7912
7913 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
7914
7915 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
7916
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.
7923
7924 2014-09-30 Teresa Johnson <tejohnson@google.com>
7925
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.
7942
7943 2014-09-30 Ilya Tocar <ilya.tocar@intel.com>
7944
7945 PR middle-end/62120
7946 * varasm.c (decode_reg_name_and_count): Check availability for
7947 registers from ADDITIONAL_REGISTER_NAMES.
7948
7949 2014-09-30 David Malcolm <dmalcolm@redhat.com>
7950
7951 PR plugins/63410
7952 * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
7953 (PLUGIN_HEADERS): Add pass-instances.def.
7954
7955 2014-09-30 James Greenhalgh <james.greenhalgh@arm.com>
7956
7957 * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
7958 iterator.
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.
7964
7965 2014-09-30 Jakub Jelinek <jakub@redhat.com>
7966
7967 PR inline-asm/63282
7968 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
7969 or invert_jump_1 if jump isn't any_condjump_p.
7970
7971 2014-09-30 Terry Guo <terry.guo@arm.com>
7972
7973 * config/arm/arm-cores.def (cortex-m7): New core name.
7974 * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
7975 (fpv5-d16): Ditto.
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.
7983
7984 2014-09-30 Jiong Wang <jiong.wang@arm.com>
7985
7986 * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
7987 before sinking insn.
7988
7989 2014-09-30 David Sherwood <david.sherwood@arm.com>
7990
7991 * ira-int.h (ira_allocno): Add "wmode" field.
7992 * ira-build.c (create_insn_allocnos): Add new "parent" function
7993 parameter.
7994 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
7995 that cannot be accessed in wmode.
7996
7997 2014-09-30 Markus Trippelsdorf <markus@trippelsdorf.de>
7998
7999 * data-streamer.c (bp_unpack_var_len_int): Avoid signed
8000 integer overflow.
8001
8002 2014-09-29 Andi Kleen <ak@linux.intel.com>
8003
8004 * opts.c (print_filtered_help): Print --param min/max/default
8005 with -Q.
8006
8007 2014-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
8008
8009 * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
8010
8011 2014-09-29 Eric Botcazou <ebotcazou@adacore.com>
8012
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.
8020
8021 2014-09-29 Chen Gang <gang.chen.5i5j@gmail.com>
8022
8023 * config/microblaze/microblaze.md (call_internal1): Use VOID
8024 instead of SI to fix "((void (*)(void)) 0)()" issue
8025
8026 2014-09-29 Nick Clifton <nickc@redhat.com>
8027
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.
8035
8036 2014-09-29 Jakub Jelinek <jakub@redhat.com>
8037
8038 PR middle-end/63247
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.
8042
8043 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
8044
8045 * config/pa/pa.c (pa_output_function_epilogue): Only update
8046 last_address when a nonnote insn is found.
8047
8048 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
8049
8050 PR ipa/60665
8051 * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
8052
8053 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
8054
8055 PR ipa/62121
8056 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
8057 fix pasto in checking array size.
8058
8059 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
8060
8061 PR middle-end/35545
8062 * passes.def (pass_tracer): Move before last dominator pass.
8063
8064 2014-09-26 Thomas Schwinge <thomas@codesourcery.com>
8065
8066 * gcc.c (try_generate_repro): Remove argument "prog". Change all
8067 users.
8068 (run_attempt): Handle errors of "pex_run" invocation.
8069
8070 2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
8071
8072 * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
8073 (CC1_SPEC): Define.
8074 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
8075 (TARGET_ASAN_SHADOW_OFFSET): Define.
8076
8077 2014-09-26 Martin Liska <mliska@suse.cz>
8078
8079 * cgraph.c (cgraph_node::release_body): New argument keep_arguments
8080 introduced.
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.
8086
8087 2014-09-26 Jakub Jelinek <jakub@redhat.com>
8088 Max Ostapenko <m.ostapenko@partner.samsung.com>
8089
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
8094 ICE_EXIT_CODE.
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
8103
8104 2014-09-25 Andi Kleen <ak@linux.intel.com>
8105
8106 * config/i386/i386.c (x86_print_call_or_nop): New function.
8107 (x86_function_profiler): Support -mnop-mcount and
8108 -mrecord-mcount.
8109 * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
8110 * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
8111
8112 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
8113
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):
8117 Remove.
8118
8119 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
8120
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,
8134 walk_ssa_copies,
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
8140 ipa-devirt.c
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,
8151 walk_ssa_copies,
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
8162
8163 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
8164
8165 * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
8166 for better storage.
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.
8176
8177 2014-09-25 Uros Bizjak <ubizjak@gmail.com>
8178
8179 PR rtl-optimization/63348
8180 * emit-rtl.c (try_split): Do not emit extra barrier.
8181
8182 2014-09-25 James Greenhalgh <james.greenhalgh@arm.com>
8183
8184 * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
8185 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
8186 new predicates.
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.
8207
8208 2014-09-25 Jiong Wang <jiong.wang@arm.com>
8209
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
8212 live-out from "bb".
8213
8214 2014-09-25 Felix Yang <felix.yang@huawei.com>
8215
8216 * lra.c (lra_set_insn_recog_data): Fix typo in comment.
8217 * genautomata.c (merge_states): Ditto.
8218
8219 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
8220
8221 PR target/62218
8222 * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
8223 in instruction sequence.
8224
8225 2014-09-25 Nick Clifton <nickc@redhat.com>
8226
8227 PR target/62218
8228 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
8229 in instruction sequence.
8230
8231 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8232
8233 PR target/63335
8234 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
8235 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
8236
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>
8245
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.
8254
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>
8263
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.
8271
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>
8280
8281 * config/i386/sse.md
8282 (define_insn "vec_set<mode>_0"): Add EVEX version.
8283
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>
8292
8293 * config/i386/sse.md
8294 (define_insn
8295 "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
8296 New.
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.
8305
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>
8314
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>"):
8327 Delete.
8328 (define_mode_attr pd2udqsuff): New.
8329 (define_insn
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.
8336
8337 2014-09-25 Jakub Jelinek <jakub@redhat.com>
8338
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.
8351
8352 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
8353
8354 * ipa-devirt.c (possible_polymorphic_call_targets): Remove
8355 forgotten debug output; canonicalize querries more wtih LTO.
8356
8357 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
8358
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;
8364 add CONTEXT.
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
8369 ipa-utils.h
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
8376 streamer-hooks.h
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
8381 OUTER_TYPE.
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.
8389
8390 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
8391
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.
8413
8414 2014-09-24 Aldy Hernandez <aldyh@redhat.com>
8415
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
8420 DECL_ABSTRACT_P.
8421
8422 2014-09-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8423
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
8426 UNSPEC_STVE).
8427
8428 2014-09-24 Jiong Wang <jiong.wang@arm.com>
8429
8430 * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
8431 !REG_P (src) to release more instruction sink opportunities.
8432
8433 2014-09-24 Wilco Dijkstra <wilco.dijkstra@arm.com>
8434
8435 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
8436 move costs for 128-bit types.
8437
8438 2014-09-24 Martin Jambor <mjambor@suse.cz>
8439
8440 * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
8441 when duplicating a PASS_THROUGH jump function when creating a
8442 speculative edge.
8443
8444 2014-09-24 Marek Polacek <polacek@redhat.com>
8445
8446 PR c/61405
8447 PR c/53874
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.
8452
8453 2014-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8454
8455 * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
8456 the lane.
8457 (vmuld_laneq_f64): Likewise.
8458 (vmuls_lane_f32): Likewise.
8459 (vmuls_laneq_f32): Likewise.
8460
8461 2014-09-24 Kirill Yukhin <kirill.yukhin@intel.com>
8462
8463 PR bootstrap/63235
8464 * varpool.c (varpool_node::add): Pass decl attributes
8465 to lookup_attribute.
8466
8467 2014-09-24 Jakub Jelinek <jakub@redhat.com>
8468
8469 PR sanitizer/63316
8470 * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
8471
8472 2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
8473
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.
8485
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>
8494
8495 * config/i386/sse.md
8496 (define_insn
8497 "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
8498 Add masking.
8499 (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
8500 (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
8501
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>
8510
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.
8523
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>
8532
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.
8541 (define_insn
8542 "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
8543 (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
8544 (define_insn
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.
8550
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>
8559
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
8572 (define_expand
8573 "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
8574 AVX512_VEC mode iterator.
8575 (define_insn
8576 "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
8577 Ditto.
8578 (define_expand
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.
8592
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>
8601
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.
8616
8617 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com>
8618
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.
8622
8623 2014-09-23 Andi Kleen <ak@linux.intel.com>
8624
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
8633 nodes when set.
8634 (symbol_table::compile): Add separate pass for no_reorder nodes.
8635 (process_common_attributes): Set no_reorder flag in symtab node.
8636 Add node argument.
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.
8648
8649 2014-09-23 Jiong Wang <jiong.wang@arm.com>
8650
8651 * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
8652 be INVALID_REGNUM.
8653
8654 2014-09-23 Thomas Schwinge <thomas@codesourcery.com>
8655
8656 * configure: Regenerate.
8657
8658 2014-09-23 Alan Lawrence <alan.lawrence@arm.com>
8659
8660 * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
8661 when result_mode == shift_mode.
8662
8663 2014-09-23 Kostya Serebryany <kcc@google.com>
8664
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
8670 to __asan_init_v4.
8671
8672 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8673
8674 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
8675 refine the constraints used on 32/64-bit floating point moves.
8676 (f32_av): Likewise.
8677 (f64_vsx): Likewise.
8678 (f64_dm): Likewise.
8679 (f64_av): 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.
8690
8691 2014-09-23 Jan Hubicka <hubicka@ucw.cz>
8692
8693 * tree.h (int_bit_position): Turn into inline function;
8694 implement using wide int.
8695 * tree.c (int_bit_position): Remove.
8696
8697 2014-09-23 Richard Sandiford <richard.sandiford@arm.com>
8698
8699 PR bootstrap/63280
8700 * target-globals.c (target_globals::~target_globals): Fix location
8701 of ira_int destruction.
8702
8703 2014-09-23 Renlin Li <renlin.li@arm.com>
8704
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.
8709
8710 2014-09-23 Wilco Dijkstra <wdijkstr@arm.com>
8711
8712 * common/config/aarch64/aarch64-common.c:
8713 (default_options aarch_option_optimization_table):
8714 Default to -fsched-pressure.
8715
8716 2014-09-23 Ilya Enkovich <ilya.enkovich@intel.com>
8717
8718 * cfgcleanup.c (try_optimize_cfg): Do not remove label
8719 with LABEL_PRESERVE_P flag set.
8720
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>
8729
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.
8735
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>
8744
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.
8750
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>
8759
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.
8765
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>
8774
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.
8782
8783 2014-09-22 Joseph Myers <joseph@codesourcery.com>
8784
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):
8790 Remove.
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):
8796 Remove.
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):
8808 Remove.
8809
8810 2014-09-22 Jan Hubicka <hubicka@ucw.cz>
8811
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.
8854
8855 2014-09-22 Jason Merrill <jason@redhat.com>
8856
8857 * Makefile.in (check-parallel-%): Add @.
8858
8859 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
8860
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.
8865
8866 2014-09-22 Peter A. Bigot <pab@pabigot.com>
8867
8868 * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
8869 -lnosys when -msim absent.
8870
8871 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
8872
8873 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
8874
8875 2014-09-22 Richard Biener <rguenther@suse.de>
8876
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.
8881
8882 2014-09-22 Jakub Jelinek <jakub@redhat.com>
8883
8884 PR debug/63328
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.
8888
8889 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
8890
8891 * config/bfin/bfin.md: Fix use of constraints in define_split.
8892
8893 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
8894
8895 * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
8896 GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
8897
8898 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
8899
8900 * hard-reg-set.h: Include hash-table.h.
8901 (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
8902 field.
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.
8927
8928 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
8929
8930 * combine.c (subst): Use simplify_subreg_regno rather than
8931 REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
8932
8933 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
8934
8935 * rtl.h (subreg_info): Expand commentary
8936 * rtlanal.c (subreg_get_info): Likewise.
8937
8938 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
8939
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.
8943
8944 2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com>
8945
8946 * config/arm/arm.c: #include "tm-constrs.h"
8947 (thumb1_size_rtx_costs): Adjust rtx costs.
8948
8949 2014-09-22 Hans-Peter Nilsson <hp@axis.com>
8950
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
8956 inhibit_libc=true.
8957 * configure: Regenerate.
8958
8959 2014-09-21 Patrick Oppenlander <pattyo.lists@gmail.com>
8960
8961 * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
8962
8963 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
8964
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.
8970
8971 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
8972
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.
8977
8978 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
8979
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):
8982 Tidy.
8983
8984 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
8985
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.
8998
8999 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
9000
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.
9011
9012 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
9013
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.
9017
9018 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
9019
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.
9023
9024 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
9025
9026 * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
9027
9028 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
9029
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.
9035
9036 2014-09-21 Uros Bizjak <ubizjak@gmail.com>
9037
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.
9044
9045 2014-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
9046
9047 * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
9048 operand 3 to "CnL".
9049
9050 2014-09-20 Andreas Schwab <schwab@suse.de>
9051
9052 * config/ia64/ia64.md: Remove constraints from define_split
9053 patterns.
9054
9055 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9056
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.
9071
9072 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9073
9074 * ipa-visibility.c (varpool_node::externally_visible_p): Do not
9075 privatize dynamic TLS variables.
9076
9077 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9078
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.
9083
9084 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9085
9086 PR tree-optimization/63255
9087 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
9088 issue in setting body_removed flag.
9089
9090 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9091
9092 PR c++/61825
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
9101 possible.
9102
9103 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
9104
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.
9109
9110 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
9111 calling signature.
9112 (emit_fusion_gpr_load): Likewise.
9113
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
9119 normal peephole.
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
9123 separately.
9124
9125 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
9126 fusion.
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.
9133
9134 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9135
9136 PR lto/63286
9137 * tree.c (need_assembler_name_p): Do not mangle variadic types.
9138
9139 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org>
9140
9141 * recog.c (scratch_operand): Do not simply allow all hard registers:
9142 only allow those that are allocatable.
9143
9144 2014-09-19 Felix Yang <felix.yang@huawei.com>
9145
9146 * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
9147 comments and fix spacing to conform to coding style.
9148
9149 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
9150
9151 * genrecog.c (validate_pattern): Allow empty constraints in
9152 a match_scratch.
9153
9154 2014-09-19 Aldy Hernandez <aldyh@redhat.com>
9155
9156 * dwarf2out.c (decl_ultimate_origin): Update comment.
9157 * tree.c (block_ultimate_origin): Same.
9158
9159 2014-09-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9160
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.
9165
9166 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
9167
9168 * config/sh/sh.md: Fix use of constraints in define_split.
9169
9170 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
9171
9172 PR ipa/61998
9173 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
9174
9175 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
9176
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.
9184
9185 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
9186
9187 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
9188 scratch register as written.
9189
9190 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9191
9192 * config/s390/s390.c (s390_emit_epilogue): Remove bogus
9193 assignment.
9194
9195 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9196
9197 * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
9198 expanders.
9199
9200 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9201
9202 PR target/62662
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.
9207
9208 2014-09-19 Marat Zakirov <m.zakirov@samsung.com>
9209
9210 * asan.c (build_check_stmt): Alignment arg was added.
9211 (asan_expand_check_ifn): Optimization for alignment >= 8.
9212
9213 2014-09-19 Olivier Hainque <hainque@adacore.com>
9214
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
9220 i386/vx-common.h.
9221
9222 2014-09-19 Olivier Hainque <hainque@adacore.com>
9223
9224 * config.gcc (powerpc-wrs-vxworksmils): New configuration.
9225 * config/rs6000/t-vxworksmils: New file.
9226 * config/rs6000/vxworksmils.h: New file.
9227
9228 2014-09-19 Olivier Hainque <hainque@adacore.com>
9229
9230 * varasm.c (default_section_type_flags): Flag .persistent.bss
9231 sections as SECTION_BSS.
9232
9233 2014-09-19 Nick Clifton <nickc@redhat.com>
9234
9235 * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
9236 pop'ed registers so that DCE does not eliminate them.
9237
9238 2014-09-18 Jan Hubicka <hubicka@ucw.cz>
9239
9240 PR lto/63298
9241 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
9242
9243 2014-09-18 Joseph Myers <joseph@codesourcery.com>
9244
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.
9255
9256 2014-09-19 Kito Cheng <kito@0xlab.org>
9257
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.
9274 * ira.h: Likewise.
9275 * lra-int.h: Likewise.
9276 * lra.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.
9286
9287 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
9288
9289 PR debug/63285
9290 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
9291 if advance != 0.
9292
9293 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
9294
9295 PR target/61360
9296 * lra.c (lra): Call recog_init.
9297
9298 2014-09-18 Jakub Jelinek <jakub@redhat.com>
9299
9300 PR c++/62017
9301 * asan.c (transform_statements): Don't instrument clobber statements.
9302
9303 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9304
9305 * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
9306 to neon_load1_1reg<q>.
9307
9308 2014-09-17 Jakub Jelinek <jakub@redhat.com>
9309
9310 PR debug/63284
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.
9314
9315 2014-09-17 Jan Hubicka <hubicka@ucw.cz>
9316
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;
9323 support VOIDtype.
9324 (add_type_duplicate): Update VISITED hash set.
9325
9326 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
9327
9328 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
9329 Enable selection of 'posix' or no thread model.
9330
9331 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
9332
9333 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
9334 when architecture is older than ARMv7.
9335
9336 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
9337
9338 PR target/61853
9339 * config/pa/pa.c (pa_function_value): Directly handle aggregates
9340 that fit exactly in a word or double word.
9341
9342 2014-09-16 Ilya Tocar <ilya.tocar@intel.com>
9343
9344 * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
9345 zmm/k regs support.
9346
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>
9355
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.
9363 (define_expand
9364 "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
9365 AVX512_VEC.
9366 (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
9367 (define_insn
9368 "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
9369 Ditto.
9370 (define_mode_attr extract_type_2): Ditto.
9371 (define_mode_attr extract_suf_2): Ditto.
9372 (define_mode_iterator AVX512_VEC_2): Ditto.
9373 (define_expand
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.
9396
9397 2014-09-16 Kito Cheng <kito@0xlab.org>
9398
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.
9406
9407 2014-09-15 Andi Kleen <ak@linux.intel.com>
9408
9409 * function.c (allocate_struct_function): Force
9410 DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
9411 profiling is disabled.
9412
9413 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
9414
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.
9424
9425 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
9426
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.
9434
9435 2014-09-15 Jakub Jelinek <jakub@redhat.com>
9436
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,
9447 or 128.
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.
9451
9452 2014-09-15 David Malcolm <dmalcolm@redhat.com>
9453
9454 * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
9455 rtx to rtx_insn *.
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
9463 typesafety.
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
9475 rtx to rtx_insn *.
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
9479 second param.
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
9483 "insn".
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
9494 rtx_insn * const *.
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
9501 local "insn".
9502 (min_insn_size): Likewise for param "insn".
9503 (get_mem_group): Likewise.
9504 (is_cmp): 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
9513 first param.
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
9531 first param.
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
9536 rtx_insn *.
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
9541 insns.
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
9545 local "insn".
9546 * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
9547 param.
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
9551 rtx_insn *.
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
9558 "insn".
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
9567 "insn".
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
9577 for param.
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.
9590
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
9623 "state_transition".
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
9652 rtx to rtx_insn *.
9653
9654 2014-09-15 David Malcolm <dmalcolm@redhat.com>
9655
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"
9659 and local "op".
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):
9674 Likewise.
9675 (default_loop_align_max_skip): Likewise.
9676 (default_label_align_max_skip): Likewise.
9677 (default_jump_align_max_skip): Likewise.
9678
9679 2014-09-15 David Malcolm <dmalcolm@redhat.com>
9680
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
9683 to rtx_insn *.
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
9691 rtx_insn *.
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.
9696
9697 2014-09-15 David Malcolm <dmalcolm@redhat.com>
9698
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.
9702
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>
9711
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.
9720
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>
9729
9730 * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
9731 New.
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.
9738
9739 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
9740
9741 * doc/install.texi (Options specification): add
9742 --disable-libsanitizer item.
9743
9744 2014-09-14 James Clarke <jrtc27@jrtc27.com>
9745 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9746
9747 PR target/61407
9748 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
9749 and above.
9750 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
9751 kernel version check to avoid incrementing it after every major OS X
9752 release.
9753 (darwin_default_min_version): Avoid static memory buffer.
9754
9755 2014-09-13 Jan Hubicka <hubicka@ucw.cz>
9756
9757 * tree.c (need_assembler_name_p): Store C++ type mangling only
9758 for aggregates.
9759
9760 2014-09-13 Marek Polacek <polacek@redhat.com>
9761
9762 * tree.c (protected_set_expr_location): Don't check whether T is
9763 non-null here.
9764
9765 2014-09-12 DJ Delorie <dj@redhat.com>
9766
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.
9770
9771 2014-09-12 David Malcolm <dmalcolm@redhat.com>
9772
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.
9780
9781 2014-09-12 Trevor Saunders <tsaunders@mozilla.com>
9782
9783 * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
9784 assert.
9785
9786 2014-09-12 Joseph Myers <joseph@codesourcery.com>
9787
9788 * target.def (libgcc_floating_mode_supported_p): New hook.
9789 * targhooks.c (default_libgcc_floating_mode_supported_p): New
9790 function.
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
9797 machine mode.
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
9808 function.
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):
9823 Remove.
9824 * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
9825 New macro.
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
9832 macro.
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.
9836
9837 2014-09-12 Richard Biener <rguenther@suse.de>
9838
9839 PR middle-end/63237
9840 * gimple-fold.c (get_maxval_strlen): Gimplify string length.
9841
9842 2014-09-12 Marc Glisse <marc.glisse@inria.fr>
9843
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.
9849
9850 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
9851
9852 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
9853 for A57.
9854 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
9855 cost to spilling from integer to FP registers.
9856
9857 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
9858
9859 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
9860 move handling.
9861 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
9862 are now handled correctly.
9863
9864 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
9865
9866 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
9867 handling of CALLER_SAVE_REGS and POINTER_REGS.
9868
9869 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
9870
9871 * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
9872 the number of hard registers.
9873
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>
9882
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
9893 iterator.
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.
9900
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>
9909
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
9920 iterator.
9921 (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
9922 in presence of AVX-512.
9923
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>
9932
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
9942 wide versions.
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.
9949
9950 2014-09-12 Richard Sandiford <richard.sandiford@arm.com>
9951
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.
9972
9973 2014-09-11 Jan Hubicka <hubicka@ucw.cz>
9974
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
9984 TYPE_DECLs
9985 * doc/invoke.texi (-flto-odr-type-merging): Document.
9986 * tree.c (need_assembler_name_p): Compute ODR names when asked
9987 for it.
9988 * tree.h (DECL_ASSEMBLER_NAME): Update comment.
9989
9990 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
9991
9992 PR target/63228
9993 * config/i386/i386.c (ix86_option_override_internal): Also turn
9994 off OPTION_MASK_ABI_X32 for -m16.
9995
9996 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
9997
9998 * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
9999 GPR instead of P.
10000
10001 2014-09-11 Marc Glisse <marc.glisse@inria.fr>
10002
10003 PR target/58757
10004 * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
10005 Directly forward to __*_DENORM_MIN__.
10006
10007 2014-09-11 David Malcolm <dmalcolm@redhat.com>
10008
10009 * rtl.h (LABEL_REF_LABEL): New macro.
10010
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.
10054
10055 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
10056
10057 * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
10058 tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
10059 instead of minus.
10060 * config/rs6000/vector.md (cr6_test_for_zero_reverse,
10061 cr6_test_for_lt_reverse): Ditto.
10062
10063 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
10064
10065 PR c++/61489
10066 * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
10067
10068 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
10069
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):
10074 Delete.
10075
10076 (aarch64_fold_builtin): Remove all reinterpret cases.
10077
10078 * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
10079
10080 * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
10081
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.
10089
10090 * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
10091
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.
10100
10101 * config/aarch64/iterators.md (VD_RE): Delete.
10102
10103 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
10104
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.
10113
10114 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
10115
10116 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
10117 types.
10118 (vmull_high_lane_s32): Likewise.
10119 (vmull_high_lane_u16): Likewise.
10120 (vmull_high_lane_u32): Likewise.
10121
10122 2014-09-11 Jason Merrill <jason@redhat.com>
10123
10124 PR c++/58678
10125 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
10126
10127 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
10128
10129 PR target/63223
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.
10133
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>
10142
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"):
10147 New.
10148 (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
10149 from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
10150 iterator.
10151 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
10152 New.
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
10161 iterator.
10162 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
10163 New.
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.
10167
10168 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
10169
10170 * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
10171 to access removed nodes.
10172
10173 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
10174
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
10179 definitions.
10180
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>
10189
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>"):
10199 Ditto.
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>".
10204
10205 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
10206
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.
10212
10213 2014-09-10 Xinliang David Li <davidxl@google.com>
10214
10215 PR target/63209
10216 * config/arm/arm.md (movcond_addsi): Handle case where source
10217 and target operands are the same.
10218
10219 2014-09-10 David Malcolm <dmalcolm@redhat.com>
10220
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.
10229
10230 2014-09-10 David Malcolm <dmalcolm@redhat.com>
10231
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
10235 rtx_insn *.
10236
10237 2014-09-10 Mike Stump <mikestump@comcast.net>
10238
10239 * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
10240 8.6.1.
10241
10242 2014-09-10 Martin Jambor <mjambor@suse.cz>
10243
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.
10248
10249 2014-09-10 Martin Jambor <mjambor@suse.cz>
10250
10251 PR ipa/61654
10252 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
10253 new decl properly. Analyze the new thunk if it is expanded.
10254
10255 2014-09-10 Andreas Schwab <schwab@suse.de>
10256
10257 * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
10258 [USED_FOR_TARGET]: Define.
10259
10260 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com>
10261
10262 * config/mips/mips.c (mips_secondary_reload_class): Handle
10263 regno < 0 case.
10264
10265 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com>
10266
10267 * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
10268 assignment.
10269
10270 2014-09-10 Jakub Jelinek <jakub@redhat.com>
10271
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
10282 stmt's iterator.
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.
10289
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
10300 callers.
10301
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>
10310
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.
10321
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>
10330
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,
10338 UNSPEC_RANGE.
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>"):
10342 Ditto.
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..
10346
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>
10355
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
10367 mode iterator.
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
10372 iterator..
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.
10376 (define_expand
10377 "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
10378 "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
10379 mode iterator.
10380 (define_insn
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
10386 iterator..
10387 (define_insn
10388 "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
10389 "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
10390 mode iterator..
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>".
10396
10397 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
10398
10399 PR ipa/63166
10400 * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
10401
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>
10410
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
10418 mode iterator.
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
10428 iterator.
10429 (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
10430 "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10431 iterator.
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
10439 iterator.
10440 (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
10441 "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10442 iterator.
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
10450 iterator.
10451 (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
10452 "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10453 iterator.
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
10461 iterator.
10462 (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
10463 "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10464 iterator.
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
10475 iterator.
10476 (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
10477 "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10478 iterator.
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
10486 iterator.
10487 (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
10488 "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10489 iterator.
10490
10491 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org>
10492
10493 Revert r213751:
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.
10502
10503 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
10504
10505 * opth-gen.awk: Generate mapping from cpp message reasons to the
10506 options that enable them.
10507 * doc/options.texi (CppReason): Document.
10508
10509 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
10510
10511 * doc/invoke.texi (Wnormalized=): Update.
10512
10513 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
10514
10515 PR target/63195
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.
10519
10520 2014-09-09 David Malcolm <dmalcolm@redhat.com>
10521
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
10526 rtx_insn *.
10527 (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
10528
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
10534 rather than insn.
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
10545 "insn".
10546 (find_load): Likewise for return type.
10547 (workaround_speculation): Likewise for both locals named
10548 "load_insn".
10549 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
10550 local "cc0_user".
10551 * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
10552 for local "prev".
10553 * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
10554 param 2.
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
10563 follows.
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
10567 second param.
10568 (mips_store_data_bypass_p): Likewise for both params.
10569 * config/mips/mips.c (mips_load_store_insns): Likewise for second
10570 param.
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",
10577 "ninsn".
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
10592 XEXP (set, 1).
10593 * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
10594 rtx to rtx_insn *.
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
10607 typesafety.
10608
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
10612 input insn.
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
10617 to rtx_insn *.
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
10625 checked cast.
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
10630 checked casts.
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.
10645
10646 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10647
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.
10651
10652 2014-09-09 David Malcolm <dmalcolm@redhat.com>
10653
10654 * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
10655 to rtx_insn *.
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):
10660 Likewise.
10661 * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
10662 first param.
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
10666 type-safety.
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
10678 for param.
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
10711 to rtx_insn *.
10712 (frv_optimize_membar): Strengthen local "last_membar" from rtx *
10713 to rtx_insn **.
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
10718 "insn".
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
10746 for param 1.
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
10761 removing another.
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
10780 to make_insn_raw.
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
10791 local "insn".
10792 * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
10793 params.
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
10800 "next".
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
10804 and local "i".
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
10809 "insn".
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
10815 to rtx_insn *.
10816 * genattr.c (main): When writing out the prototype to
10817 const_num_delay_slots, strengthen the param from rtx to
10818 rtx_insn *.
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 *
10825 "insn" and "seq".
10826 (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
10827 to rtx_insn *.
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
10830 "insn" and "seq".
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
10837 tightly-scoped.
10838 * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
10839 rtx_insn *.
10840 * ira.c (setup_prohibited_mode_move_regs): Likewise for local
10841 "move_insn".
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
10845 and an rtx_insn *.
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
10851 extract_insn.
10852 * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
10853 rtx_insn *.
10854 (verify_changes): Add a checked cast on "object" when invoking
10855 insn_invalid_p.
10856 (extract_insn_cached): Strengthen param "insn" from rtx to
10857 rtx_insn *.
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
10870 change.
10871 * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
10872 rtx to rtx_insn *.
10873 * sel-sched.c (get_reg_class): Likewise.
10874
10875 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
10876 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10877
10878 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
10879 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
10880 Define.
10881 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
10882
10883 2014-09-09 David Malcolm <dmalcolm@redhat.com>
10884
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.
10894
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
10903 method.
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.
10918
10919 2014-09-09 David Malcolm <dmalcolm@redhat.com>
10920
10921 * combine.c (try_combine): Eliminate checked cast on result of
10922 gen_rtx_INSN.
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
10927 special-cased.
10928 * rtl.h (gen_rtx_INSN): New prototype.
10929
10930 2014-09-09 David Malcolm <dmalcolm@redhat.com>
10931
10932 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
10933 than NULL_RTX.
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
10939 clarity.
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
10945 "list".
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".
10952
10953 2014-09-09 Jiong Wang <jiong.wang@arm.com>
10954
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.
10960
10961 2014-09-09 Richard Sandiford <richard.sandiford@arm.com>
10962
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
10973 itself.
10974 (target_globals::~target_globals): Define.
10975
10976 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10977
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
10986 vfp_output_vstmd.
10987
10988 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10989
10990 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
10991
10992 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10993
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.
11000
11001 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11002
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.
11013
11014 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11015
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.
11028
11029 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11030
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.
11041
11042 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11043
11044 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
11045 multiple.
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
11051 syntax.
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.
11065
11066 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
11067
11068 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
11069 (-mtune): Likewise.
11070 (-mcpu): Likewise.
11071
11072 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11073
11074 PR target/61749
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.
11094
11095 2014-09-09 Nick Clifton <nickc@redhat.com>
11096
11097 * doc/invoke.texi (Optimization Options): Add missing @gol to the
11098 end of a line.
11099 (S/390 and zSeries Options): Remove superfluous word from the
11100 description of the -mhotpatch option.
11101
11102 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
11103
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.
11109
11110 2014-09-08 Trevor Saunders <tsaunders@mozilla.com>
11111
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.
11125
11126 2014-09-08 David Malcolm <dmalcolm@redhat.com>
11127
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.
11131
11132 2014-09-08 David Malcolm <dmalcolm@redhat.com>
11133
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
11137 vec<rtx_insn *>.
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
11141 rtx_insn *.
11142 (record_last_set_info): Likewise for local "last_set_insn".
11143
11144 2014-09-08 DJ Delorie <dj@redhat.com>
11145
11146 * doc/invoke.texi (MSP430 Options): Add -minrt.
11147
11148 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11149
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
11153 handling SH_SPLAT.
11154 (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
11155 of extracted lane.
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.
11159
11160 2014-09-08 Richard Biener <rguenther@suse.de>
11161
11162 PR ipa/63196
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.
11169
11170 2014-09-08 Alan Lawrence <alan.lawrence@arm.com>
11171
11172 * config/aarch64/aarch64-builtins.c
11173 (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
11174
11175 2014-09-08 Joseph Myers <joseph@codesourcery.com>
11176
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.
11189
11190 2014-09-08 Joseph Myers <joseph@codesourcery.com>
11191
11192 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
11193 Remove.
11194 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
11195 Remove.
11196 * doc/tm.texi: Regenerate.
11197 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
11198 Poison.
11199 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
11200 * config/cris/cris.h (__make_dp): Remove.
11201
11202 2014-09-08 Richard Biener <rguenther@suse.de>
11203
11204 PR bootstrap/63204
11205 * cfgloop.c (mark_loop_for_removal): Track former header
11206 unconditionally.
11207 * cfgloop.h (struct loop): Add former_header member unconditionally.
11208 * loop-init.c (fix_loop_structure): Enable bogus loop removal
11209 diagnostic unconditionally.
11210
11211 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
11212
11213 PR target/63190
11214 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
11215 constraint for operand0 and remove write only modifier from operand3.
11216
11217 2014-09-07 Richard Sandiford <richard.sandiford@arm.com>
11218
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.
11222
11223 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
11224
11225 * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
11226 (arc_output_mi_thunk): Likewise.
11227
11228 * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
11229 arguments to silence bogus warning.
11230
11231 2014-09-06 Richard Sandiford <richard.sandiford@arm.com>
11232
11233 PR middle-end/63171
11234 * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
11235
11236 2014-09-06 Tom de Vries <tom@codesourcery.com>
11237
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.
11241
11242 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
11243
11244 PR target/63188
11245 * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
11246 * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
11247
11248 2014-09-05 Easwaran Raman <eraman@google.com>
11249
11250 PR rtl-optimization/62146
11251 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
11252 hoisted instruction unconditional.
11253
11254 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org>
11255
11256 PR target/63187
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.
11260
11261 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11262
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
11279 const rtx_insn *.
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
11287 const rtx_insn *.
11288 (onlyjump_p): Strengthen param "insn" from const_rtx to
11289 const rtx_insn *.
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
11294 simplejump_p.
11295 (get_jump_flags): Strengthen param "insn" from rtx to
11296 const rtx_insn *.
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
11303 const rtx_insn *.
11304 (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
11305 (condjump_p): Strengthen param from const_rtx to
11306 const rtx_insn *.
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
11317 const rtx_insn *.
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.
11323
11324 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11325
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
11330 "trial_seq".
11331
11332 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11333
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.
11342
11343 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11344
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.
11361
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
11366 param.
11367
11368 * system.h (CONST_CAST_RTX_INSN): New macro.
11369
11370 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11371
11372 * recog.c (peep2_attempt): Strengthen return type from rtx to
11373 rtx_insn *.
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".
11377
11378 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11379
11380 * basic-block.h (set_block_for_insn): Eliminate this macro in
11381 favor of...
11382 * rtl.h (set_block_for_insn): New inline function, imposing the
11383 requirement that the "insn" param is an rtx_insn *.
11384
11385 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11386
11387 * caller-save.c (setup_save_areas): Strengthen local "insn" from
11388 rtx to rtx_insn *.
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
11395 appropriate.
11396 (mark_target_live_regs): Strengthen local "real_insn" from rtx to
11397 rtx_insn *, adding a checked cast.
11398
11399 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11400
11401 * output.h (final_scan_insn): Strengthen first param from rtx to
11402 rtx_insn *.
11403
11404 * final.c (final_scan_insn): Likewise, renaming it back from
11405 "uncast_insn" to "insn", eliminating the checked cast.
11406
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
11413 final_scan_insn.
11414 * config/sh/sh.c (print_slot): Strengthen param from rtx to
11415 rtx_sequence * and rename from "insn" to "seq".
11416
11417 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11418
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
11422 the jump table.
11423
11424 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11425
11426 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
11427 f_minmaxs, f_minmaxd types.
11428
11429 2014-09-05 Richard Biener <rguenther@suse.de>
11430
11431 * cfgloop.c (mark_loop_for_removal): Record former header
11432 when ENABLE_CHECKING.
11433 * cfgloop.h (strut loop): Add former_header member when
11434 ENABLE_CHECKING.
11435 * loop-init.c (fix_loop_structure): Sanity check loops
11436 marked for removal if they re-appeared.
11437
11438 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11439
11440 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
11441 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
11442
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.
11464
11465 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11466
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.
11472
11473 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11474
11475 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
11476 handling cmge, cmgt, cmeq, cmtst.
11477
11478 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
11479 cmlt, cmgeu, cmgtu, cmtst): Remove.
11480
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.
11485
11486 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11487
11488 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
11489 TYPES_TST): Define.
11490 (aarch64_fold_builtin): Update pattern for cmtst.
11491
11492 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
11493 Declare.
11494
11495 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
11496
11497 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
11498 Switch operands, separate out more cases, refactor.
11499
11500 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
11501
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.
11506
11507 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
11508
11509 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11510
11511 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
11512 Remove qualifier_const_pointer, update comment.
11513
11514 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11515
11516 * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
11517
11518 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11519
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.
11523
11524 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11525
11526 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
11527 alus_ext.
11528
11529 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11530
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.
11536
11537 2014-09-05 Richard Biener <rguenther@suse.de>
11538
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.
11548
11549 2014-09-05 Richard Biener <rguenther@suse.de>
11550
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.
11556
11557 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
11558
11559 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
11560 DImode.
11561
11562 2014-09-05 Bin Cheng <bin.cheng@arm.com>
11563
11564 PR target/55701
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.
11585
11586 2014-09-05 Bin Cheng <bin.cheng@arm.com>
11587
11588 * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
11589
11590 2014-09-05 Bin Cheng <bin.cheng@arm.com>
11591
11592 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
11593
11594 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
11595
11596 * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
11597 an rtx.
11598 * valtrack.h: Adjust.
11599
11600 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
11601
11602 * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
11603 an rtx.
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.
11612 * rtl.h: Adjust.
11613
11614 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11615
11616 * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
11617 rtx_insn *, eliminating a checked cast.
11618
11619 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11620
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
11624 cast.
11625
11626 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11627
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
11633 rtx to rtx_insn *.
11634
11635 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11636
11637 * haifa-sched.c (get_ready_element): Strengthen return type from
11638 rtx to rtx_insn *.
11639 * sched-int.h (get_ready_element): Likewise.
11640
11641 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
11642
11643 PR target/63165
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.
11647
11648 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
11649
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 *.
11653
11654 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
11655
11656 * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
11657 rtx.
11658 (get_last_nonnote_insn): Likewise.
11659 (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
11660 * resource.c (find_basic_block): Likewise.
11661 * rtl.h: Adjust.
11662 * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
11663 const_rtx.
11664
11665 2014-09-04 David Malcolm <dmalcolm@redhat.com>
11666
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.
11673
11674 2014-09-04 David Malcolm <dmalcolm@redhat.com>
11675
11676 * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
11677 rtx_insn *.
11678
11679 * rtl.h (eh_returnjump_p): Likewise.
11680
11681 2014-09-04 Aldy Hernandez <aldyh@redhat.com>
11682
11683 * Makefile.in (TAGS): Handle constructs in timevar.def.
11684
11685 2014-09-04 Guozhi Wei <carrot@google.com>
11686
11687 PR target/62040
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.
11692
11693 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
11694
11695 * doc/options.texi: Document that Var and Init are required if CPP
11696 is given.
11697 * optc-gen.awk: Require Var and Init if CPP is given.
11698 * common.opt (Wpedantic): Use Init.
11699
11700 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11701
11702 * config/rs6000/rs6000.c (special_handling_values): Add
11703 SH_EXTRACT.
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
11708 optimization.
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.
11713
11714 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11715
11716 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
11717 selection of 0th memory doubleword, regardless of endianness.
11718
11719 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11720
11721 * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
11722
11723 2014-09-04 Alan Modra <amodra@gmail.com>
11724
11725 PR debug/60655
11726 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
11727 can't be output.
11728
11729 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
11730
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.
11738
11739 2014-09-03 Marek Polacek <polacek@redhat.com>
11740
11741 * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
11742 by -Wall.
11743
11744 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
11745
11746 * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
11747 the automodified register.
11748
11749 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
11750
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.
11771
11772 2014-09-03 Richard Henderson <rth@redhat.com>
11773
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.
11786
11787 2014-09-03 Richard Biener <rguenther@suse.de>
11788
11789 * opts.c (default_options_optimization): Adjust
11790 max-combine-insns to 2 for -Og.
11791
11792 2014-09-03 Martin Jambor <mjambor@suse.cz>
11793
11794 PR ipa/62015
11795 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
11796 pass-trough jump functions correctly.
11797
11798 2014-09-03 Martin Jambor <mjambor@suse.cz>
11799
11800 PR ipa/61986
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.
11804
11805 2014-09-03 Martin Liska <mliska@suse.cz>
11806
11807 * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
11808 is set to set uninitialized value for vnresult.
11809
11810 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11811
11812 * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
11813 for TARGET_MUST_PASS_IN_STACK.
11814
11815 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11816
11817 * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
11818 for TARGET_ARG_PARTIAL_BYTES.
11819
11820 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11821
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.
11826
11827 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11828
11829 * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
11830 optimization detection.
11831
11832 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11833
11834 * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
11835 arguments.
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.
11840
11841 2014-09-03 Richard Biener <rguenther@suse.de>
11842
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.
11851
11852 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11853
11854 * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
11855 according to the value of crtl->args.pretend_args_size.
11856
11857 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11858
11859 * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
11860 varargs information.
11861
11862 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11863
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.
11869
11870 2014-09-03 Ilya Tocar <ilya.tocar@intel.com>
11871
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
11880
11881 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11882
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.
11894
11895 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11896
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.
11901
11902 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11903
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.
11907
11908 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11909
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.
11916
11917 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11918
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.
11922
11923 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11924
11925 * config/nds32/nds32.h (machine_function): Add some fields for variadic
11926 arguments implementation.
11927
11928 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11929
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.
11935
11936 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11937
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
11942 information.
11943
11944 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11945
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
11950 information.
11951
11952 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11953
11954 PR target/61078
11955 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
11956 and add a second splitter to handle the remaining cases.
11957
11958 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11959
11960 * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
11961
11962 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
11963
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.
11968
11969 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
11970
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
11978 of rtx.
11979
11980 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
11981
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.
12018
12019 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12020
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
12031 prototype.
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.
12052
12053 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12054
12055 PR target/62275
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.
12065
12066 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12067
12068 PR target/62275
12069 * config/arm/iterators.md (FIXUORS): New code iterator.
12070 (VCVT): New int iterator.
12071 (su_optab): New code attribute.
12072 (su): Likewise.
12073 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
12074
12075 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12076
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.
12091
12092 2014-09-02 Aldy Hernandez <aldyh@redhat.com>
12093
12094 * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
12095 tree.def, and gimple.def
12096
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>
12100
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
12107 CILK_TI_F_LOOP_64.
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
12125 cilk_for case.
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.
12145
12146 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
12147
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.
12171
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.
12186
12187 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
12188
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.
12200
12201 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
12202
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.
12216
12217 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
12218
12219 * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
12220 *mulsi3_internal2, and two splitters): Delete.
12221 (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
12222 Delete.
12223 (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
12224
12225 2014-09-02 Richard Biener <rguenther@suse.de>
12226
12227 PR tree-optimization/62695
12228 * tree-ssa-structalias.c (find_func_clobbers): Add missing
12229 vector truncate.
12230
12231 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
12232
12233 PR target/62312
12234 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
12235
12236 2014-09-01 Andi Kleen <ak@linux.intel.com>
12237
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.
12243
12244 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
12245
12246 * genemit.c: Include dumpfile.h.
12247 (gen_split): Print name of splitter function to dump file.
12248
12249 2014-09-01 Richard Biener <rguenther@suse.de>
12250
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.
12256
12257 2014-09-01 Richard Biener <rguenther@suse.de>
12258
12259 * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
12260 operands vector in most cases. Remove redundant code.
12261
12262 2014-09-01 Olivier Hainque <hainque@adacore.com>
12263
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.
12267
12268 2014-09-01 Richard Biener <rguenther@suse.de>
12269
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
12284 reference ops.
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.
12290
12291 2014-09-01 Jakub Jelinek <jakub@redhat.com>
12292
12293 PR target/62025
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.
12297
12298 2014-09-01 Marek Polacek <polacek@redhat.com>
12299
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.
12303
12304 2014-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
12305
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
12309 size.
12310 (verify_symbolic_number_p): Likewise.
12311 (find_bswap_or_nop_1): Likewise.
12312 (find_bswap_or_nop): Likewise.
12313
12314 2014-09-01 Olivier Hainque <hainque@adacore.com>
12315
12316 * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
12317 INSTALL_SCRIPT and INSTALL_PROGRAM as well.
12318
12319 2014-09-01 Jakub Jelinek <jakub@redhat.com>
12320
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.
12324
12325 2014-09-01 Yury Gribov <y.gribov@samsung.com>
12326
12327 PR sanitizer/61897
12328 PR sanitizer/62140
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.
12334
12335 2014-09-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12336
12337 * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
12338
12339 2014-08-31 Gerald Pfeifer <gerald@pfeifer.com>
12340
12341 * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
12342
12343 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
12344
12345 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
12346 prefix to function labels when generating fast indirect calls.
12347
12348 2014-08-30 David Malcolm <dmalcolm@redhat.com>
12349
12350 PR bootstrap/62304
12351
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
12358 a RETURN.
12359 (steal_delay_list_from_target): Convert param "pnew_thread" back
12360 from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
12361 with JUMP_LABEL.
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
12367 to JUMP_LABEL.
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
12374 ANY_RETURN_P.
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
12383 get_label_before.
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.
12393
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.
12397
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
12408 ANY_RETURN_P.
12409
12410 2014-08-29 DJ Delorie <dj@redhat.com>
12411
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
12419 partial int modes.
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.
12433
12434 * expr.c (convert_move): If the target has an explicit converter,
12435 use it.
12436
12437 2014-08-29 David Malcolm <dmalcolm@redhat.com>
12438
12439 * gdbinit.in: Skip various inline functions in rtl.h when
12440 stepping.
12441
12442 2014-08-29 Richard Sandiford <richard.sandiford@arm.com>
12443
12444 PR bootstrap/62301
12445 * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
12446
12447 2014-08-29 Richard Biener <rguenther@suse.de>
12448
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
12454 checking of NAMEs.
12455 (dependent_clean): Adjust for removal of block argument.
12456 (clean): Likewise.
12457 (compute_antic_aux): Likewise.
12458 (compute_partial_antic_aux): Likewise.
12459
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>
12468
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.
12474
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>
12483
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"):
12493 Ditto.
12494 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
12495 Ditto.
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"):
12503 Ditto.
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.
12533
12534 2014-08-29 Richard Biener <rguenther@suse.de>
12535
12536 * tree-cfg.c (verify_gimple_assign_unary): Do not allow
12537 NON_LVALUE_EXPR in gimple.
12538
12539 2014-08-29 Richard Biener <rguenther@suse.de>
12540
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.
12545
12546 2014-08-29 David Malcolm <dmalcolm@redhat.com>
12547
12548 PR bootstrap/62300
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".
12552
12553 2014-08-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12554
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.
12558
12559 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12560
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".
12570
12571 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12572
12573 * shrink-wrap.h (active_insn_between): Strengthen both params from
12574 rtx to rtx_insn *.
12575 * function.c (active_insn_between): Likewise.
12576
12577 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12578
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
12584
12585 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12586
12587 * resource.h (clear_hashed_info_for_insn): Strengthen param from
12588 rtx to rtx_insn *.
12589 (incr_ticks_for_insn): Likewise.
12590 (init_resource_info): Likewise.
12591
12592 * resource.c (init_resource_info): Likewise.
12593 (clear_hashed_info_for_insn): Likewise.
12594 (incr_ticks_for_insn): Likewise.
12595
12596 * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
12597 rtx to rtx_insn *.
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".
12602
12603 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12604
12605 * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
12606 rtx to rtx_insn *.
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 *
12609 "set_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
12614 rtx_insn * "insn".
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.
12620
12621 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12622
12623 * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
12624 const rtx_insn *.
12625
12626 * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
12627 in invocation of INSN_HAS_LOCATION.
12628
12629 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12630
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.
12650
12651 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12652
12653 * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
12654 NEXT_INSN.
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
12659 const rtx_insn *.
12660 (no_labels_between_p): Likewise for both params.
12661
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
12667 rtx_insn *.
12668 * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
12669 for third param.
12670 (arc_text_label): Likewise for param "insn".
12671 * config/arc/arc.c (arc_expand_epilogue): Likewise for local
12672 "insn".
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
12686 operands[0].
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",
12694 "prev".
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
12702 "insn".
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
12709 to rtx_insn *.
12710 (undo_split_delayed_nonbranch): Likewise for param and for local
12711 "prev".
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
12728 "insns".
12729 (frv_add_insn_to_packet): Likewise for param "insn".
12730 (frv_insert_nop_in_packet): Likewise for param "insn" and local
12731 "last".
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",
12736 "label".
12737 * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
12738 local.
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
12747 params.
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
12766 rtx_insn *.
12767 * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
12768 param.
12769 * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
12770 type.
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",
12776 "newinsn".
12777 (conditionalize_optimization): Likewise for local "insn".
12778 * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
12779 using NEXT_INSN.
12780 * config/microblaze/microblaze.md: Add checked casts when using
12781 NEXT_INSN.
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):
12790 Likewise.
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
12794 rtx to rtx_insn *.
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",
12826 "floater".
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
12833 local "insn".
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
12838 rtx_insn *.
12839 (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
12840 to rtx_insn *.
12841 (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
12842 where needed.
12843 * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
12844 to rtx_insn *.
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
12857 "insn", "prev".
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
12871 rtx_insn *.
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
12882 operands[3].
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
12889 field "insn".
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
12894 "cbranch_insn".
12895 (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
12896 param "insn".
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
12900 "prev_insn".
12901 (sh_treg_combine::try_optimize_cbranch): Likewise for param
12902 "insn".
12903 (sh_treg_combine::execute): Likewise for local "i".
12904 * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
12905 param.
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
12911 rtx_insn *.
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
12924 rtx_sequence *.
12925 (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
12926 rtx_insn *.
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
12935 rtx_insn *.
12936 * genattrtab.c (write_eligible_delay): Likewise when writing out
12937 generated insn-attrtab.c; also local "insn" the generated
12938 functions.
12939 * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
12940 to rtx_insn *.
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
12948 local "insn".
12949 * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
12950 final param.
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
12956 rtx_sequence *.
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
12960 rtx_insn *.
12961 (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
12962 to rtx_insn *.
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
12978 to rtx_insn *.
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
12997 rtx_insn *.
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
13013 rtx to rtx_insn *.
13014 (computation_cost): Likewise for local "seq".
13015 (get_address_cost): Likewise.
13016
13017 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13018
13019 * rtl.h (tablejump_p): Strengthen first param from const_rtx to
13020 const rtx_insn *.
13021 (label_is_jump_target_p): Likewise for second param.
13022
13023 * rtlanal.c (tablejump_p): Likewise for param "insn".
13024 (label_is_jump_target_p): Likewise for param "jump_insn".
13025
13026 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13027
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.
13034
13035 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13036
13037 * rtl.h (find_last_value): Delete.
13038 * rtlanal.c (find_last_value): Delete.
13039
13040 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13041
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
13053 rtx_insn *.
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
13057 for local "insn".
13058 (define_expand "umulsi3_highpart"): Likewise for local "insn".
13059 * dse.c (note_add_store_info): Likewise for fields "first",
13060 "current".
13061 (note_add_store): Likewise for local "insn".
13062 (emit_inc_dec_insn_before): Likewise for locals "insn",
13063 "new_insn", "cur".
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
13069 "prev".
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
13101 clarity.
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
13107 rtx to rtx_insn *.
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
13111 "uncast_after".
13112 (emit_pattern_after): Likewise. Strengthen local "prev" from
13113 rtx to rtx_insn *.
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
13117 rtx to rtx_insn *.
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"
13123 and local "insn".
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
13127 rtx_insn *.
13128 * function.c (set_insn_locations): Strengthen param "insn" from
13129 rtx to rtx_insn *.
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
13144 const rtx_insn *.
13145 (schedule_block): Strengthen local "next_tail" from rtx to
13146 rtx_insn *.
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
13160 NULL.
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
13166 "last_insn".
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 *
13184 to rtx_insn **.
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
13188 the code.
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
13203 params.
13204 (no_real_insns_p): Strengthen both params from const_rtx to
13205 const rtx_insn *.
13206 (sched_setup_bb_reg_pressure_info): Strengthen second params from
13207 rtx to rtx_insn *.
13208 * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
13209 "next_tail".
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
13213 rtx_insn *.
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
13220 "prologue_seq".
13221 (convert_to_simple_return): Likewise for param "returnjump".
13222 * valtrack.c (propagate_for_debug): Likewise for params
13223 "insn", "last".
13224 * valtrack.h (propagate_for_debug): Likewise for second param.
13225
13226 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13227
13228 * output.h (insn_current_reference_address): Strengthen param
13229 from rtx to rtx_insn *.
13230 * final.c (insn_current_reference_address): Likewise.
13231
13232 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13233
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.
13237
13238 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13239
13240 * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
13241 rtx_insn *.
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.
13250
13251 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13252
13253 * function.h (struct expr_status): Convert field "x_forced_labels"
13254 from rtx_expr_list * to rtx_insn_list *.
13255
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
13262 forced_labels.
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
13270 forced_labels.
13271 (expand_label): Likewise for local "label_r".
13272
13273 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13274
13275 * function.h (struct rtl_data): Convert field
13276 "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
13277 rtx_insn_list *.
13278 * rtl.h (remove_node_from_insn_list): New prototype.
13279
13280 * builtins.c (expand_builtin): When prepending to
13281 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
13282 gen_rtx_EXPR_LIST.
13283 * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
13284 to rtx_insn_list *, and use its "insn" method rather than
13285 "element" method.
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
13291 "element" method.
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
13298 gen_rtx_EXPR_LIST.
13299
13300 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13301
13302 * function.h (struct rtl_data): Strengthen fields "x_return_label"
13303 and "x_naked_return_label" from rtx to rtx_code_label *.
13304
13305 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13306
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 **).
13310
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
13318 rtx_insn *.
13319 (reorg_split_calls): Likewise for locals "insn" and "next", and
13320 the type of the elements of the "slot" array.
13321
13322 * config/frv/frv.c (frv_nops): Likewise for the elements of this
13323 array.
13324 (frv_function_prologue): Likewise for locals "insn", "next",
13325 "last_call".
13326 (frv_register_nop): Introduce a local "nop_insn" to be the
13327 rtx_insn * containing rtx "nop".
13328
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.
13333
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 *.
13337
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
13344 use its methods.
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
13353 to rtx_insn *.
13354
13355 * haifa-sched.c (reemit_notes): Strengthen params "insn" and
13356 "last" from rtx to rtx_insn *.
13357
13358 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13359
13360 * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
13361 param from rtx to rtx_insn *.
13362
13363 * emit-rtl.c (copy_delay_slot_insn): Likewise.
13364
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
13372 rtx to rtx_insn *.
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
13389 rtx_insn *.
13390 (optimize_skip): Strengthen return type and local "delay_list"
13391 from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to
13392 rtx_insn *.
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
13397 rtx_insn **.
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
13411 rtx to rtx_insn *.
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
13415 rtx_insn **.
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 *.
13435
13436 2014-08-28 Richard Biener <rguenther@suse.de>
13437
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.
13442
13443 2014-08-28 Bin Cheng <bin.cheng@arm.com>
13444
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.
13449
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>
13458
13459 (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
13460 (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
13461 masking.
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.
13466
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>
13475
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.
13493
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>
13502
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.
13507
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>
13516
13517 * config/i386/sse.md
13518 (define_mode_iterator VI128_256): New.
13519 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
13520
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>
13529
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>"):
13533 Ditto.
13534 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
13535 (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
13536 Ditto.
13537 (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
13538
13539 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13540
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.
13548
13549 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13550
13551 * varasm.c (mark_constant): Replace this for_each_rtx callback with...
13552 (mark_constants_in_pattern): ...this new function to iterate over
13553 all the subrtxes.
13554 (mark_constants): Update accordingly.
13555
13556 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13557
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.
13564
13565 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13566
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.
13571
13572 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13573
13574 * var-tracking.c (use_narrower_mode_test): Turn from being a
13575 for_each_rtx callback to being a function that examines each
13576 subrtx itself.
13577 (adjust_mems): Update accordingly.
13578
13579 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13580
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.
13585
13586 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13587
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.
13592
13593 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13594
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.
13599
13600 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13601
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.
13606
13607 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13608
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.
13613
13614 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13615
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.
13630
13631 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13632
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.
13637
13638 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13639
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.
13647
13648 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13649
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.
13657
13658 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13659
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.
13664
13665 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13666
13667 * regcprop.c (cprop_find_used_regs_1): Delete.
13668 (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
13669
13670 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13671
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.
13677
13678 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13679
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.
13684
13685 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13686
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.
13691
13692 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13693
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.
13697
13698 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13699
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.
13706
13707 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13708
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
13712 accordingly.
13713
13714 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13715
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.
13721
13722 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13723
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.
13727
13728 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13729
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.
13734
13735 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13736
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.
13742
13743 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13744
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.
13749
13750 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13751
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.
13758
13759 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13760
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
13764 for_each_rtx.
13765
13766 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13767
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.
13773
13774 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13775
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.
13782
13783 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13784
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.
13791
13792 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13793
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.
13799
13800 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13801
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.
13807
13808 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13809
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.
13813
13814 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13815
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.
13821
13822 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13823
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.
13829
13830 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13831
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
13837 as argument.
13838 (delete_trivially_dead_insns): Update call accordingly.
13839
13840 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13841
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.
13846
13847 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13848
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.
13853
13854 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13855
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.
13860
13861 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13862
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.
13867
13868 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13869
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
13876 handle null rtxes.
13877 (combine_stack_adjustments_for_block): Update accordingly.
13878
13879 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13880
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
13884 for_each_rtx.
13885
13886 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13887
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.
13892
13893 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13894
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.
13899
13900 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13901
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
13906 have been spilled.
13907
13908 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13909
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.
13916
13917 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13918
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.
13922
13923 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13924
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.
13937
13938 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
13939
13940 PR target/62261
13941 * config/sh/sh.md (ashlsi3): Handle negative shift count for
13942 TARGET_SHMEDIA.
13943 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
13944
13945 2014-08-27 Richard Sandiford <rdsandiford@googlemail.com>
13946
13947 * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
13948
13949 2014-08-27 David Malcolm <dmalcolm@redhat.com>
13950
13951 * rtl.h (JUMP_LABEL_AS_INSN): New.
13952
13953 2014-08-27 David Malcolm <dmalcolm@redhat.com>
13954
13955 * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
13956 rtx_expr_list **.
13957 (alloc_EXPR_LIST): Strengthen return type from rtx to
13958 rtx_expr_list *.
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
13964 rtx_expr_list *.
13965
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
13970 rtx_expr_list **.
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
13987 rtx_expr_list *.
13988 (prepare_call_arguments): Likewise.
13989
13990 2014-08-27 David Malcolm <dmalcolm@redhat.com>
13991
13992 * function.h (struct rtl_data): Strengthen field
13993 "x_stack_slot_list" from rtx to rtx_expr_list *.
13994
13995 * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
13996 when assigning to stack_slot_list.
13997
13998 2014-08-27 David Malcolm <dmalcolm@redhat.com>
13999
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 **.
14004
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
14008 the code.
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
14011 the code.
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
14017 the code.
14018
14019 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14020
14021 * function.h (struct expr_status): Strengthen field
14022 "x_forced_labels" from rtx to rtx_expr_list *.
14023
14024 * cfgbuild.c (make_edges): Split local "x" into two locals,
14025 strengthening one from rtx to rtx_expr_list *, and using methods
14026 of said class.
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
14032 code.
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.
14036
14037 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14038
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.
14048
14049 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14050
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.
14054
14055 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14056
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.
14060
14061 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14062
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
14073 the code.
14074
14075 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14076
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.
14080
14081 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14082
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.
14086
14087 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14088
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.
14092
14093 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14094
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
14097 rtx_sequence.
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.
14105
14106 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14107
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.
14111
14112 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14113
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".
14118
14119 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14120
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.
14129
14130 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14131
14132 * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
14133 rtx_insn_list **.
14134 (alloc_INSN_LIST): Strengthen return type from rtx to
14135 rtx_insn_list *.
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 **.
14142
14143 * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
14144 "implicit_sets", "control_uses", "clobbers" from rtx to
14145 rtx_insn_list *.
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 *.
14153
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
14157 rtx_insn_list *.
14158
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
14162 rtx_insn_list *.
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
14170 list.
14171 (early_queue_to_ready): Likewise for locals "link", "next_link",
14172 "prev_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
14176 working it.
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
14183 them.
14184
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
14188 rtx_insn_list **.
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.
14201
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
14213 respectively.
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
14217 rtx_insn *.
14218
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.
14223
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
14227 rtx_insn_list *.
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 *.
14232
14233 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14234
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.
14243
14244 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14245
14246 * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
14247 "prev" from rtx to rtx_insn *.
14248
14249 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14250
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.
14256
14257 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14258
14259 * rtl.h (PATTERN): Convert this macro into a pair of inline
14260 functions, for now, requiring const_rtx and rtx.
14261
14262 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14263
14264 * target.def (unwind_emit): Strengthen param "insn" from rtx to
14265 rtx_insn *.
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.
14286 (after): Likewise.
14287
14288 * doc/tm.texi: Automatically updated to reflect changes to
14289 target.def.
14290
14291 * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
14292 working with insn.
14293 (schedule_block): Likewise.
14294 (sched_init): Likewise.
14295 (sched_speculate_insn): Strengthen param "insn" from rtx to
14296 rtx_insn *.
14297 (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
14298 working with insn.
14299 * hooks.c (hook_bool_rtx_true): Rename to...
14300 hook_bool_rtx_insn_true): ...this, and strengthen first param from
14301 rtx to rtx_insn *.
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
14310 rtx to rtx_insn *.
14311
14312 * hooks.h (hook_bool_rtx_true): Rename to...
14313 (hook_bool_rtx_insn_true): ...this, and strengthen first param from
14314 rtx to rtx_insn *.
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
14320 rtx to rtx_insn *.
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 *.
14324
14325 * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
14326 and local "prev" from rtx to rtx_insn *.
14327
14328 * sched-int.h (sched_speculate_insn): Strengthen first param from
14329 rtx to rtx_insn *.
14330
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 *.
14336
14337 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
14338 (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
14339
14340 * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
14341 "insn".
14342 (arc_invalid_within_doloop): Likewise, with const.
14343
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.
14347
14348 * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
14349 "dep_insn".
14350
14351 * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
14352 (c6x_variable_issue): Likewise. Removed now-redundant checked
14353 cast.
14354 (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
14355
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.
14363
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.
14378
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
14384 rtx to rtx_insn *.
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".
14393
14394 * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
14395
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".
14399
14400 * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
14401 "def_insn".
14402
14403 * config/microblaze/microblaze.c (microblaze_adjust_cost):
14404 Likewise for params "insn", "dep".
14405
14406 * config/mips/mips.c (mips_adjust_cost): Likewise.
14407 (mips_variable_issue): Likewise for param "insn".
14408 (mips_final_postscan_insn): Likewise.
14409
14410 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
14411 for params "insn", "dep".
14412
14413 * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
14414 "dep_insn".
14415 (pa_adjust_priority): Likewise for param "insn".
14416
14417 * config/picochip/picochip.c (picochip_sched_adjust_cost):
14418 Likewise for params "insn", "dep_insn".
14419
14420 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
14421 param "insn".
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.
14431
14432 * config/s390/s390.c (s390_adjust_priority): Likewise for param
14433 "insn".
14434 (s390_cannot_copy_insn_p): Likewise.
14435 (s390_sched_variable_issue): Likewise for third param, eliminating
14436 checked cast.
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.
14440
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.
14448
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.
14453
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.
14457
14458 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
14459 params "insn" and "dep_insn" from rtx to rtx_insn *.
14460
14461 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
14462
14463 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14464
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
14467 than an insn.
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
14480 set_is_store_p.
14481
14482 2014-08-27 Guozhi Wei <carrot@google.com>
14483
14484 PR target/62262
14485 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
14486 amount before using it.
14487
14488 2014-08-27 Richard Biener <rguenther@suse.de>
14489
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
14500 themselves.
14501
14502 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
14503
14504 PR other/62248
14505 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
14506
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>
14515
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.
14519
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>
14528
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.
14557
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>
14566
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.
14575
14576 2014-08-27 Richard Biener <rguenther@suse.de>
14577
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
14582 from builtins.c.
14583 (gimple_fold_builtin): Fold strcat_chk here.
14584
14585 2014-08-26 Aldy Hernandez <aldyh@redhat.com>
14586
14587 * dwarf2out.h (dwarf2out_decl): Remove prototype.
14588 * dwarf2out.c (dwarf2out_decl): Make static.
14589
14590 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
14591
14592 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
14593
14594 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14595
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.
14601
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.
14608
14609 * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
14610 from rtx to rtx_insn *.
14611
14612 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14613
14614 * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
14615 rtx_insn *.
14616
14617 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14618
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
14622 rtx_insn *.
14623 (DF_REF_INSN): Eliminate this function, reinstating the older
14624 macro definition.
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
14630 const rtx_insn *.
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
14654 const rtx_insn *.
14655 * sched-int.h (reemit_notes): Strengthen param from rtx to
14656 rtx_insn *.
14657 * valtrack.h (propagate_for_debug): Likewise for param 1.
14658
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
14662 rtx_insn *.
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
14667 rtx_insn *.
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
14685 rtx_insn *.
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 *.
14726 Add checked cast.
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 *.
14731
14732 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14733
14734 * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
14735 to rtx_insn *.
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.
14741
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",
14746 "other".
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
14767 checked casts.
14768 (estimate_insn_tick): Likewise for param "insn".
14769 (commit_schedule): Likewise for params "prev_head", "tail" and
14770 local "x".
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
14775 cast.
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",
14790 "other".
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".
14797
14798 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14799
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",
14803 "iter".
14804
14805 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14806
14807 * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
14808 rtx_insn *.
14809 * cfgrtl.c (duplicate_insn_chain): Likewise for params "from",
14810 "to" and locals "insn", "next", "copy". Remove now-redundant
14811 checked cast.
14812
14813 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14814
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 **.
14819
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 **.
14822
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
14829 rtx_insn **.
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
14835 rtx_insn *.
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
14840 rtx_insn *.
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
14844 checked cast.
14845 * rtlanal.c (canonicalize_condition): Likewise for param "insn"
14846 and local "prev". Strengthen param "earliest" from rtx * to
14847 rtx_insn **.
14848 (get_condition): Strengthen param "jump" from rtx to rtx_insn *
14849 Strengthen param "earliest" from rtx * to rtx_insn **.
14850
14851 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14852
14853 * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
14854 "to" and local "insn" from rtx to rtx_insn *.
14855
14856 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14857
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".
14863
14864 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14865
14866 * rtl.h (push_to_sequence): Strengthen param from rtx to
14867 rtx_insn *.
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.
14872
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.
14876
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
14880 "after".
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"
14885 and local "x".
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",
14891 "last_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".
14895
14896 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14897
14898 * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
14899 to rtx_insn*.
14900 * emit-rtl.c (get_last_insn_anywhere): Likewise.
14901
14902 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14903
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
14907 "x_last_insn".
14908
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.
14913
14914 * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
14915 "saved_first" and "saved_last" from rtx to rtx_insn *.
14916
14917 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14918
14919 * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
14920 (unlink_insn_chain): Strengthen both params from rtx to
14921 rtx_insn *.
14922
14923 * cfgrtl.c (cfg_layout_function_header): Likewise for this
14924 variable.
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
14929 rtx_insn *.
14930 * emit-rtl.c (link_insn_into_chain): Likewise for all three
14931 params.
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.
14942
14943 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14944
14945 * cselib.h (cselib_record_sets_hook): Strengthen initial param
14946 "insn" from rtx to rtx_insn *.
14947
14948 * cselib.c (cselib_record_sets_hook): Likewise.
14949
14950 * var-tracking.c (add_with_sets): Likewise, renaming back from
14951 "uncast_insn" to "insn" and eliminating the checked cast from rtx
14952 to rtx_insn *.
14953
14954 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14955
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.
14969
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
14983 SET_BB_END.
14984 (construct_exit_block): Drop use of SET_BB_END.
14985 * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
14986 rtx_insn *.
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
14991 SET_BB_END.
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,
15005 SET_BB_HEAD.
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.
15032
15033 * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
15034 SET_BB_END.
15035 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
15036
15037 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15038
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.
15046
15047 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15048
15049 * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
15050 rtx_insn **.
15051 (check_for_inc_dec): Strengthen param "insn" from rtx to
15052 rtx_insn *.
15053
15054 * cselib.h (cselib_process_insn): Likewise.
15055
15056 * cselib.c (cselib_record_sets): Likewise.
15057 (cselib_process_insn): Likewise.
15058
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".
15064
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.
15067
15068 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15069
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.
15082
15083 * haifa-sched.c (priority): Likewise for param "insn" and local
15084 "next".
15085 (set_priorities): Likewise for params "head" and "tail" and local
15086 "insn".
15087 (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
15088 local "consumer".
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
15092 rtx to rtx_insn *.
15093
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
15097 rtx_insn *.
15098 (sd_copy_back_deps): Likewise for params "to" and "from". Drop
15099 use of SET_DEP_CON.
15100 (DEP_PRO): Delete.
15101 (DEP_CON): Delete.
15102 (SET_DEP_PRO): Delete.
15103 (SET_DEP_CON): Delete.
15104
15105 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15106
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.
15112
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.
15117
15118 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15119
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
15130 rtx_insn *.
15131
15132 * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
15133 vec<rtx_insn *> .
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.
15138
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".
15143
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.
15151
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 *> *.
15156
15157 * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
15158 scaffolding.
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
15175 NULL.
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.
15182
15183 * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
15184 rtx to rtx_insn *.
15185 (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
15186 (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
15187 rtx to rtx_insn *.
15188 (undo_transformations): Likewise for param "insn".
15189 (update_liveness_on_insn): Likewise.
15190 (compute_live_below_insn): Likewise for param "insn" and local
15191 "succ".
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
15196 rtx_insn *.
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
15208 to insn_t.
15209
15210 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15211
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
15216 _XLIST_NEXT.
15217 (struct _list_node): Add new field "insn" to the union, of type
15218 insn_t.
15219 (ilist_add): Replace macro with an inline function, requiring an
15220 insn_t.
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
15224 _xlist_clear.
15225 (ilist_is_in_p): Replace macro with an inline function, requiring
15226 an insn_t.
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.
15235
15236 2014-08-26 Joseph Myers <joseph@codesourcery.com>
15237
15238 PR target/60606
15239 PR target/61330
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.
15247
15248 2014-08-26 Marek Polacek <polacek@redhat.com>
15249
15250 PR c/61271
15251 * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
15252
15253 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
15254
15255 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
15256 qi cost; add di cost.
15257 (cortexa57_addrcost_table): Likewise.
15258
15259 2014-08-26 Marek Polacek <polacek@redhat.com>
15260
15261 PR c/61271
15262 * expr.c (is_aligning_offset): Remove logical not.
15263
15264 2014-08-26 Marek Polacek <polacek@redhat.com>
15265
15266 PR c/61271
15267 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
15268 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
15269
15270 2014-08-26 Richard Biener <rguenther@suse.de>
15271
15272 PR tree-optimization/62175
15273 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
15274 expand possibly trapping operations.
15275
15276 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15277
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
15284 "new_insn".
15285 (rs6000_analyze_swaps): Likewise for local "insn".
15286
15287 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15288
15289 * regrename.h (struct du_chain): Strengthen field "insn" from rtx
15290 to rtx_insn *.
15291
15292 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15293
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.
15299
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 **.
15303
15304 * haifa-sched.c (concat_note_lists): Likewise.
15305 * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
15306 BB_NOTE_LIST.
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.
15313
15314 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15315
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 *.
15321
15322 * doc/tm.texi: Update mechanically for above change to target.def.
15323
15324 * sched-int.h (note_list): Strengthen this variable from rtx to
15325 rtx_insn *.
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
15329 rtx_insn **.
15330 (struct dep_replacement): Strenghten field "insn" from rtx to
15331 rtx_insn *.
15332 (struct deps_desc): Likewise for fields "last_debug_insn",
15333 "last_args_size".
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.
15355
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
15360 rtx_insn **.
15361
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
15369 rtx_insn **.
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
15386 rtx_insn *.
15387
15388 * config/i386/i386.c (do_reorder_for_imul): Strengthen param
15389 "ready" from rtx * to rtx_insn **. Strengthen local "insn" from
15390 rtx to rtx_insn *.
15391 (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
15392 rtx_insn **. Strengthen locals "top", "next" from rtx to
15393 rtx_insn *.
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
15400 "insn".
15401 (ix86_dependencies_evaluation_hook): Likewise for params "head",
15402 "tail" and locals "insn", "first_arg".
15403
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
15410 rtx_insn **.
15411 (ia64_sched_reorder2): Likewise.
15412
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
15417 rtx_insn **.
15418 (mep_print_sched_insn): Strengthen param "insn" from rtx to
15419 rtx_insn *.
15420 (mep_sched_reorder): Strengthen param "ready" from rtx * to
15421 rtx_insn **. Strengthen locals "core_insn", "cop_insn" from rtx
15422 to rtx_insn *.
15423
15424 * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
15425 from rtx * to rtx_insn **. Strengthen local "new_head" from rtx
15426 to rtx_insn *.
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
15430 rtx_insn **.
15431 (vr4130_reorder): Likewise.
15432 (mips_74k_agen_reorder): Likewise. Strengthen local "insn" from
15433 rtx to rtx_insn *.
15434 (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
15435 rtx_insn **.
15436 (mips_sched_reorder): Likewise.
15437 (mips_sched_reorder2): Likewise.
15438
15439 * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
15440
15441 * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
15442 Strengthen local "tmp" from rtx to rtx_insn *.
15443 (rs6000_sched_reorder2): Likewise.
15444
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 *.
15449
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.
15458
15459 * config/spu/spu.c (spu_sched_reorder): Likewise. Strengthen
15460 local "insn" from rtx to rtx_insn *.
15461
15462 * haifa-sched.c (note_list): Strengthen this variable from rtx to
15463 rtx_insn *.
15464 (scheduled_insns): Strengthen this variable from vec<rtx> to
15465 vec<rtx_insn *>.
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
15474 rtx_insn **.
15475 (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
15476 rtx_insn *.
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
15494 struct ready_list.
15495 (toggle_cancelled_flags): Strengthen local "first" from rtx * to
15496 rtx_insn **.
15497 (restore_last_backtrack_point): Likewise. Strengthen local "insn"
15498 from rtx to rtx_insn *
15499 (resolve_dependencies): Strengthen param "insn" from rtx to
15500 rtx_insn *
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
15508 rtx_insn **.
15509 (move_insn): Strengthen param "insn" and local "note" from rtx to
15510 rtx_insn *
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 *
15514 to rtx_insn **.
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
15525 struct ready_list.
15526 (generate_recovery_code): Strengthen param "insn" from rtx to
15527 rtx_insn *.
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
15535 rtx_insn *.
15536 (sched_emit_insn): Likewise for return type.
15537 (ready_remove_first_dispatch): Likewise for return type and local
15538 "insn".
15539
15540 * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
15541
15542 * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
15543 const rtx_insn *.
15544
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
15548 cast.
15549 (add_dependence_list_and_free): Strengthen param "insn" from rtx
15550 to rtx_insn *. Strengthen param "list_p" from rtx * to
15551 rtx_insn **.
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".
15570
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
15575 const rtx_insn *.
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.
15580
15581 * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
15582 "insn".
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.
15596
15597 * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
15598 const_rtx to const rtx_insn *.
15599
15600 * sel-sched-dump.h (sel_print_insn): Likewise.
15601
15602 * sel-sched-ir.c (advance_deps_context): Add a checked cast.
15603 (deps_init_id): Likewise.
15604
15605 * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
15606 (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
15607 rtx_insn **.
15608
15609 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15610
15611 * output.h (final_start_function): Strengthen param 1 from rtx to
15612 rtx_insn *.
15613
15614 * final.c (final_start_function): Likewise, renaming back from
15615 "uncast_first" to "first", and dropping the checked cast from rtx
15616 to rtx_insn *.
15617
15618 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15619
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
15623 to rtx_insn *.
15624
15625 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15626
15627 * output.h (shorten_branches): Strengthen param from rtx to
15628 rtx_insn *.
15629
15630 * final.c (shorten_branches): Likewise, renaming param back from
15631 "uncast_first" to "first", and dropping the checked cast from rtx
15632 to rtx_insn *.
15633
15634 * genattr.c (gen_attr): Likewise when writing out the prototype of
15635 shorten_branches.
15636
15637 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15638
15639 * sched-int.h (struct haifa_sched_info): Strengthen fields
15640 "prev_head" and "next_tail" from rtx to rtx_insn *.
15641
15642 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15643
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.
15655
15656 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15657
15658 * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
15659 to rtx_insn *.
15660
15661 * emit-rtl.c (unshare_all_rtl_1): Likewise.
15662 (unshare_all_rtl_again): Likewise, also for local "p".
15663
15664 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15665
15666 * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
15667 to rtx_insn *.
15668 * cfgrtl.c (delete_insn_and_edges): Likewise.
15669
15670 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15671
15672 * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
15673 from rtx to rtx_insn *.
15674
15675 * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
15676
15677 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15678
15679 * function.c (thread_prologue_and_epilogue_insns): Likewise for
15680 locals "returnjump", "epilogue_end", "insn", "next".
15681
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.
15685
15686 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15687
15688 * basic-block.h (struct edge_def). Strengthen "r" within
15689 union edge_def_insns from rtx to rtx_insn *.
15690
15691 * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
15692 from rtx to rtx_insn *. Strengthen local "insns" from rtx to
15693 rtx_insn *.
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
15697 rtx_insn *.
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 *.
15704
15705 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15706
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.
15711
15712 * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
15713 with 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.
15727
15728 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15729
15730 * except.h (struct eh_landing_pad_d): Strengthen field
15731 "landing_pad" from rtx to rtx_code_label *.
15732
15733 * except.c (sjlj_emit_dispatch_table): Likewise for param
15734 "dispatch_label"
15735 (sjlj_build_landing_pads): Likewise for local "dispatch_label".
15736
15737 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15738
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
15747 rtx_insn *.
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".
15752
15753 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15754
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
15758 "insn".
15759
15760 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15761
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.
15767
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",
15775 "insn".
15776 (emit_sp_adjust): Likewise for return type and local "insn".
15777 (tilepro_expand_epilogue): Likewise for locals "last_insn",
15778 "insn".
15779 (tilepro_adjust_insn_length): Likewise for param "insn".
15780 (next_insn_to_bundle): Likewise for return type and params
15781 "r", "end".
15782 (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
15783 (replace_pc_relative_symbol_ref): Likewise for param "insn" and
15784 local "new_insns".
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",
15790 "next_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".
15795
15796 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15797
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.
15803
15804 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
15805 or local "last".
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
15819 "end".
15820 (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
15821 "end".
15822 (replace_insns): Likewise for params "old_insn", "new_insns".
15823 (replace_mov_pcrel_step1): Likewise for param "insn" and local
15824 "new_insns".
15825 (replace_mov_pcrel_step2): Likewise.
15826 (replace_mov_pcrel_step3): Likewise.
15827 (tilegx_fixup_pcrel_references): Likewise for locals "insn",
15828 "next_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".
15833
15834 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15835
15836 * config/spu/spu.c (frame_emit_store): Strengthen return type from
15837 rtx to rtx_insn *.
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
15843 "new_insn".
15844 (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
15845 "hbr_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
15860 "dep_insn".
15861 (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
15862 (spu_sms_res_mii): Likewise.
15863
15864 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15865
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.
15875
15876 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
15877 for local "insn".
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".
15894
15895 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15896
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.
15903
15904 * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
15905 (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
15906 rtx_code_label *.
15907 (sh_emit_compare_and_set): Likewise for local "lab".
15908 (output_far_jump): Strengthen param "insn" and local "prev" from
15909 rtx to rtx_insn *.
15910 (output_branchy_insn): Likewise for param "insn" and local
15911 "next_insn".
15912 (output_ieee_ccmpeq): Likewise for param "insn".
15913 (struct label_ref_list_d): Strengthen field "label" from rtx to
15914 rtx_code_label *.
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
15930 rtx to rtx_insn *.
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".
15939
15940 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15941
15942 * config/score/score.c (score_output_mi_thunk): Strengthen local
15943 "insn" from rtx to rtx_insn *.
15944 (score_prologue): Likewise.
15945
15946 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15947
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.
15953
15954 * config/s390/s390.c (last_scheduled_insn): Likewise for this
15955 variable.
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
15960 rtx_code_label *.
15961 (struct constant_pool): Likewise for field "label". Strengthen
15962 fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
15963 rtx_insn *.
15964 (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
15965 insns.
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
15975 rtx_insn *.
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",
15980 "tbegin_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
15987 rtx_code_label *.
15988 (s390_emit_call): Strengthen return type and local "insn" from
15989 rtx to rtx_insn *.
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
15994 local "cur_insn".
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
16005 insn.
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.
16008
16009 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16010
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".
16014
16015 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16016
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
16021 local "insn".
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".
16035
16036 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16037
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".
16043
16044 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16045
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.
16053
16054 * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
16055 "insn".
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.
16061
16062 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16063
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
16067 param "insn".
16068
16069 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16070
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.
16078
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
16087 be an insn.
16088 (mips_expand_call): Strengthen return type and local "insn" from
16089 rtx to rtx_insn *.
16090 (mips_block_move_loop): Strengthen local "label" from rtx to
16091 rtx_code_label *.
16092 (mips_expand_synci_loop): Likewise for locals "label",
16093 "end_label".
16094 (mips_set_frame_expr): Strengthen local "insn" from rtx to
16095 rtx_insn *.
16096 (mips16e_collect_argument_saves): Likewise for locals "insn",
16097 "next".
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
16103 local "insn".
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
16129 rtx_insn *.
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
16135 rtx_insn *.
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
16143 last_set array.
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",
16160 "jump_sequence".
16161 (mips_output_mi_thunk): Likewise for local "insn".
16162 (mips_final_prescan_insn): Likewise for param "insn".
16163
16164 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16165
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 *.
16177
16178 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16179
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.
16190
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
16200 local "insn".
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
16217 rtx_insn *.
16218 (struct mep_doloop_end): Likewise for fields "insn" and
16219 "fallthrough".
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
16223 rtx_insn *.
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
16231 "i", "n".
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
16237 cast.
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".
16247
16248 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16249
16250 * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
16251 rtx to rtx_insn *.
16252 (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
16253 (m68k_final_prescan_insn): Likewise for first param.
16254
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".
16264
16265 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16266
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.
16277
16278 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16279
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",
16291 "last_label".
16292 (emit_all_insn_group_barriers): Likewise for locals "insn",
16293 "last".
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",
16298 "last".
16299 (emit_predicate_relation_info): Likewise for locals "head", "n",
16300 "insn", "b", "a".
16301 (ia64_reorg): Likewise for local "insn".
16302 (ia64_output_mi_thunk): Likewise.
16303 (expand_vec_perm_interleave_2): Likewise for local "seq".
16304
16305 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16306
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.
16314
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
16337 "compare_seq".
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",
16344 "start".
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.
16354
16355 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16356
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",
16361 "varargs_label".
16362 (ix86_split_idivmod): Likewise for locals "end_label" and
16363 "qimode_label".
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
16367 "top_label".
16368 (expand_movmem_epilogue): Likewise for the various locals named
16369 "label".
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
16375 rtx_code_label *.
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",
16382 "end_2_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
16387 local "label".
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.
16396
16397 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16398
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
16403 "x".
16404 (Fpa): Add a checked cast to rtx_insn *.
16405 (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
16406 rtx_insn *.
16407 (final_prescan_insn): Likewise for param "insn".
16408 (h8300_binary_length): Likewise.
16409 (h8300_insn_length_from_table): Likewise.
16410
16411 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16412
16413 * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
16414 Strengthen first param "insn" from rtx to rtx_insn *.
16415
16416 * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
16417 Likewise.
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
16425 "seq".
16426
16427 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16428
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.
16432
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
16436 rtx_insn *.
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.
16442
16443 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16444
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
16458 "t".
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".
16465
16466 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16467
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.
16503
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",
16511 "sp_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.
16566
16567 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16568
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.
16573
16574 * config/arm/arm.c (emit_set_insn): Strengthen return type from
16575 rtx to rtx_insn *.
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
16581 rtx_insn *.
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
16592 "insn".
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".
16602
16603 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16604
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.
16610
16611 * config/arc/arc.c (struct arc_ccfsm): Likewise for field
16612 "target_insn".
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
16628 rtx to rtx_insn *.
16629 (arc_get_insn_variants): Likewise for local "prev".
16630 (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
16631 "next".
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".
16638
16639 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16640
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
16648 "seq" and "insn".
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
16656 "insn".
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".
16661
16662 2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
16663
16664 * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
16665 rather than modifying the stmt.
16666
16667 2014-08-25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
16668
16669 * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
16670 cgraph_state conversion.
16671
16672 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16673
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".
16685
16686 2014-08-25 Martin Liska <mliska@suse.cz>
16687
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
16820
16821 2014-08-25 Marek Polacek <polacek@redhat.com>
16822
16823 * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
16824
16825 2014-08-25 Petr Murzin <petr.murzin@intel.com>
16826
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.
16830
16831 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
16832
16833 PR target/62111
16834 * config/sh/predicates.md (general_extend_operand): Disable
16835 TRUNCATE before reload completes.
16836
16837 2014-08-24 Gerald Pfeifer <gerald@pfeifer.com>
16838
16839 * doc/invoke.texi (Optimize Options): Fix markup in two cases.
16840
16841 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
16842
16843 PR target/61996
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.
16849
16850 2014-08-24 Kito Cheng <kito@0xlab.org>
16851
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.
16856
16857 2014-08-24 Kito Cheng <kito@0xlab.org>
16858
16859 * ira.c: Fix typo in comment.
16860
16861 2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
16862
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.
16865
16866 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
16867
16868 PR target/62038
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
16873 short branch.
16874
16875 2014-08-23 David Malcolm <dmalcolm@redhat.com>
16876
16877 * web.c (union_match_dups): Strengthen param "insn" from rtx to
16878 rtx_insn *.
16879 (pass_web::execute): Likewise for local "insn".
16880
16881 2014-08-23 David Malcolm <dmalcolm@redhat.com>
16882
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
16901 rtx_insn *.
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
16906 for param "insn".
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".
16910
16911 2014-08-23 David Malcolm <dmalcolm@redhat.com>
16912
16913 * varasm.c (mark_constants): Strengthen param "insn" from rtx to
16914 rtx_insn *.
16915 (mark_constant_pool): Likewise for local "insn".
16916
16917 2014-08-23 David Malcolm <dmalcolm@redhat.com>
16918
16919 * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
16920 rtx to rtx_insn *.
16921 (dead_debug_promote_uses): Likewise.
16922 (dead_debug_insert_temp): Likewise.
16923
16924 2014-08-23 David Malcolm <dmalcolm@redhat.com>
16925
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
16933 rtx_insn *.
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
16940 to rtx_insn *.
16941 (replace_store_insn): Likewise. For now, add a checked cast to
16942 rtx_insn * on the result of gen_move_insn.
16943
16944 2014-08-22 David Malcolm <dmalcolm@redhat.com>
16945
16946 * stmt.c (expand_case): Strengthen local "before_case" from rtx to
16947 rtx_insn *.
16948 (expand_sjlj_dispatch_table): Likewise.
16949
16950 2014-08-22 David Malcolm <dmalcolm@redhat.com>
16951
16952 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
16953 "insn" from rtx to rtx_insn *.
16954
16955 2014-08-22 David Malcolm <dmalcolm@redhat.com>
16956
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".
16960
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
16966 "insn".
16967 (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
16968 "end".
16969 (convert_to_simple_return): Likewise for local "start".
16970
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.
16974
16975 2014-08-22 David Malcolm <dmalcolm@redhat.com>
16976
16977 * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
16978 rtx_insn *.
16979 (speculate_expr): Likewise for locals "orig_insn_rtx",
16980 "spec_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.
16988
16989 2014-08-22 David Malcolm <dmalcolm@redhat.com>
16990
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
16994 "insn_rtx".
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".
17002
17003 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17004
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".
17010
17011 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17012
17013 * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
17014 from rtx to rtx_insn *.
17015
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".
17022
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
17025 schedule_ebb.
17026
17027 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17028
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".
17039
17040 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17041
17042 * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
17043 to rtx_insn *.
17044 (reg_set_between_p): Strengthen local "insn" from const_rtx to
17045 const rtx_insn *.
17046 (modified_between_p): Strengthen local "insn" from rtx to
17047 rtx_insn *.
17048 (remove_reg_equal_equiv_notes_for_regno): Likewise.
17049 (keep_with_call_p): Strengthen local "i2" from const_rtx to
17050 const rtx_insn *.
17051
17052 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17053
17054 * resource.c (next_insn_no_annul): Strengthen local "next" from
17055 rtx to rtx_insn *.
17056 (mark_referenced_resources): Likewise for local "insn".
17057
17058 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17059
17060 * reload.h (struct insn_chain): Strengthen field "insn" from rtx
17061 to rtx_insn *.
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.
17067
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".
17071
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".
17083
17084 * reload1.c (reg_reloaded_insn): Likewise for the elements of this
17085 array.
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
17091 rtx_insn *.
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
17098 "prev_insn".
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
17104 rtx_insn *.
17105 (init_eliminable_invariants): Likewise for param "first" and local
17106 "insn".
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",
17111 "last".
17112 (reload_inheritance_insn): Strengthen elements of this array from
17113 rtx to rtx_insn *.
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
17118 to rtx_insn *.
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
17122 array.
17123 (inpaddr_address_reload_insns): Likwise for the elements of this
17124 array.
17125 (output_reload_insns): Likewise for the elements of this array.
17126 (output_address_reload_insns): Likewise for the elements of this
17127 array.
17128 (outaddr_address_reload_insns): Likewise for the elements of this
17129 array.
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
17133 array.
17134 (new_spill_reg_store): Likewise for the elements of this
17135 array.
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
17158 rtx_insn *.
17159
17160 * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
17161 param of this duplicate of the prototype from reload.h
17162
17163 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17164
17165 * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
17166 rtx to rtx_insn *.
17167 (regstat_bb_compute_calls_crossed): Likewise.
17168
17169 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17170
17171 * regrename.c (create_new_chain): Strengthen param "insn" from rtx
17172 to rtx_insn *.
17173 (init_rename_info): Replace use of NULL_RTX with NULL when dealing
17174 with an insn.
17175 (regrename_analyze): Strengthen local "insn" from rtx to
17176 rtx_insn *.
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.
17184
17185 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17186
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".
17191
17192 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17193
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".
17201
17202 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17203
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
17210 "pop_insn".
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
17221 rtx_insn *.
17222 (subst_stack_regs): Likewise.
17223 (change_stack): Likewise.
17224 (convert_regs_1): Likewise for locals "insn", "next".
17225
17226 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17227
17228 * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
17229 rtx_insn *.
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 *>.
17247
17248 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17249
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.
17254
17255 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17256
17257 * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
17258 const rtx_insn *.
17259 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
17260 (debug_rtx_find): Likewise for param 1 "x".
17261
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.
17269
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.
17273
17274 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17275
17276 * predict.h (predict_insn_def): Strengthen param "insn" from rtx
17277 to rtx_insn *.
17278
17279 * function.c (stack_protect_epilogue): Add checked cast to
17280 rtx_insn for now when invoking predict_insn_def.
17281
17282 * predict.c (predict_insn): Strengthen param "insn" from rtx to
17283 rtx_insn *.
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
17287 const rtx_insn *.
17288 (combine_predictions_for_insn): Strengthen param "insn" from rtx
17289 to rtx_insn *.
17290 (bb_estimate_probability_locally): Likewise for local "last_insn".
17291 (expensive_function_p): Likewise for local "insn".
17292
17293 * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
17294 local "jmp", since this is used when invoking predict_insn_def.
17295
17296 2014-08-22 Marek Polacek <polacek@redhat.com>
17297
17298 PR c++/62199
17299 * doc/invoke.texi: Update -Wlogical-not-parentheses description.
17300
17301 2014-08-22 Marek Polacek <polacek@redhat.com>
17302
17303 PR c/61271
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
17307 in parens.
17308
17309 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17310
17311 * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
17312 rtx_insn *.
17313
17314 * cprop.c (fis_get_condition): Likewise.
17315
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
17324 "insn".
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
17329 local "prev".
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".
17336
17337 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17338
17339 * postreload-gcse.c (struct occr): Strengthen field "insn" from
17340 rtx to rtx_insn *.
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
17358 RTX for insns.
17359 (eliminate_partially_redundant_loads): Likewise for local "insn".
17360
17361 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17362
17363 * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
17364 rtx to rtx_insn *.
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
17377 rtx_insn *.
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
17383 rtx_insn *.
17384 (expand_copysign_absneg): Strengthen local "label" from rtx to
17385 rtx_code_label *.
17386 (expand_copysign_bit): Strengthen local "insns" from rtx to
17387 rtx_insn *.
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
17395 rtx_insn *.
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
17406 rtx_insn *).
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.
17415
17416 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17417
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
17427 rtx_insn *.
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.
17435
17436 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17437
17438 * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
17439 "tailp" from rtx * to rtx_insn **.
17440
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
17446 rtx to rtx_insn *.
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
17451 to rtx_insn *.
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.
17462
17463 * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
17464 "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
17465
17466 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17467
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",
17474 "mode_set".
17475
17476 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17477
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.
17495
17496 * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
17497 rtx to rtx_insn *.
17498
17499 * lra-coalesce.c (move_freq_compare_func): Likewise for locals
17500 "mv1" and "mv2".
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.
17505
17506 * lra-constraints.c (curr_insn): Strengthen from rtx to
17507 rtx_insn *.
17508 (get_equiv_with_elimination): Likewise for param "insn".
17509 (match_reload): Strengthen params "before" and "after" from rtx *
17510 to rtx_insn **.
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
17522 rtx to rtx_insn *.
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
17528 to insns.
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
17542 rtx_insn *.
17543 (update_ebb_live_info): Likewise for params "head", "tail" and local
17544 "prev_insn".
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".
17551
17552 * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
17553 "insn".
17554 (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
17555 insns.
17556 (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
17557 rtx_insn *.
17558 (spill_pseudos): Likewise for local "insn".
17559 (init_elimination): Likewise.
17560 (process_insn_for_elimination): Likewise for param "insn".
17561
17562 * lra-lives.c (curr_insn): Likewise.;
17563
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".
17568
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
17581 vec<rtx_insn *>.
17582 (lra_push_insn_1): Strengthen param "insn" from rtx to
17583 rtx_insn *.
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
17589 "before", "insn".
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.
17599
17600 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17601
17602 * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
17603 to rtx_insn *.
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".
17615
17616 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17617
17618 * basic-block.h (basic_block split_edge_and_insert): Strengthen
17619 param "insns" from rtx to rtx_insn *.
17620
17621 * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
17622 rtx to rtx_insn *.
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
17632 rtx to rtx_insn *.
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
17644 "insn".
17645 (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
17646 (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
17647 "next".
17648
17649 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17650
17651 * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
17652 rtx_insn *.
17653 (iv_analyze_result): Likewise.
17654 (iv_analyze_expr): Likewise.
17655 (biv_p): Likewise.
17656
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.
17665 (biv_p): 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
17671 strengthened).
17672
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".
17676
17677 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17678
17679 * loop-invariant.c (struct use): Strengthen field "insn" from rtx
17680 to rtx_insn *.
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".
17693
17694 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17695
17696 * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
17697 to rtx_insn *.
17698 (add_test): Likewise for locals "seq", "jump".
17699 (doloop_modify): Likewise for locals "sequence", "jump_insn".
17700
17701 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17702
17703 * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
17704 rtx_insn *.
17705 (rebuild_jump_labels_chain): Likewise for param "chain".
17706
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.
17710
17711 * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
17712 rtx_insn *.
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".
17721
17722 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17723
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
17729 rtx to rtx_insn *.
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
17747 rtx_insn *.
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
17753 "insn".
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
17765 to rtx_insn *.
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".
17770
17771 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17772
17773 * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
17774 Strengthen locals "done_label", "do_error" from rtx to
17775 rtx_code_label *.
17776 (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
17777 from rtx to rtx_insn *. Strengthen local "sub_check from rtx to
17778 rtx_code_label *.
17779 (ubsan_expand_si_overflow_neg_check): Likewise for locals
17780 "done_label", "do_error" to rtx_code_label * and local "last" to
17781 rtx_insn *.
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 *.
17787
17788 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17789
17790 * init-regs.c (initialize_uninitialized_regs): Strengthen locals
17791 "insn" and "move_insn" from rtx to rtx_insn *.
17792
17793 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17794
17795 * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
17796 rtx_insn *.
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",
17800 "head".
17801 (struct noce_if_info): Likewise for fields "jump", "insn_a",
17802 "insn_b".
17803 (end_ifcvt_sequence): Likewise for return type and locals "insn",
17804 "seq".
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",
17817 seq".
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",
17821 "loc_insn".
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",
17829 "insn".
17830
17831 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17832
17833 * hw-doloop.h (struct hwloop_info_d): Strengthen fields
17834 "last_insn", "loop_end" from rtx to rtx_insn *.
17835
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".
17839
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.
17843
17844 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17845
17846 * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
17847 (add_delay_dependencies): Strengthen local "pro" from rtx to
17848 rtx_insn *.
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",
17860 "pro".
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",
17866 "consumer".
17867 (unlink_bb_notes): Update for change to type of bb_header.
17868 Strengthen locals "prev", "label", "note", "next" from rtx to
17869 rtx_insn *.
17870 (clear_priorities): Likewise for local "pro".
17871
17872 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17873
17874 * gcse.c (struct occr): Strengthen field "insn" from rtx to
17875 rtx_insn *.
17876 (test_insn): Likewise for this global.
17877 (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
17878 const rtx_insn *.
17879 (oprs_anticipatable_p): Likewise.
17880 (oprs_available_p): Likewise.
17881 (insert_expr_in_table): Strengthen param "insn" from rtx to
17882 rtx_insn *.
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
17899 "insn".
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.
17905
17906 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17907
17908 * genpeep.c (main): Rename param back from "uncast_ins1" to
17909 "ins1", strengthening from rtx to rtx_insn *. Drop now-redundant
17910 checked cast.
17911
17912 * output.h (peephole): Strengthen param from rtx to rtx_insn *.
17913
17914 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
17915
17916 PR target/62195
17917 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
17918 documentation to state it is only for VSX operations.
17919
17920 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
17921 constraint only active if VSX.
17922
17923 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
17924 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
17925 (lfiwzx): Likewise.
17926
17927 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17928
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
17933 local "next".
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
17937 "insn".
17938 (free_load_extend): Likewise for param "insn".
17939 (forward_propagate_subreg): Likewise for param "def_insn" and
17940 local "use_insn".
17941 (forward_propagate_asm): Likewise for param "def_insn" and local
17942 "use_insn".
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
17946 "use_insn".
17947
17948 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17949
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
17953 local "seq".
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",
17960 "last", "trial".
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".
17965
17966 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17967
17968 * output.h (final_scan_insn): Strengthen return type from rtx to
17969 rtx_insn *.
17970 (final_forward_branch_p): Likewise for param.
17971 (current_output_insn): Likewise for this global.
17972
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
17978 first param.
17979 (compute_alignments): Strengthen local "label" from rtx to
17980 rtx_insn *.
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
17987 rtx to rtx_insn *.
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
17992 rtx_insn *.
17993 (dump_basic_block_info): Strengthen param "insn" from rtx to
17994 rtx_insn *.
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
18001 rtx_insn *.
18002 (call_from_call_insn): Strengthen param "insn" from rtx to
18003 rtx_call_insn *.
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
18014 rtx_insn *.
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.
18027
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.
18032
18033 2014-08-20 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
18034
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.
18041
18042 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18043
18044 * expr.c (convert_move): Strengthen local "insns" from rtx to
18045 rtx_insn *.
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
18049 rtx_insn *.
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
18055 rtx_insn *.
18056 (expand_expr_real_2): Likewise.
18057 (expand_expr_real_1): Strengthen local "label" from rtx to
18058 rtx_code_label *.
18059
18060 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18061
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
18068 rtx_code_label *.
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
18077 rtx_code_label *.
18078 (do_cmp_and_jump): Likewise for param "label".
18079
18080 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18081
18082 * explow.c (force_reg): Strengthen local "insn" from rtx to
18083 rtx_insn *.
18084 (adjust_stack_1): Likewise.
18085 (allocate_dynamic_stack_space): Likewise. Strengthen locals
18086 "final_label", "available_label", "space_available" from rtx to
18087 rtx_code_label *.
18088 (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
18089 (anti_adjust_stack_and_probe): Likewise.
18090
18091 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18092
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
18096 self-contained.
18097
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.
18102
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
18109 rtx to rtx_insn *.
18110 (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
18111 to rtx_insn *.
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
18118 rtx_insn *.
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 *.
18125
18126 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18127
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
18135 rtx to rtx_insn *.
18136
18137 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18138
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".
18142
18143 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18144
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.
18148
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.
18159
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.
18171
18172 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18173
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".
18178
18179 * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
18180 rtx_insn *.
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
18190 to rtx_insn *.
18191 (get_node_of_insn): Likewise for param "insn".
18192
18193 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18194
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
18200 rtx_insn *.
18201 (mark_insn): Likewise. Add checked cast to rtx_call_insn when
18202 invoking find_call_stack_args, since this is guarded by
18203 CALL_P (insn).
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
18209 rtx_insn *.
18210 (find_call_stack_args): Strengthen param "call_insn" from rtx to
18211 rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
18212 to rtx_insn *.
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.
18223
18224 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18225
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
18231 with insn.
18232 (validate_canon_reg): Strengthen param "insn" from rtx to
18233 rtx_insn *.
18234 (canon_reg): Likewise.
18235 (fold_rtx): Likewise. Replace use of NULL_RTX with NULL when
18236 dealing with insn.
18237 (record_jump_equiv): Strengthen param "insn" from rtx to
18238 rtx_insn *.
18239 (try_back_substitute_reg): Likewise, also for locals "prev",
18240 "bb_head".
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
18247 dealing with insn.
18248 (cse_prescan_path): Strengthen local "insn" from rtx to
18249 rtx_insn *.
18250 (cse_extended_basic_block): Likewise for locals "insn" and
18251 "prev_insn".
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
18256 "next".
18257 (cse_change_cc_mode_insn): Likewise for first param "insn".
18258 (cse_change_cc_mode_insns): Likewise for first and second params
18259 "start" and "end".
18260 (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
18261 and "end".
18262 (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
18263 "cc_src_insn".
18264
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>
18273
18274 * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
18275 New.
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
18284 VI48_AVX2): Ditto.
18285
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>
18294
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.
18307
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>
18316
18317 * config/i386/sse.md
18318 (define_mode_iterator VI8_AVX512VL): New.
18319 (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
18320
18321 2014-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
18322
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.
18330
18331 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18332
18333 * cprop.c (struct occr): Strengthen field "insn" from rtx to
18334 rtx_insn *.
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
18342 const rtx_insn *.
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
18353 "insn".
18354 (one_cprop_pass): Likewise for local "insn".
18355
18356 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18357
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".
18367
18368 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18369
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
18383 rtx_insn *.
18384
18385 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18386
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
18403 insns.
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
18420 insns.
18421 (find_split_point): Strengthen param "insn" from rtx to
18422 rtx_insn *.
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
18437 an rtx_insn *.
18438 (distribute_links): Strengthen locals "place", "insn" from rtx to
18439 rtx_insn *.
18440
18441 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18442
18443 * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
18444 than a const_rtx.
18445 (can_delete_label_p): Require a const rtx_code_label * rather than
18446 a const_rtx.
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
18449 rtx to rtx_insn *.
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
18454 NOTE_P (current).
18455 (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
18456 rtx_insn *.
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
18463 const_rtx.
18464 (contains_no_active_insn_p): Strengthen local "insn" from rtx to
18465 rtx_insn *.
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
18469 for return type.
18470 (rtl_split_block): Likewise for locals "insn" and "next".
18471 (unique_locus_on_edge_between_p): Likewise for locals "insn" and
18472 "end".
18473 (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
18474 "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
18475 "prev", "tmp".
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",
18493 "head", "end".
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",
18501 "insn", "end".
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
18516 const rtx_insn *.
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.
18523
18524 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18525
18526 * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
18527 rtx to rtx_insn *.
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
18531 rtx_insn *.
18532
18533 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18534
18535 * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
18536 rtx to rtx_insn *.
18537
18538 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18539
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.
18543
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",
18550 "real_b_end".
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
18561 rtx_insn *.
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.
18565
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
18571 rtx_insn *.
18572 (delete_dead_jumptables): Likewise for locals "insn", "next",
18573 "label".
18574
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.
18578
18579 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18580
18581 * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
18582 rtx_insn *.
18583 (purge_dead_tablejump_edges): Likewise.
18584 (find_bb_boundaries): Likewise for locals "insn", "end",
18585 "flow_transfer_insn".
18586
18587 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18588
18589 * caller-save.c (save_call_clobbered_regs): Strengthen locals
18590 "ins" and "prev" from rtx to rtx_insn *.
18591
18592 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18593
18594 * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
18595 rtx_insn *.
18596 (internal_arg_pointer_exp_state): Likewise for field "scan_start".
18597 (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
18598 "scan_start".
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
18606 rtx_insn *.
18607 (emit_library_call_value_1): Likewise for locals "before_call" and
18608 "last".
18609
18610 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18611
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
18616 rtx_call_insn *.
18617 (expand_errno_check): Strengthen local "lab" from rtx to
18618 rtx_code_label *.
18619 (expand_builtin_mathfn): Strengthen local "insns" from rtx to
18620 rtx_insn *.
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
18633 rtx_insn *.
18634
18635 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18636
18637 * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
18638 to rtx_insn *.
18639 (struct btr_def_s): Likewise.
18640 (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
18641 const rtx_insn *.
18642 (add_btr_def): Likewise.
18643 (new_btr_user): Likewise.
18644 (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
18645 rtx to rtx_insn *.
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
18649 gen_move_insn.
18650 (can_move_up): Strengthen param "insn" from const_rtx to
18651 const rtx_insn *.
18652
18653 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18654
18655 * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
18656 rtx_insn *.
18657 (get_uncond_jump_length): Likewise for locals "label", "jump".
18658 (fix_up_crossing_landing_pad): Likewise for locals "new_label",
18659 "jump", "insn".
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".
18668
18669 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18670
18671 * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
18672 rtx to rtx_insn *.
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
18685 rtx_insn *.
18686 (find_inc): Likewise for locals "insn" and "other_insn" (three of
18687 the latter).
18688 (merge_in_block): Likewise for locals "insn", "curr",
18689 "other_insn".
18690 (pass_inc_dec::execute): Update allocations of the arrays to
18691 reflect the stronger types.
18692
18693 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18694
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 *.
18698
18699 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18700
18701 * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
18702 to rtx_insn *.
18703
18704 2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18705
18706 * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
18707 generated a warning and prevented bootstrapping the compiler.
18708
18709 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18710
18711 * rtl.h (delete_related_insns): Strengthen return type from rtx to
18712 rtx_insn *.
18713
18714 * jump.c (delete_related_insns): Likewise, also for locals "next"
18715 and "prev".
18716
18717 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18718
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.
18729
18730 2014-08-21 Jan Hubicka <hubicka@ucw.cz>
18731
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.
18740
18741 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18742
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
18747
18748 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18749
18750 * output.h (peephole): Strengthen return type from rtx to
18751 rtx_insn *.
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 *.
18759
18760 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
18761
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):
18768 New overloads.
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.
18777
18778 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18779
18780 * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
18781
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.
18785
18786 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18787
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.
18795
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).
18801
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
18814 to rtx_insn *.
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
18818 rtx_code_label *.
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.
18823
18824 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18825
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 *.
18829
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.
18833
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.
18837
18838 * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
18839 the generated "gen_" functions from rtx to rtx_insn * within their
18840 implementations.
18841
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
18853 prototypes.
18854
18855 * genoutput.c (process_template): Strengthen the 2nd param within
18856 the generated "output_" functions "insn" from rtx to rtx_insn *.
18857
18858 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
18859
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.
18863
18864 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18865
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.
18880
18881 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18882
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.
18911
18912 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18913
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".
18919
18920 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18921
18922 * rtl.h (find_first_parameter_load): Strengthen return type from
18923 rtx to rtx_insn *.
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.
18927
18928 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
18929
18930 PR fortran/44054
18931 * diagnostic.c: Set default caret.
18932 (diagnostic_show_locus): Use it. Tell pretty-printer that a new
18933 line is needed.
18934 * diagnostic.h (struct diagnostic_context):
18935
18936 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18937
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.
18942
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
18948 working with insn.
18949
18950 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18951
18952 * basic-block.h (get_last_bb_insn): Strengthen return type from
18953 rtx to rtx_insn *.
18954 * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
18955 end".
18956
18957 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
18958
18959 PR fortran/44054
18960 * diagnostic.c (default_diagnostic_finalizer): Move caret printing
18961 to here ...
18962 (diagnostic_report_diagnostic): ... from here.
18963 * toplev.c (general_init): Move code to c-family.
18964
18965 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18966
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
18971 function.
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
18976 accessors.
18977 (web_entry): New subclass of web_entry_base containing the reg
18978 member.
18979 (union_match_dups): Modify for struct -> class changes.
18980 (union_defs): Likewise.
18981 (entry_register): Likewise.
18982 (pass_web::execute): Likewise.
18983
18984 2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
18985
18986 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
18987 builtin define __VEC_ELEMENT_REG_ORDER__.
18988
18989 2014-08-20 Martin Jambor <mjambor@suse.cz>
18990 Wei Mi <wmi@google.com>
18991
18992 PR ipa/60449
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.
19009
19010 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
19011
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.
19015
19016 2014-08-20 Steve Ellcey <sellcey@mips.com>
19017
19018 PR middle-end/49191
19019 * doc/sourcebuild.texi (non_strict_align): New.
19020
19021 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
19022
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
19027 already removed.
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
19031 removal.
19032 (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
19033
19034 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
19035
19036 PR c/59304
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.
19041
19042 2014-08-20 Richard Biener <rguenther@suse.de>
19043
19044 PR lto/62190
19045 * tree.c (build_common_tree_nodes): Use make_or_reuse_type
19046 to build uint{16,32,64}_type_node.
19047
19048 2014-08-20 Terry Guo <terry.guo@arm.com>
19049
19050 * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
19051 with immediate_operand.
19052
19053 2014-08-20 David Malcolm <dmalcolm@redhat.com>
19054
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
19057 NULL.
19058
19059 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
19060
19061 PR preprocessor/51303
19062 * incpath.c (remove_duplicates): Use cpp_warning.
19063
19064 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
19065
19066 PR c/60975
19067 PR c/53063
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.
19072
19073 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19074
19075 * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
19076 rtx_insn *.
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
19081 same way).
19082 (duplicate_insn_chain): Likewise.
19083
19084 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19085
19086 * rtl.h (next_cc0_user): Strengthen return type from rtx to
19087 rtx_insn *.
19088 (prev_cc0_setter): Likewise.
19089
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.
19093
19094 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19095
19096 * expr.h (emit_move_insn): Strengthen return type from rtx to
19097 rtx_insn *.
19098 (emit_move_insn_1): Likewise.
19099 (emit_move_complex_push): Likewise.
19100 (emit_move_complex_parts): Likewise.
19101
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
19104 with insns.
19105 (emit_move_complex_push): Strengthen return type from rtx to
19106 rtx_insn *.
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",
19112 "ret".
19113 (emit_move_insn): Likewise for return type and local "last_insn".
19114 (compress_float_constant): Likewise.
19115
19116 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19117
19118 * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
19119 from rtx to rtx_insn *.
19120
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.
19156 (emit): Likewise.
19157
19158 (emit_barrier_before): Strengthen return type from rtx to
19159 rtx_barrier *.
19160 (emit_barrier_after): Likewise.
19161 (emit_barrier): Likewise.
19162
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
19176 rtx to rtx_insn *.
19177 (emit_insn_after_noloc): Strengthen return type from rtx to
19178 rtx_insn *.
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
19183 rtx_barrier *.
19184 (emit_label_after): Strengthen return type from rtx to rtx_insn *.
19185 Add checked cast for now when converting "label" from rtx to
19186 rtx_insn *.
19187 (emit_pattern_after_setloc): Strengthen return type from rtx to
19188 rtx_insn *. Add checked casts for now when converting "last" from
19189 rtx to rtx_insn *.
19190 (emit_pattern_after): Strengthen return type from rtx to
19191 rtx_insn *.
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
19203 rtx_insn *.
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
19218 to rtx_insn *.
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".
19227
19228 * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
19229 from rtx to rtx_barrier *.
19230
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.
19236
19237 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19238
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.
19242
19243 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19244
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
19248 rtx_note *.
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 *.
19254
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
19262 rtx_note *.
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
19275 rtx to rtx_note *.
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
19279 to rtx_note *.
19280 * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
19281 vec<rtx_note *>.
19282 (get_bb_note_from_pool): Strengthen return type from rtx to
19283 rtx_note *.
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.
19289
19290 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19291
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
19296 rtx_insn *.
19297
19298 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19299
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
19304 "insn".
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"
19308 and "insn".
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",
19315 "orig_end".
19316 (pass_expand::execute): Likewise for locals "var_seq",
19317 "var_ret_seq", "next".
19318
19319 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19320
19321 * asan.h (asan_emit_stack_protection): Strengthen return type from
19322 rtx to rtx_insn *.
19323 * asan.c (asan_emit_stack_protection): Likewise. Add local
19324 "insns" to hold the return value.
19325
19326 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19327
19328 * basic-block.h (bb_note): Strengthen return type from rtx to
19329 rtx_note *.
19330 * sched-int.h (bb_note): Likewise.
19331 * cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
19332
19333 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19334
19335 * rtl.h (make_insn_raw): Strengthen return type from rtx to
19336 rtx_insn *.
19337
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.
19356
19357 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19358
19359 * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
19360 rtx_call_insn *.
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
19364 rtx_call_insn *.
19365
19366 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19367
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".
19372
19373 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19374
19375 * rtl.h (tablejump_p): Strengthen third param from rtx * to
19376 rtx_jump_table_data **.
19377
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
19386 "table".
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.
19396
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".
19402
19403 * config/s390/s390.c (s390_chunkify_start): Likewise.
19404
19405 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
19406
19407 * jump.c (delete_related_insns): Strengthen local "lab_next" from
19408 rtx to rtx_jump_table_data *.
19409
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.
19416
19417 2014-08-19 Marek Polacek <polacek@redhat.com>
19418
19419 PR c++/62153
19420 * doc/invoke.texi: Document -Wbool-compare.
19421
19422 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19423
19424 * rtl.h (entry_of_function): Strengthen return type from rtx to
19425 rtx_insn *.
19426 * cfgrtl.c (entry_of_function): Likewise.
19427
19428 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19429
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.
19433
19434 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19435
19436 * rtl.h (gen_label_rtx): Strengthen return type from rtx to
19437 rtx_code_label *.
19438
19439 * emit-rtl.c (gen_label_rtx): Likewise.
19440
19441 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19442
19443 * rtl.h (previous_insn): Strengthen return type from rtx to
19444 rtx_insn *.
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.
19458
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.
19474
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.
19480
19481 2014-08-19 Jan Hubicka <hubicka@ucw.cz>
19482
19483 * ipa-visibility.c (update_visibility_by_resolution_info): Fix
19484 assert.
19485
19486 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19487
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.
19496
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.
19523
19524 2014-08-19 Marek Polacek <polacek@redhat.com>
19525
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.
19530
19531 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19532
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
19536 rtx_insn *, and...
19537 (SET_BND_TO): New function, for use where BND_TO is used as an
19538 lvalue.
19539
19540 * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
19541 SET_BND_TO.
19542 (BND_TO): New function, adding a checked cast.
19543 (SET_BND_TO): New function.
19544
19545 * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
19546 SET_BND_TO.
19547 (compute_av_set_on_boundaries): Likewise.
19548
19549 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
19550
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.
19555
19556 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
19557
19558 PR other/62168
19559 * configure.ac: Set install_gold_as_default to no first.
19560 * configure: Regenerated.
19561
19562 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19563
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
19569 used as an lvalue.
19570
19571 * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
19572 of BB_NOTE_LIST to SET_BB_NOTE_LIST.
19573
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.
19579
19580 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19581
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.
19588
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.
19593
19594 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19595
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.
19604
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.
19613
19614 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
19615
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.
19623
19624 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19625
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 *.
19629
19630 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
19631
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.
19638
19639 * config/i386/cygwin-stdint.h: Throughout, make type
19640 definitions dependent on target architecture, not host.
19641
19642 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19643
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
19647 checked cast.
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
19651 modification.
19652 (SET_NEXT_INSN): Likewise.
19653
19654 2014-07-08 Mark Wielaard <mjw@redhat.com>
19655
19656 PR debug/59051
19657 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
19658
19659 2014-08-19 Marek Polacek <polacek@redhat.com>
19660
19661 PR c/61271
19662 * cgraphunit.c (handle_alias_pairs): Fix condition.
19663
19664 2014-08-19 Richard Biener <rguenther@suse.de>
19665
19666 * gimple-fold.c (fold_gimple_assign): Properly build a
19667 null-pointer constant when devirtualizing addresses.
19668
19669 2014-07-07 Mark Wielaard <mjw@redhat.com>
19670
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
19676 argument.
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.
19696
19697 2014-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19698
19699 * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
19700 if unset.
19701 * configure: Regenerate.
19702
19703 2014-08-19 Richard Biener <rguenther@suse.de>
19704
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.
19708
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>
19717
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>"):
19723 Delete.
19724 (define_insn
19725 ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
19726 New.
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.
19733
19734 2014-08-19 Marek Polacek <polacek@redhat.com>
19735
19736 * doc/invoke.texi: Document -Wc99-c11-compat.
19737
19738 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19739
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.
19744
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.
19776
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.
19791
19792 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19793
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.
19803
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.
19817
19818 2014-08-18 David Malcolm <dmalcolm@redhat.com>
19819
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.
19826
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.
19874
19875 * config/c6x/c6x.c (hwloop_optimize): Likewise.
19876 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
19877
19878 2014-08-18 David Malcolm <dmalcolm@redhat.com>
19879
19880 * rtl.h (for_each_rtx_in_insn): New function.
19881 * rtlanal.c (for_each_rtx_in_insn): Likewise.
19882
19883 2014-08-18 David Malcolm <dmalcolm@redhat.com>
19884
19885 * coretypes.h (class rtx_insn): Add forward declaration.
19886
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
19891 rtx_def.
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.
19897
19898 2014-08-18 David Malcolm <dmalcolm@redhat.com>
19899
19900 * is-a.h (template<T, U> safe_as_a <U *p>) New function.
19901
19902 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
19903
19904 * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
19905 comdats as extern.
19906
19907 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
19908
19909 * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
19910 to BUILT_IN_UNREACHABLE.
19911
19912 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
19913
19914 PR target/62011
19915 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
19916 New tune flag.
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.
19937
19938 2014-08-18 Ajit Agarwal <ajitkum@xilinx.com>
19939
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.
19944
19945 2014-08-18 H.J. Lu <hongjiu.lu@intel.com>
19946
19947 PR other/62168
19948 * configure.ac: Set install_gold_as_default to no for
19949 --enable-gold=no.
19950 * configure: Regenerated.
19951
19952 2014-08-18 Roman Gareev <gareevroman@gmail.com>
19953
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
19968 of HAVE_isl.
19969
19970 2014-08-18 Richard Biener <rguenther@suse.de>
19971
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.
19980
19981 2014-08-18 Richard Biener <rguenther@suse.de>
19982
19983 * gimple-fold.c (maybe_fold_reference): Move re-gimplification
19984 code to ...
19985 (maybe_canonicalize_mem_ref_addr): ... this function.
19986 (fold_stmt_1): Apply it here before all simplification.
19987
19988 2014-08-18 Ilya Enkovich <ilya.enkovich@intel.com>
19989
19990 PR ipa/61800
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.
19997
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>
20006
20007 * config/i386/sse.md
20008 (define_mode_iterator VI8_AVX2_AVX512BW): New.
20009 (define_insn "<sse2_avx2>_psadbw"): Add evex version.
20010
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>
20019
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>"):
20024 New.
20025
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>
20034
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
20043 TARGET check.
20044 (define_insn "ufloatv8siv8df<mask_name>"): Delete.
20045 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
20046 New.
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>"):
20052 New.
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.
20057
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>
20066
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.
20073 (define_insn
20074 "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
20075 Ditto.
20076 (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
20077 Ditto.
20078 (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
20079 Ditto.
20080
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>
20089
20090 * config/i386/i386.md
20091 (define_insn "*movoi_internal_avx"): Add evex version.
20092 (define_insn "*movti_internal"): Ditto.
20093
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>
20102
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.
20108
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>
20117
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.
20136
20137
20138 2014-08-18 Yury Gribov <y.gribov@samsung.com>
20139
20140 PR sanitizer/62089
20141 * asan.c (instrument_derefs): Fix bitfield check.
20142
20143 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
20144
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
20151 parameter.
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
20156 comment.
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
20185 clobber.
20186 (*vec_reload_and_reg_<mptrsize>): Delete.
20187
20188 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
20189
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.
20196
20197 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
20198
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.
20204
20205 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
20206
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.
20216
20217 2014-08-17 Marek Polacek <polacek@redhat.com>
20218 Manuel López-Ibáñez <manu@gcc.gnu.org>
20219
20220 PR c/62059
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.
20224
20225 2014-08-17 Roman Gareev <gareevroman@gmail.com>
20226
20227 * common.opt: Make the ISL AST generator to be the main code generator
20228 of Graphite.
20229
20230 2014-08-16 Gerald Pfeifer <gerald@pfeifer.com>
20231
20232 * wide-int.h (generic_wide_int): Declare as class instead of struct.
20233
20234 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
20235
20236 PR target/61641
20237 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
20238 Declare.
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):
20242 Define.
20243 * config/pa/pa.md (begin_brtab): Delete insn.
20244 (end_brtab): Likewise.
20245
20246 2014-08-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
20247
20248 * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
20249
20250 2014-08-15 Jan Hubicka <hubicka@ucw.cz>
20251
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.
20266
20267 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
20268
20269 * doc/invoke.texi (SH options): Document missing processor variant
20270 options. Remove references to Hitachi. Undocument deprecated mspace
20271 option.
20272
20273 2014-08-15 Jason Merrill <jason@redhat.com>
20274
20275 * tree.c (type_hash_canon): Uncomment assert.
20276
20277 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
20278
20279 * input.h (in_system_header_at): Add comment.
20280
20281 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
20282
20283 PR fortran/44054
20284 * diagnostic.c (build_message_string): Make it extern.
20285 * diagnostic.h (build_message_string): Make it extern.
20286
20287 2014-08-15 Vladimir Makarov <vmakarov@redhat.com>
20288
20289 * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
20290 load/store from/to non-floating class pseudo.
20291
20292 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
20293
20294 * input.c (diagnostic_file_cache_fini): Fix typo in comment.
20295
20296 2014-08-15 Richard Biener <rguenther@suse.de>
20297
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.
20303
20304 2014-08-15 Ilya Tocar <tocarip@gmail.com>
20305
20306 PR target/61878
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.
20378
20379 2014-08-15 Richard Biener <rguenther@suse.de>
20380
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.
20384
20385 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20386
20387 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
20388 one_match > zero_match case to just before simple_sequence.
20389
20390 2014-08-15 Richard Biener <rguenther@suse.de>
20391
20392 * data-streamer.h (streamer_string_index, string_for_index):
20393 Remove.
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.
20398
20399 2014-08-15 Richard Biener <rguenther@suse.de>
20400
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.
20409
20410 2014-08-15 Jakub Jelinek <jakub@redhat.com>
20411
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.
20416
20417 2014-08-15 Bin Cheng <bin.cheng@arm.com>
20418
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.
20427
20428 2014-08-14 DJ Delorie <dj@redhat.com>
20429
20430 * config/rl78/rl78-real.md (addqi3_real): Allow adding global
20431 variables to the accumulator.
20432
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.
20437
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.
20443
20444 * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
20445
20446 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
20447
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.
20453
20454 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
20455
20456 * ipa-utils.h (compare_virtual_tables): Declare.
20457 * ipa-devirt.c (odr_subtypes_equivalent_p): New function
20458
20459 2014-08-14 Marek Polacek <polacek@redhat.com>
20460
20461 DR 458
20462 * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
20463 (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
20464
20465 2014-08-14 Tom de Vries <tom@codesourcery.com>
20466
20467 * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
20468
20469 2014-08-14 Tom de Vries <tom@codesourcery.com>
20470
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.
20476
20477 2014-08-14 Roman Gareev <gareevroman@gmail.com>
20478
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
20483
20484 2014-08-14 Richard Biener <rguenther@suse.de>
20485
20486 * BASE-VER: Change to 5.0.0
20487
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>
20496
20497 * config/i386/sse.md (define_mode_attr avx512): New.
20498 (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
20499 V4DI modes.
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>
20518 mode attribute.
20519 (define_mode_attr blendbits): Move before its immediate use.
20520
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>
20529
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,
20545 V16SImode.
20546 (define_subst_attr "round_modev8sf_condition"): New.
20547 (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
20548 <MODE>mode.
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.
20557
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>
20566
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.
20582
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>
20591
20592 * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
20593 V32HImode.
20594
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>
20603
20604 * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
20605 registers.
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.
20618
20619 2014-08-14 Richard Biener <rguenther@suse.de>
20620
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.
20626
20627 2014-08-14 Richard Biener <rguenther@suse.de>
20628
20629 * tree.c (type_hash_lookup, type_hash_add): Merge into ...
20630 (type_hash_canon): ... this and avoid 2nd lookup for the add.
20631
20632 2014-08-14 Richard Biener <rguenther@suse.de>
20633
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.
20641
20642 2014-08-14 Richard Biener <rguenther@suse.de>
20643
20644 PR rtl-optimization/62079
20645 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
20646 run cleanup_cfg.
20647
20648 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
20649
20650 * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
20651 current_function_decl.
20652
20653 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
20654
20655 * cgraph.c (cgraph_node::function_symbol): Fix wrong
20656 cgraph_function_node to cgraph_node::function_symbol
20657 refactoring.
20658
20659 2014-08-14 Zhenqiang Chen <zhenqiang.chen@arm.com>
20660
20661 * config/arm/arm.c (arm_option_override): Set max_insns_skipped
20662 to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
20663
20664 2014-08-13 Chen Gang gang.chen.5i5j@gmail.com
20665
20666 * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
20667 warning.
20668
20669 2014-08-13 Roman Gareev <gareevroman@gmail.com>
20670
20671 * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
20672 generator.
20673
20674 2014-08-12 Jakub Jelinek <jakub@redhat.com>
20675
20676 PR target/62025
20677 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
20678 any registers that are used in mem_insn.
20679
20680 2014-08-12 Steve Ellcey <sellcey@mips.com>
20681
20682 * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
20683
20684 2014-08-12 Steve Ellcey <sellcey@mips.com>
20685
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.
20694
20695 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20696
20697 PR target/61413
20698 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
20699 of __ARM_SIZEOF_WCHAR_T.
20700
20701 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20702
20703 PR target/62098
20704 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
20705 Remove unnecessary attributes.
20706
20707 2014-08-12 Yury Gribov <y.gribov@samsung.com>
20708
20709 * internal-fn.c (init_internal_fns): Fix off-by-one.
20710
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>
20719
20720 * config/i386/i386.c (standard_sse_constant_opcode): Use
20721 vpxord/vpternlog if avx512 is availible.
20722
20723 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
20724
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.
20729
20730 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
20731
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.
20741
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.
20754
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.
20758 (VSr2): Likewise.
20759 (VSr3): Likewise.
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
20766 moves.
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
20828 the types use.
20829 (vsx_xscvspdpn): Likewise.
20830 (vsx_xscvdpspn_scalar): Likewise.
20831
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.
20836
20837 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
20838 direct moves.
20839 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
20840 DImode instead of wm. Use wk constraint for direct move of DFmode
20841 instead of wm.
20842 (extendsidi2_lfiwax): Likewise.
20843 (lfiwax): Likewise.
20844 (lfiwzx): Likewise.
20845 (movdi_internal64): Likewise.
20846
20847 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
20848 wk constraints. Make the wy constraint documentation match them
20849 implementation.
20850
20851 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
20852
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
20862 * graphite-poly.c:
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
20868 (wrap): likewise
20869 (build_loop_iteration_domains): likewise
20870 (add_param_constraints): likewise
20871
20872 2014-08-11 Richard Biener <rguenther@suse.de>
20873
20874 PR tree-optimization/62075
20875 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
20876 handle uses in patterns.
20877
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>
20886
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.
20903
20904 2014-08-11 Felix Yang <fei.yang0953@gmail.com>
20905
20906 PR tree-optimization/62073
20907 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
20908 a basic block.
20909
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>
20918
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.
20936
20937 2014-08-11 Richard Biener <rguenther@suse.de>
20938
20939 PR tree-optimization/62070
20940 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
20941 Remove SSA checking.
20942
20943 2014-08-11 Yury Gribov <y.gribov@samsung.com>
20944
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.
20967
20968 2014-08-11 Yury Gribov <y.gribov@samsung.com>
20969
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.
20980
20981 2014-08-10 Gerald Pfeifer <gerald@pfeifer.com>
20982
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.
20987
20988 2014-08-10 Marek Polacek <polacek@redhat.com>
20989
20990 PR c/51849
20991 * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
20992
20993 2014-08-09 Jan Hubicka <hubicka@ucw.cz>
20994
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.
20997
20998 2014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
20999
21000 * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
21001
21002 2014-08-09 Roman Gareev <gareevroman@gmail.com>
21003
21004 * graphite-isl-ast-to-gimple.c:
21005 (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
21006
21007 * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
21008
21009 2014-08-08 Guozhi Wei <carrot@google.com>
21010
21011 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
21012
21013 2014-08-08 Cary Coutant <ccoutant@google.com>
21014
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.
21019
21020 2014-08-07 Yi Yang <ahyangyi@google.com>
21021
21022 * predict.c (expr_expected_value_1): Remove the redundant assignment.
21023
21024 2014-08-08 Richard Biener <rguenther@suse.de>
21025
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.
21047
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>
21056
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.
21073
21074 2014-08-08 Richard Biener <rguenther@suse.de>
21075
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,
21085 strcat and strcpy.
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.
21127
21128 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
21129
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.
21138
21139
21140 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
21141
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.
21182
21183 2014-08-07 Jan Hubicka <hubicka@ucw.cz>
21184
21185 * ipa-devirt.c: Include gimple-pretty-print.h
21186 (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
21187 further tests.
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
21191 variant.
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
21204 polymorphic flag.
21205
21206 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
21207
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
21224 pointer-set.h.
21225 * pointer-set.c: Remove file.
21226 * pointer-set.h: Remove file.
21227
21228 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21229
21230 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
21231 * config/arm/types.md (f_sels, f_seld): Delete.
21232
21233 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21234
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.
21244
21245 2014-08-07 Ian Bolton <ian.bolton@arm.com>
21246 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21247
21248 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
21249 Use MOVN when one of the half-words is 0xffff.
21250
21251 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
21252
21253 * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
21254
21255 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
21256
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
21265 static functions.
21266 (ready_sort): Use them for debug printouts.
21267 (schedule_block): Init statistics state. Print statistics on
21268 rank_for_schedule decisions.
21269
21270 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
21271
21272 * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
21273
21274 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
21275
21276 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
21277 constraint.
21278
21279 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
21280
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
21288 of pointer_map.
21289
21290 2014-08-07 Marek Polacek <polacek@redhat.com>
21291
21292 * fold-const.c (fold_binary_loc): Add folding of
21293 (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
21294
21295 2013-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
21296
21297 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
21298 instead of type size.
21299 (ASM_FINISH_DECLARE_OBJECT): Likewise.
21300
21301 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
21302
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.
21306
21307 2014-08-07 Tom de Vries <tom@codesourcery.com>
21308
21309 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
21310 (glibc_2_11_or_earlier): Remove effective-target keywords.
21311
21312 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
21313
21314 * config/arm/arm.c (bdesc_2arg): Fix typo.
21315 (arm_atomic_assign_expand_fenv): Remove The default implementation.
21316
21317 2014-08-07 Zhenqiang Chen <zhenqiang.chen@arm.com>
21318
21319 * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
21320
21321 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
21322
21323 PR debug/61923
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.
21327
21328 2014-08-06 Martin Jambor <mjambor@suse.cz>
21329
21330 PR ipa/61393
21331 * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
21332
21333 2014-08-06 Richard Biener <rguenther@suse.de>
21334
21335 PR lto/62034
21336 * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
21337 SCCs here.
21338 (lto_input_tree): Pop SCCs here.
21339
21340 2014-08-06 Richard Biener <rguenther@suse.de>
21341
21342 PR tree-optimization/61320
21343 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
21344 handle misaligned loads.
21345
21346 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
21347
21348 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
21349 (aarch64_expand_vec_perm_const): Check for dup before zip.
21350
21351 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21352
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.
21361
21362 2014-08-05 David Malcolm <dmalcolm@redhat.com>
21363
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".
21367
21368 2014-08-05 Trevor Saunders <tsaunders@mozilla.com>
21369
21370 * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
21371 getting olde.
21372
21373 2014-08-05 Richard Biener <rguenther@suse.de>
21374
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.
21381
21382 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21383
21384 * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
21385 rather than singleton vectors.
21386 (vqdmlsls_lane_s32): Likewise.
21387
21388 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21389
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.
21405
21406 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21407
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.
21414
21415 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21416
21417 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
21418 to reservation.
21419 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
21420
21421 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21422
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.
21426
21427 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21428
21429 * convert.c (convert_to_integer): Guard transformation to lrint by
21430 -fno-math-errno.
21431
21432 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
21433
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.
21461
21462 2014-08-05 Roman Gareev <gareevroman@gmail.com>
21463
21464 * graphite-isl-ast-to-gimple.c:
21465 (set_options): New function.
21466 (scop_to_isl_ast): Add calling of set_options.
21467
21468 2014-08-05 Jakub Jelinek <jakub@redhat.com>
21469
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.
21476
21477 2014-08-05 Roman Gareev <gareevroman@gmail.com>
21478
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
21492 and carries_deps.
21493
21494 2014-08-04 Rohit <rohitarulraj@freescale.com>
21495
21496 PR target/60102
21497 * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
21498 names.
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.
21518
21519 2014-08-04 Richard Biener <rguenther@suse.de>
21520
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.
21525
21526 2014-08-04 Martin Liska <mliska@suse.cz>
21527
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
21542 cgraph_node_set.
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.
21567
21568 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
21569
21570 * config/i386/i386.c (ix86_option_override_internal): Add
21571 PTA_RDRND and PTA_MOVBE for bdver4.
21572
21573 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21574 James Greenhalgh <james.greenhalgh@arm.com>
21575
21576 * doc/md.texi (clrsb): Document.
21577 (clz): Change reference to x into operand 1.
21578 (ctz): Likewise.
21579 (popcount): Likewise.
21580
21581 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21582
21583 PR target/61713
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.
21586
21587 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21588 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21589
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.
21596
21597 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
21598
21599 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
21600 family information. Handle BTVER2 cpu with cpuid family value.
21601
21602 2014-08-04 Tom de Vries <tom@codesourcery.com>
21603
21604 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
21605 (glibc_2_11_or_earlier): Document effective-target keywords.
21606
21607 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
21608
21609 * ipa-devirt.c (odr_type_warn_count): Add type.
21610 (possible_polymorphic_call_targets): Set it.
21611 (ipa_devirt): Use it.
21612
21613 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
21614
21615 * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
21616 Document.
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
21621 speculations.
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
21634 options.
21635
21636 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
21637
21638 * hash-map.h (default_hashmap_traits::mark_key_deleted):
21639 Fix cast.
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
21648 pointer_map.
21649
21650 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
21651
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.
21661
21662 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
21663
21664 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
21665
21666 2014-08-01 Jiong Wang <jiong.wang@arm.com>
21667
21668 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
21669 for frame access when strict_p is false.
21670
21671 2014-08-01 Renlin Li <renlin.li@arm.com>
21672 2014-08-01 Jiong Wang <jiong.wang@arm.com>
21673
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):
21677 Declaration.
21678 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
21679 predicate.
21680 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
21681 aarch64_mem_pair_offset.
21682
21683 2014-08-01 Jiong Wang <jiong.wang@arm.com>
21684
21685 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
21686 offset.
21687 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
21688 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
21689
21690 2014-08-01 Matthew Fortune <matthew.fortune@imgtec.com>
21691
21692 * config/mips/mips.h (REGISTER_PREFIX): Define macro.
21693
21694 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
21695
21696 PR regression/61510
21697 * cgraphunit.c (analyze_functions): Use get_create rather than get
21698 for decls which are clones of abstract functions.
21699
21700 2014-08-01 Martin Liska <mliska@suse.cz>
21701
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.
21711
21712 2014-08-01 Martin Liska <mliska@suse.cz>
21713
21714 * doc/invoke.texi (Options That Control Optimization): Documentation
21715 for -foptimize-strlen introduced. Optimization levels default options
21716 fixed.
21717
21718 2014-08-01 Jakub Jelinek <jakub@redhat.com>
21719
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
21723 type to bool.
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
21727 check.
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
21734 first argument.
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.
21748
21749 2014-07-31 Andi Kleen <ak@linux.intel.com>
21750
21751 * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
21752
21753 2014-07-31 Andi Kleen <ak@linux.intel.com>
21754
21755 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
21756 inchash.
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.
21761
21762 2014-07-31 Andi Kleen <ak@linux.intel.com>
21763
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.
21769
21770 2014-07-31 Andi Kleen <ak@linux.intel.com>
21771
21772 * ipa-devirt.c (polymorphic_call_target_hasher::hash):
21773 Convert to inchash.
21774
21775 2014-07-31 Andi Kleen <ak@linux.intel.com>
21776
21777 * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
21778
21779 2014-07-31 Andi Kleen <ak@linux.intel.com>
21780
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.
21786 (hash_locs): 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.
21792
21793 2014-07-31 Andi Kleen <ak@linux.intel.com>
21794
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
21799 to inchash::hash.
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.
21813
21814 2014-07-31 Chen Gang <gang.chen.5i5j@gmail.com>
21815
21816 * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
21817
21818 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
21819
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.
21824 (vpaddd_u64): New.
21825
21826 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
21827
21828 PR target/61844
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.
21834
21835 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
21836
21837 * config/aarch64/aarch64-builtins.c
21838 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
21839 BYTES_BIG_ENDIAN.
21840
21841 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
21842
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.
21854
21855 2014-07-30 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
21856
21857 * doc/invoke.texi (AVR Options): Add documentation about
21858 __AVR_DEVICE_NAME__ built-in macro.
21859
21860 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
21861
21862 PR target/61948
21863 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
21864 constraints are satisfied.
21865 (<shift>di3_neon): Likewise.
21866
21867 2014-07-31 Richard Biener <rguenther@suse.de>
21868
21869 PR tree-optimization/61964
21870 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
21871 by structural equality.
21872
21873 2014-07-31 Yury Gribov <y.gribov@samsung.com>
21874
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):
21878 New enums.
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.
21884
21885 2014-07-31 Richard Biener <rguenther@suse.de>
21886
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.
21892
21893 2014-07-31 Marc Glisse <marc.glisse@inria.fr>
21894
21895 PR c++/60517
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.
21902
21903 2014-07-31 Bingfeng Mei <bmei@broadcom.com>
21904
21905 PR lto/61868
21906 * toplev.c (init_random_seed): Move piece of code never called to
21907 set_random_seed.
21908 (set_random_seed): see above.
21909
21910 2014-07-31 Tom de Vries <tom@codesourcery.com>
21911
21912 * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
21913
21914 2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
21915
21916 * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
21917 (compute_regs_asm_clobbered): Use extract_asm_operands instead.
21918
21919 2014-07-31 Richard Biener <rguenther@suse.de>
21920
21921 * data-streamer.h (streamer_write_data_stream): Declare here,
21922 renamed from ...
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.
21930
21931 2014-07-30 Mike Stump <mikestump@comcast.net>
21932
21933 * configure.ac: Also check for popen.
21934 * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
21935 * configure: Regenerate.
21936 * config.in: Regenerate.
21937
21938 2014-07-30 Martin Jambor <mjambor@suse.cz>
21939
21940 * tree-sra.c (sra_ipa_modify_assign): Change type of the first
21941 parameter to gimple.
21942
21943 2014-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21944
21945 * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
21946 address as second parameter to __tpf_eh_return routine.
21947
21948 2014-07-30 Jiong Wang <jiong.wang@arm.com>
21949
21950 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
21951 Thumb2.
21952
21953 2014-07-30 Tom Tromey <tromey@redhat.com>
21954
21955 PR c/59855
21956 * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
21957 * doc/extend.texi (Type Attributes): Document designated_init
21958 attribute.
21959
21960 2014-07-30 Roman Gareev <gareevroman@gmail.com>
21961
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.
21966
21967 2014-07-30 Richard Biener <rguenther@suse.de>
21968
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.
21984
21985 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
21986
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.
21994
21995 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
21996
21997 * common.opt (Wodr): Enable by default.
21998
21999 2014-07-29 Olivier Hainque <hainque@adacore.com>
22000
22001 * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
22002
22003 2014-07-29 H.J. Lu <hongjiu.lu@intel.com>
22004
22005 PR bootstrap/61914
22006 * gengtype.c (strtoken): New function.
22007 (create_user_defined_type): Replace strtok with strtoken.
22008
22009 2014-07-29 Nathan Sidwell <nathan@acm.org>
22010
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).
22015
22016 2014-07-29 Martin Jambor <mjambor@suse.cz>
22017
22018 * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
22019 parameter to gimple.
22020 (sra_modify_assign): Likewise.
22021
22022 2014-07-29 Richard Biener <rguenther@suse.de>
22023
22024 PR middle-end/52478
22025 * expr.c (expand_expr_real_2): Revert last change.
22026
22027 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
22028
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
22032 call.
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
22042 before giving up.
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.
22051
22052 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
22053
22054 * gimple-fold.c (fold_gimple_assign): Fix condition guarding
22055 ipa-devirt path; fix thinko there.
22056
22057 2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
22058
22059 * config/i386/i386.c (ix86_return_in_memory): Replace one
22060 ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
22061
22062 2014-07-28 Marek Polacek <polacek@redhat.com>
22063
22064 * doc/invoke.texi (-Wno-odr): Fix @item entry. Tweak wording.
22065
22066 2014-07-28 Peter Bergner <bergner@vnet.ibm.com>
22067
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.
22082
22083 2014-07-28 Eric Botcazou <ebotcazou@adacore.com>
22084
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.
22088
22089 2014-07-28 Richard Biener <rguenther@suse.de>
22090
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.
22096
22097 2014-07-28 Richard Sandiford <rdsandiford@googlemail.com>
22098
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.
22104
22105 2014-07-28 Marek Polacek <polacek@redhat.com>
22106
22107 PR middle-end/61913
22108 * common.opt (Wodr): Add Var.
22109
22110 2014-07-28 Richard Biener <rguenther@suse.de>
22111
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.
22115
22116 2014-07-28 Roman Gareev <gareevroman@gmail.com>
22117
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.
22121
22122 * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
22123
22124 2014-07-28 Roman Gareev <gareevroman@gmail.com>
22125
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.
22130
22131 * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
22132
22133 2014-07-27 Anthony Green <green@moxielogic.com>
22134
22135 * config.gcc: Add moxie-*-moxiebox* configuration.
22136 * config/moxie/moxiebox.h: New file.
22137
22138 2014-07-26 Andrew Pinski <apinski@cavium.com>
22139
22140 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
22141 from the read only register.
22142
22143 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
22144
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.
22147
22148 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
22149
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.
22166
22167 2014-07-26 Marc Glisse <marc.glisse@inria.fr>
22168
22169 PR target/44551
22170 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
22171 Optimize inverse of a VEC_CONCAT.
22172
22173 2014-07-25 Xinliang David Li <davidxl@google.com>
22174
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.
22183
22184 2014-07-25 Jan Hubicka <hubicka@ucw.cz>
22185 Richard Biener <rguenther@suse.de>
22186
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
22199 hashes.
22200 (DFS_write_tree): Rename to ...
22201 (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
22202 (lto_output_tree): Update.
22203
22204 2014-07-25 Andi Kleen <ak@linux.intel.com>
22205
22206 * lto-streamer-out.c (hash_tree): Convert to inchash.
22207
22208 2014-07-25 Andi Kleen <ak@linux.intel.com>
22209
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.
22224
22225 2014-07-25 Andi Kleen <ak@linux.intel.com>
22226
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.
22235 * asan.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.
22242
22243 2014-07-25 Richard Biener <rguenther@suse.de>
22244
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
22256 defaulting to -1.
22257 * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
22258 (fold_ctor_reference): Handle all reads from tcc_constant
22259 ctors.
22260
22261 2014-07-25 Richard Biener <rguenther@suse.de>
22262
22263 * tree-inline.c (estimate_move_cost): Mark speed_p argument
22264 as possibly unused.
22265
22266 2014-07-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22267
22268 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
22269
22270 2014-07-24 Kyle McMartin <kyle@redhat.com>
22271
22272 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
22273
22274 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22275
22276 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
22277 Add prototype.
22278 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
22279 function.
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.
22283
22284 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22285
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.
22292
22293 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22294
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.
22301
22302 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
22303
22304 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
22305
22306 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
22307
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.
22314
22315 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
22316
22317 PR rtl-optimization/61629
22318 * reginfo.c (reinit_regs): Only call ira_init and recog_init if
22319 they have already been initialized.
22320
22321 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
22322
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
22329 save areas.
22330 * config/i386/i386.c (assign_386_stack_local): Likewise the local
22331 stack slot.
22332 * explow.c (validize_mem): Modify the argument in-place.
22333
22334 2014-07-24 Jiong Wang <jiong.wang@arm.com>
22335
22336 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
22337 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
22338
22339 2014-07-24 Jiong Wang <jiong.wang@arm.com>
22340
22341 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
22342 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
22343
22344 2014-07-24 Jiong Wang <jiong.wang@arm.com>
22345
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.
22349
22350 2014-07-24 Jiong Wang <jiong.wang@arm.com>
22351
22352 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
22353 "wb_candidate2".
22354 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
22355
22356 2014-07-24 Roman Gareev <gareevroman@gmail.com>
22357
22358 * graphite-isl-ast-to-gimple.c:
22359 (graphite_create_new_loop): Add calling of isl_id_free to properly
22360 decrement reference counts.
22361
22362 * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
22363
22364 2014-07-24 Martin Liska <mliska@suse.cz>
22365 * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
22366 function used.
22367 * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
22368 (rs6000_code_end): Likewise.
22369
22370 2014-07-24 Martin Liska <mliska@suse.cz>
22371
22372 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
22373 symtab_node funtion used.
22374 (rs6000_xcoff_declare_object_name): Likewise.
22375
22376 2014-07-24 Martin Liska <mliska@suse.cz>
22377
22378 * cgraphunit.c (compile): Correct function used.
22379
22380 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
22381
22382 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
22383 as non-indexable.
22384
22385 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
22386
22387 PR lto/61802
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.
22396
22397 2014-07-24 Roman Gareev <gareevroman@gmail.com>
22398
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.
22403
22404 * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
22405
22406 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22407
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.
22411
22412 2014-07-24 Martin Liska <mliska@suse.cz>
22413
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
22444
22445 2014-07-24 Martin Liska <mliska@suse.cz>
22446
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
22618
22619 2014-07-24 Richard Biener <rguenther@suse.de>
22620
22621 PR ipa/61823
22622 * tree-ssa-structalias.c (create_variable_info_for_1):
22623 Use varpool_get_constructor.
22624 (create_variable_info_for): Likewise.
22625
22626 2014-07-24 Jiong Wang <jiong.wang@arm.com>
22627
22628 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
22629 subtract outgoing area size when restoring stack_pointer_rtx.
22630
22631 2014-07-24 Nick Clifton <nickc@redhat.com>
22632
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.
22636
22637 2014-07-24 Thomas Schwinge <thomas@codesourcery.com>
22638
22639 * omp-low.c (extract_omp_for_data): Add missing break statement.
22640
22641 2014-07-24 Richard Biener <rguenther@suse.de>
22642
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.
22651
22652 2014-07-24 Trevor Saunders <tsaunders@mozilla.com>
22653
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.
22660
22661 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22662
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.
22667
22668 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22669
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.
22674
22675 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22676
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.
22680
22681 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22682
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.
22686
22687 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22688
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.
22693
22694 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22695
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.
22699
22700 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22701
22702 * config/aarch64/aarch64.c
22703 (aarch64_save_or_restore_callee_save_registers)
22704 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
22705
22706 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22707
22708 * config/aarch64/aarch64.c
22709 (aarch64_save_or_restore_callee_save_registers)
22710 (aarch64_save_or_restore_fprs): Remove 'increment'.
22711
22712 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22713
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.
22718
22719 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22720
22721 * config/aarch64/aarch64.c
22722 (aarch64_save_or_restore_callee_save_registers)
22723 (aarch64_save_or_restore_fprs): Remove base_rtx.
22724
22725 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22726
22727 * config/aarch64/aarch64.c
22728 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
22729 to 'start_offset'. Remove local variable 'start_offset'.
22730
22731 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22732
22733 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
22734 type to HOST_WIDE_INT.
22735
22736 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22737
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.
22741
22742 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
22743
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
22749 multilibs.
22750
22751 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
22752 Chris Johns <chrisj@rtems.org>
22753 Joel Sherrill <joel.sherrill@oarcorp.com>
22754
22755 * config.gcc: Add nios2-*-rtems*.
22756 * config/nios2/rtems.h: New file.
22757 * gcc/config/nios2/t-rtems: New file.
22758
22759 2014-07-23 Segher Boessenkool <segher@kernel.crashing.org>
22760
22761 PR target/61396
22762 * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
22763 constant numbers, not general constants.
22764 (rs6000_expand_vector_init): Ditto.
22765
22766 2014-07-23 Nathan Sidwell <nathan@acm.org>
22767
22768 * gcov-tool.c (gcov_list): Declare here.
22769 (set_gcov_list): Remove.
22770 (gcov_output_files): Set gcov_list directly.
22771
22772 2014-07-23 Host Schirmeier <horst@schirmeier.com>
22773
22774 * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
22775
22776 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22777
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
22781 instead of r3.
22782
22783 2014-07-23 Richard Biener <rguenther@suse.de>
22784
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
22789 performed.
22790 * doc/invoke.texi (max-combine-insns): Document new param.
22791
22792 2014-07-23 Roman Gareev <gareevroman@gmail.com>
22793
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.
22797
22798 * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
22799 * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
22800
22801 2014-07-23 Roman Gareev <gareevroman@gmail.com>
22802
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.
22808
22809 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22810
22811 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
22812 (case UNSPEC): Handle UNSPEC_RBIT.
22813
22814 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22815
22816 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
22817 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
22818
22819 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22820
22821 * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
22822
22823 2014-07-22 Roman Gareev <gareevroman@gmail.com>
22824
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.
22831
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.
22835
22836 2014-07-21 Bin Cheng <bin.cheng@arm.com>
22837
22838 PR target/55701
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.
22859
22860 2014-07-21 Bin Cheng <bin.cheng@arm.com>
22861
22862 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
22863
22864 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
22865
22866 PR target/61855
22867 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
22868 out of #ifdef __OPTIMIZE__.
22869
22870 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
22871
22872 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
22873 different trapping status if -fnon-call-exceptions is enabled.
22874
22875 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
22876
22877 * expr.c (store_field): Handle VOIDmode for calls that return values
22878 in multiple locations.
22879
22880 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22881
22882 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
22883 (altivec_vsldoi_<mode>): Likewise.
22884
22885 2014-07-20 Roman Gareev <gareevroman@gmail.com>
22886
22887 * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
22888 to the number of characters in the line.
22889
22890 2014-07-20 Roman Gareev <gareevroman@gmail.com>
22891
22892 * graphite-isl-ast-to-gimple.c: Add using of
22893 build_nonstandard_integer_type instead of int128_integer_type_node.
22894
22895 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
22896
22897 * toplev.c (output_stack_usage): Adjust the location of the warning.
22898
22899 2014-07-19 Daniel Cederman <cederman@gaisler.com>
22900
22901 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
22902 (*membar_storeload): Disable for LEON3.
22903
22904 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
22905
22906 PR rtl-optimization/61461
22907 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
22908
22909 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
22910
22911 PR target/61794
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.
22915
22916 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
22917
22918 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
22919
22920 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
22921
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.
22927
22928 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
22929
22930 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
22931
22932 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
22933
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.
22940
22941 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
22942
22943 * config/mips/p5600.md: Add missing cpu tests.
22944
22945 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22946
22947 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
22948 (vmla_f64): Likewise.
22949 (vfms_f64): Likewise.
22950 (vmls_f64): Likewise.
22951
22952 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22953
22954 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
22955 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
22956
22957 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22958
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.
22967
22968 2014-07-17 Terry Guo <terry.guo@arm.com>
22969
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.
23006
23007 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
23008
23009 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
23010 infinity format.
23011
23012 2014-07-17 Richard Biener <rguenther@suse.de>
23013
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.
23017
23018 2014-07-16 DJ Delorie <dj@redhat.com>
23019
23020 * config/rx/rx.c (rx_option_override): Fix alignment values.
23021 (rx_align_for_label): Likewise.
23022
23023 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
23024
23025 PR target/61737.
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
23029 functions.
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
23036 for all unspecs.
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
23044 operand update.
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
23049 for lapc stricter.
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
23059 CONSTANT_P.
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
23066 just CONSTANT_P.
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.
23070
23071 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
23072 an existing tmake_file. Don't add t-slibgcc and t-linux.
23073
23074 2014-07-17 Jason Merrill <jason@redhat.com>
23075
23076 PR c++/61623
23077 * symtab.c (symtab_remove_from_same_comdat_group): Also
23078 set_comdat_group to NULL_TREE.
23079 (verify_symtab): Fix diagnostic.
23080
23081 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
23082
23083 PR target/61662
23084 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
23085
23086 2014-07-16 Dodji Seketeli <dodji@redhat.com>
23087
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.
23093
23094 2014-07-16 Jakub Jelinek <jakub@redhat.com>
23095
23096 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
23097 on the FUNCTION_DECL.
23098
23099 2014-07-16 Richard Biener <rguenther@suse.de>
23100
23101 PR other/61782
23102 * doc/extend.texi (always_inline): Clarify.
23103
23104 2014-07-15 Eric Christopher <echristo@gmail.com>
23105
23106 * doc/invoke.texi (Link Options): Document -z option.
23107
23108 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
23109
23110 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
23111 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
23112
23113 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
23114
23115 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
23116
23117 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
23118
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
23122 true.
23123
23124 2014-07-15 Michael Matz <matz@suse.de>
23125
23126 PR rtl-optimization/61772
23127 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
23128
23129 2014-07-15 Richard Biener <rguenther@suse.de>
23130
23131 * opts.c (default_options_table): Disable bit-ccp at -Og.
23132
23133 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
23134
23135 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
23136
23137 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
23138
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.
23147
23148 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
23149
23150 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
23151
23152 2014-07-14 Richard Biener <rguenther@suse.de>
23153
23154 PR tree-optimization/61779
23155 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
23156 simplifying a condition.
23157
23158 2014-07-14 Richard Biener <rguenther@suse.de>
23159
23160 * builtins.c (c_strlen): Make only_value == 2 really only
23161 affect warning generation.
23162
23163 2014-07-14 Richard Biener <rguenther@suse.de>
23164
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.
23172
23173 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23174
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.
23182
23183 2014-07-14 Richard Biener <rguenther@suse.de>
23184
23185 * cgraph.h (decl_in_symtab_p): Make inline.
23186
23187 2014-07-14 Jakub Jelinek <jakub@redhat.com>
23188
23189 PR middle-end/61294
23190 * doc/invoke.texi (-Wmemset-transposed-args): Document.
23191
23192 PR target/61656
23193 * config/i386/i386.c (classify_argument): Don't merge classes above
23194 number of words.
23195
23196 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
23197
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.
23205
23206 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
23207
23208 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
23209 forgotten in previous commit.
23210
23211 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
23212
23213 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
23214 on builtin types.
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.
23223
23224 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
23225
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.
23231
23232 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
23233
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.
23244
23245 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
23246
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
23253 to symbol filed.
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.
23276
23277 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
23278
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.
23284
23285 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
23286
23287 * lra-constraints.c (remove_inheritance_pseudos): Process
23288 destination pseudo too.
23289
23290 2014-07-11 Rong Xu <xur@google.com>
23291
23292 * gcov-tool.c (gcov_output_files): Fix build error introduced in
23293 commit r212448.
23294
23295 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
23296
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.
23302 (ata5831): Same.
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
23306 SPEC functions.
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
23310 is not zero.
23311 * config/avr/t-multilib: Regenerate.
23312 * doc/avr-mmcu.texi: Regenerate.
23313
23314 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
23315
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.
23321
23322 2014-07-11 Roman Gareev <gareevroman@gmail.com>
23323
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.
23344
23345 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
23346
23347 * config/xtensa/predicates.md (call expander): Update for
23348 DECL_SECTION_NAME being string.
23349
23350 2014-07-11 Richard Biener <rguenther@suse.de>
23351
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.
23356
23357 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
23358
23359 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
23360
23361 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
23362
23363 PR target/61561
23364 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
23365 (*movhi_bytes): Likewise.
23366 (*arm_movqi_insn): Likewise.
23367
23368 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
23369
23370 PR target/56858
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.
23377
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.
23384
23385 (alpha_option_override): Declare handle_trap_shadows info
23386 and align_insns_info. Register handle_trap_shadows and align_insns
23387 passes here.
23388 (alpha_reorg): Do not call alpha_trap_shadows and
23389 alpha_align_insn from here.
23390
23391 (alpha_pad_function_end): Do not skip BARRIERs.
23392
23393 2014-07-10 Rong Xu <xur@google.com>
23394
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.
23423
23424 2014-07-10 Richard Biener <rguenther@suse.de>
23425
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.
23429
23430 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
23431
23432 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
23433 FUNCTION_DECLs.
23434
23435 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
23436
23437 PR middle-end/53590
23438 * function.c (allocate_struct_function): Revert r188667 change.
23439
23440 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
23441
23442 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
23443
23444 * doc/install.texi: Remove links to defunct package providers for
23445 Solaris.
23446
23447 2014-07-09 Tom de Vries <tom@codesourcery.com>
23448
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.
23452
23453 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23454
23455 * ipa-devirt.c (record_node): Walk through aliases.
23456
23457 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23458
23459 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
23460
23461 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23462
23463 Revert:
23464 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
23465
23466 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23467
23468 * ipa-visibility.c (function_and_variable_visibility): Remove
23469 temporary hack disabling local aliases on AIX.
23470
23471 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23472
23473 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
23474 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
23475
23476 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23477
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.
23486
23487 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
23488
23489 PR bootstrap/61679
23490 * hash-table.h: use hash_table::value_type instead of
23491 Descriptor::value_type in the return types of several methods.
23492
23493 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
23494
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.
23530
23531 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
23532
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.
23538
23539 2014-07-08 Sriraman Tallam <tmsriram@google.com>
23540
23541 PR target/61599
23542 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
23543 than zero.
23544
23545 2014-07-08 Jakub Jelinek <jakub@redhat.com>
23546
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.
23550
23551 2014-07-08 Roman Gareev <gareevroman@gmail.com>
23552
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.
23557
23558 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23559
23560 * config/arm/arm.c (cortexa5_extra_costs): New table.
23561 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
23562
23563 2014-07-08 Jakub Jelinek <jakub@redhat.com>
23564
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.
23569
23570 2014-07-08 Richard Biener <rguenther@suse.de>
23571
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.
23581
23582 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23583
23584 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
23585 parameter.
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.
23590
23591 2014-07-08 Richard Biener <rguenther@suse.de>
23592
23593 PR tree-optimization/61681
23594 * tree-ssa-structalias.c (find_what_var_points_to): Expand
23595 NONLOCAL inside ESCAPED.
23596
23597 2014-07-08 Richard Biener <rguenther@suse.de>
23598
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.
23602
23603 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
23604
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.
23608
23609 2014-07-08 Marek Polacek <polacek@redhat.com>
23610
23611 PR c/60226
23612 * fold-const.c (round_up_loc): Change the parameter type.
23613 Remove assert.
23614 * fold-const.h (round_up_loc): Adjust declaration.
23615 * stor-layout.c (finalize_record_size): Check for too large types.
23616
23617 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
23618
23619 * symtab.c: Include calls.h.
23620 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
23621
23622 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
23623
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
23647 endianness only.
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
23659 endianness only.
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
23665 pattern.
23666 (*mov_si<mode>_e500_subreg4_2): Rename to...
23667 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
23668 endianness only.
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
23672 endianness only.
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
23676 endianness only.
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
23680 endianness only.
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
23684 endianness only.
23685 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
23686
23687 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
23688
23689 * asan.c (instrument_strlen_call): Do not instrument first byte
23690 in strlen if already instrumented.
23691
23692 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23693
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
23699 warning.
23700 * doc/invoke.texi: Remove references to -mwords-little-endian.
23701
23702 2014-07-07 Jakub Jelinek <jakub@redhat.com>
23703
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
23708 at the end again.
23709
23710 2014-07-06 Marek Polacek <polacek@redhat.com>
23711
23712 PR c/6940
23713 * doc/invoke.texi: Document -Wsizeof-array-argument.
23714
23715 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
23716
23717 * wide-int.h (wide_int_storage): Change declaration from struct
23718 to class.
23719
23720 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
23721
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.
23739
23740 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
23741
23742 PR target/49423
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.
23755
23756 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
23757
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.
23769
23770 2014-07-04 Tom de Vries <tom@codesourcery.com>
23771
23772 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
23773 combination of earlyclobber and read/write modifiers.
23774
23775 2014-07-04 Tom de Vries <tom@codesourcery.com>
23776
23777 * config/aarch64/aarch64-simd.md
23778 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
23779
23780 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
23781
23782 PR target/61714
23783 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
23784
23785 2014-07-04 Jakub Jelinek <jakub@redhat.com>
23786
23787 PR middle-end/61654
23788 * cgraphunit.c (expand_thunk): Call free_dominance_info.
23789
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.
23793
23794 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23795 Kito Cheng <kito@0xlab.org>
23796 Monk Chiang <sh.chiang04@gmail.com>
23797
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.
23804
23805 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23806 Kito Cheng <kito@0xlab.org>
23807 Monk Chiang <sh.chiang04@gmail.com>
23808
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.
23813
23814 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23815 Kito Cheng <kito@0xlab.org>
23816 Monk Chiang <sh.chiang04@gmail.com>
23817
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.
23830
23831 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23832 Ling-Hua Tseng <uranus@tinlans.org>
23833
23834 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
23835 the purpose of this file.
23836
23837 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23838 Kito Cheng <kito@0xlab.org>
23839 Monk Chiang <sh.chiang04@gmail.com>
23840
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.
23846
23847 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23848 Kito Cheng <kito@0xlab.org>
23849 Monk Chiang <sh.chiang04@gmail.com>
23850
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.
23860
23861 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23862 Kito Cheng <kito@0xlab.org>
23863 Monk Chiang <sh.chiang04@gmail.com>
23864
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.
23874
23875 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23876 Kito Cheng <kito@0xlab.org>
23877 Monk Chiang <sh.chiang04@gmail.com>
23878
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.
23894
23895 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23896 Kito Cheng <kito@0xlab.org>
23897 Monk Chiang <sh.chiang04@gmail.com>
23898
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.
23911
23912 2014-07-03 Jakub Jelinek <jakub@redhat.com>
23913
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.
23917
23918 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
23919
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.
23925
23926 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
23927
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
23931 on VFP9.
23932 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
23933
23934 2014-07-03 Jakub Jelinek <jakub@redhat.com>
23935
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.
23942
23943 2014-07-03 Marek Polacek <polacek@redhat.com>
23944
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.
23949
23950 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
23951
23952 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
23953 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
23954 endianness.
23955
23956 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
23957
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;
23962
23963 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
23964
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.
23970
23971 2014-07-02 Christian Bruel <christian.bruel@st.com>
23972
23973 PR target/29349
23974 PR target/53513
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
23987 parameter.
23988 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
23989 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
23990 Idem.
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.
23997
23998 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23999
24000 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
24001 variable i.
24002
24003 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
24004
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
24012 polymorphic types.
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
24016 polymorphic type.
24017 (compute_known_type_jump_func): Likewise.
24018
24019 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
24020
24021 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
24022 Remove.
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
24028 non-records.
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.
24040
24041 2014-07-01 Cary Coutant <ccoutant@google.com>
24042
24043 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
24044 lookup.
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.
24049
24050 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
24051
24052 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
24053 change for not being obvious.
24054
24055 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
24056
24057 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
24058 unused argument.
24059
24060 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24061
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.
24070
24071 2014-07-01 Marek Polacek <polacek@redhat.com>
24072
24073 * doc/invoke.texi: Document -Wint-conversion.
24074
24075 2014-07-01 Marek Polacek <polacek@redhat.com>
24076
24077 PR c/58286
24078 * doc/invoke.texi: Document -Wincompatible-pointer-types.
24079
24080 2014-07-01 Martin Liska <mliska@suse.cz>
24081
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.
24102
24103 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24104
24105 Revert:
24106 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
24107 type is complete.
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.
24117
24118 2014-06-30 Joseph Myers <joseph@codesourcery.com>
24119
24120 * var-tracking.c (add_stores): Return instead of asserting if old
24121 and new values for conditional store are the same.
24122
24123 2014-06-30 Richard Henderson <rth@redhat.com>
24124
24125 PR rtl-opt/61608
24126 PR target/39284
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.
24131
24132 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
24133
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.
24139
24140 2014-06-30 Jeff Law <law@redhat.com>
24141
24142 PR tree-optimization/61607
24143 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
24144 deeper into the SSA_NAME_VALUE chain.
24145
24146 2014-06-30 Marek Polacek <polacek@redhat.com>
24147
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.
24152
24153 2014-06-30 Jakub Jelinek <jakub@redhat.com>
24154
24155 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
24156 -fsanitize=undefined suboptions.
24157
24158 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
24159
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.
24163
24164 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
24165
24166 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
24167
24168 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
24169
24170 PR target/61633
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.
24174
24175 2014-06-30 Jakub Jelinek <jakub@redhat.com>
24176
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.
24179
24180 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
24181
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.
24185
24186 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
24187
24188 * doc/invoke.texi (Optimize Options): Fix descriptions of
24189 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
24190
24191 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
24192
24193 * doc/extend.texi (Function Attributes): Update 'naked' attribute
24194 documentation.
24195
24196 2014-06-29 Tobias Grosser <tobias@grosser.es>
24197
24198 PR bootstrap/61650
24199 * graphite-isl-ast-to-gimple.c: Add missing guards.
24200
24201 2014-06-29 Roman Gareev <gareevroman@gmail.com>
24202
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.
24210
24211 2014-06-29 Roman Gareev <gareevroman@gmail.com>
24212
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.
24218
24219 2014-06-29 Roman Gareev <gareevroman@gmail.com>
24220
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.
24232
24233 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24234
24235 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
24236 type is complete.
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.
24246
24247 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24248
24249 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
24250
24251 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24252
24253 * tree-inline.c (remap_type_1): Do not duplicate fields
24254 that are shared in between type and its main variant.
24255
24256 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24257
24258 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
24259 of the type.
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.
24264
24265 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24266
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
24273 main variant.
24274 (get_polymorphic_call_info): Likewise.
24275 (possible_polymorphic_call_targets): Sanity check that we operate
24276 on main variant.
24277
24278 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24279
24280 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
24281
24282 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24283
24284 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
24285 accidental change due to wide-int branch merge.
24286
24287 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24288
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].
24305
24306 2014-06-27 Martin Jambor <mjambor@suse.cz>
24307
24308 PR ipa/61160
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..
24316
24317 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
24318
24319 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
24320 redundant diagnostic machinary.
24321
24322 2014-06-27 Richard Biener <rguenther@suse.de>
24323
24324 * tree-ssa-math-opts.c (bswap_replace): Fix
24325 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
24326
24327 2014-06-27 Martin Liska <mliska@suse.cz>
24328
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.
24337
24338 2014-06-27 Jakub Jelinek <jakub@redhat.com>
24339
24340 PR tree-optimization/57233
24341 PR tree-optimization/61299
24342 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
24343 functions.
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.
24350
24351 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
24352
24353 PR target/61586
24354 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
24355
24356 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
24357
24358 * doc/invoke.texi (-fsemantic-interposition): Document.
24359 * common.opt (fsemantic-interposition): New flag.
24360 * varasm.c (decl_replaceable_p): Use it.
24361
24362 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24363
24364 PR target/61542
24365 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
24366 extraction other than index 3.
24367
24368 2014-06-26 Teresa Johnson <tejohnson@google.com>
24369
24370 * doc/invoke.texi: Fix typo.
24371 * dumpfile.c: Add support for documented -fdump-* options
24372 optimized/missed/note/optall.
24373
24374 2014-06-26 Martin Jambor <mjambor@suse.cz>
24375
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.
24385
24386 2014-06-26 Martin Jambor <mjambor@suse.cz>
24387
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.
24393
24394 2014-06-26 Richard Biener <rguenther@suse.de>
24395
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
24400 on loop depth.
24401 (record_equivalences_from_phis): Instead add it here.
24402
24403 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
24404
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
24422 changed.
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.
24436
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
24445 debug.
24446
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.
24458
24459 2014-06-26 Nick Clifton <nickc@redhat.com>
24460
24461 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
24462
24463 * doc/extend.texi (Function Attributes): Fix typo in description
24464 of RX vector attribute.
24465
24466 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
24467
24468 * config.gcc (supported_defaults): Error when passing either
24469 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
24470
24471 2014-06-26 Richard Biener <rguenther@suse.de>
24472
24473 * tree-ssa-dom.c (cprop_operand): Remove restriction on
24474 propagating volatile pointers.
24475
24476 2014-06-26 Richard Biener <rguenther@suse.de>
24477
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.
24482
24483 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
24484
24485 * toplev.c (backend_init_target): Move init_emit_regs and
24486 init_regs to...
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
24494 and ira_init_once.
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.
24500
24501 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
24502 Jakub Jelinek <jakub@redhat.com>
24503
24504 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
24505
24506 2014-06-25 Tom de Vries <tom@codesourcery.com>
24507
24508 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
24509
24510 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
24511
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.
24515
24516 2014-06-25 Martin Liska <mliska@suse.cz>
24517
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
24521 called.
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
24574 to ipa_ref class.
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
24592 function used.
24593 * lto-streamer-out.c (output_symbol_p): Likewise.
24594 * lto-streamer.h (referenced_from_this_partition_p): Argument type
24595 changed.
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.
24605
24606 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
24607
24608 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
24609
24610 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
24611
24612 PR bootstrap/61598
24613 * fold-const.c (fold_checksum_tree): Use a hash_table of const
24614 tree_node * instead of tree_node *.
24615 (fold): Adjust.
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.
24623
24624 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
24625
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
24629 function.
24630 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
24631 Declare.
24632
24633 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
24634
24635 PR tree-optimization/57742
24636 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
24637 after replacing the statement.
24638
24639 2014-06-25 Nick Clifton <nickc@redhat.com>
24640
24641 * config/v850/v850.c (GHS_default_section_names): Change to const
24642 char * type.
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
24646 char*.
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
24650 char * type.
24651 (GHS_current_section_names): Likewise.
24652
24653 2014-06-25 Jakub Jelinek <jakub@redhat.com>
24654
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
24658 has correct type.
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.
24666
24667 2014-06-24 Cong Hou <congh@google.com>
24668
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.
24688
24689 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
24690
24691 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
24692 qualification in cast.
24693
24694 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
24695
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.
24706
24707 2014-06-24 Catherine Moore <clm@codesourcery.com>
24708 Sandra Loosemore <sandra@codesourcery.com>
24709
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.
24713
24714 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
24715
24716 * doc/invoke.texi (Warning Options): Remove duplicated
24717 -Wmaybe-uninitialized.
24718
24719 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
24720
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.
24726
24727 2014-06-24 Jakub Jelinek <jakub@redhat.com>
24728
24729 PR target/61570
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
24732 64-bit support.
24733
24734 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
24735
24736 PR target/61570
24737 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
24738 the last change.
24739
24740 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
24741
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
24744 pointer_map.
24745 * hash-map.h: New file.
24746 * ipa-comdats.c: Use hash_map instead of pointer_map.
24747 * ipa.c: Likewise.
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.
24756
24757 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
24758
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.
24773
24774 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
24775
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.
24801
24802 2014-06-24 Richard Biener <rguenther@suse.de>
24803
24804 PR tree-optimization/61572
24805 * tree-ssa-sink.c (statement_sink_location): Do not sink
24806 loads from hard registers.
24807
24808 2014-06-24 Jakub Jelinek <jakub@redhat.com>
24809
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.
24818
24819 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
24820 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
24821 non-NULL.
24822 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
24823 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
24824 non-NULL.
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
24835 GIMPLE_OMP_TARGET.
24836
24837 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
24838
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
24847 need_eh_cleanup.
24848
24849 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
24850
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):
24855 Stream it.
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.
24865
24866 2014-06-23 Kai Tietz <ktietz@redhat.com>
24867
24868 PR target/39284
24869 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
24870 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
24871
24872 2014-06-23 Richard Biener <rguenther@suse.de>
24873
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
24880 required.
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
24885 SLP vectorizer.
24886
24887 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
24888
24889 PR target/61570
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.
24892
24893 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
24894
24895 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
24896 "yes" where needed.
24897
24898 2014-06-23 Alan Modra <amodra@gmail.com>
24899
24900 PR bootstrap/61583
24901 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
24902 to zero on debug statements.
24903
24904 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
24905
24906 PR target/60825
24907 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
24908 Ignore third operand if present by marking qualifier_internal.
24909
24910 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
24911
24912 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
24913 vector extension.
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
24931
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.
24942
24943 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
24944
24945 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
24946 extensions.
24947
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.
24955
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.
24961
24962 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
24963
24964 PR target/60825
24965 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
24966 V1DFmode.
24967 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
24968 add V1DFmode
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.
24980 (VD1): New.
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.
25001
25002 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
25003
25004 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
25005 vector registers.
25006
25007 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
25008
25009 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
25010 priority directly.
25011
25012 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25013
25014 * loop-invariant.c (pre_check_invariant_p): New function.
25015 (find_invariant_insn): Call pre_check_invariant_p.
25016
25017 2014-06-22 Richard Henderson <rth@redhat.com>
25018
25019 PR target/61565
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
25023 necessary.
25024
25025 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25026
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.
25046
25047 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25048
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".
25055
25056 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25057
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.
25064
25065 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25066
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".
25072
25073 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25074
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".
25081
25082 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25083
25084 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
25085 Remove "O" alternative.
25086
25087 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
25088
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.
25093
25094 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
25095
25096 PR target/61503
25097 * config/i386/i386.md (x86_64_shrd, x86_shrd,
25098 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
25099
25100 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
25101
25102 * config/nios2/nios2.c: Include "builtins.h".
25103
25104 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
25105
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.
25110
25111 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
25112
25113 * ipa-visibility.c (function_and_variable_visibility): Disable
25114 temporarily local aliases for some targets.
25115
25116 2014-06-20 Marek Polacek <polacek@redhat.com>
25117
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
25141 types.
25142 (ubsan_type_descriptor): Change bool parameter to enum
25143 ubsan_print_style. Adjust the code. Add handling of
25144 UBSAN_PRINT_ARRAY.
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.
25153
25154 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
25155
25156 * config/rs6000/rs6000.md: Append `DONE' to preparation
25157 statements of `bswap' pattern splitters.
25158
25159 2014-06-20 Tom de Vries <tom@codesourcery.com>
25160
25161 * target.def (call_fusage_contains_non_callee_clobbers): Update
25162 definition.
25163 * doc/tm.texi: Regenerate.
25164
25165 2014-06-20 Yury Gribov <y.gribov@samsung.com>
25166 Max Ostapenko <m.ostapenko@partner.samsung.com>
25167
25168 PR sanitizer/61547
25169 * asan.c (instrument_strlen_call): Fixed instrumentation of
25170 trailing byte.
25171
25172 2014-06-20 Martin Jambor <mjambor@suse.cz>
25173
25174 PR ipa/61540
25175 * ipa-prop.c (impossible_devirt_target): New function.
25176 (try_make_edge_direct_virtual_call): Use it, also instead of
25177 asserting.
25178
25179 2014-06-20 Yury Gribov <y.gribov@samsung.com>
25180 Max Ostapenko <m.ostapenko@partner.samsung.com>
25181
25182 PR sanitizer/61530
25183 * asan.c (build_check_stmt): Add condition.
25184
25185 2014-06-20 Martin Jambor <mjambor@suse.cz>
25186
25187 PR ipa/61211
25188 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
25189 expanded clones.
25190
25191 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25192
25193 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
25194 Update comments.
25195 (VCONQ): Make comment more helpful.
25196 (VCON): Delete.
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
25211 define_insn.
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.
25260
25261 2014-06-20 Tom de Vries <tom@codesourcery.com>
25262
25263 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
25264 get_call_reg_set_usage.
25265
25266 2014-06-20 Tom de Vries <tom@codesourcery.com>
25267
25268 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
25269 it contains all call_used_regs.
25270
25271 2014-06-20 Tom de Vries <tom@codesourcery.com>
25272
25273 * final.c (collect_fn_hard_reg_usage): Add and use variable
25274 function_used_regs.
25275
25276 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
25277
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):
25301 New methods.
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):
25305 New methods.
25306 * tree-core.h (tree_priority_map): Remove.
25307
25308 2014-06-20 Jakub Jelinek <jakub@redhat.com>
25309
25310 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
25311 0xff to uint64_t before shifting it up.
25312
25313 2014-06-20 Julian Brown <julian@codesourcery.com>
25314 Chung-Lin Tang <cltang@codesourcery.com>
25315
25316 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
25317 TARGET_THUMB1_ONLY. Add comments.
25318
25319 2014-06-19 Tom de Vries <tom@codesourcery.com>
25320
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.
25324
25325 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25326
25327 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
25328 as "move", from depends_on.
25329
25330 2014-06-19 Terry Guo <terry.guo@arm.com>
25331
25332 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
25333 stage.
25334
25335 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
25336
25337 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
25338 Remove cr5.
25339 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
25340
25341 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
25342
25343 PR target/61550
25344 * config/sh/sh.c (prepare_move_operands): Don't process TLS
25345 addresses here if reload in progress or completed.
25346
25347 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
25348
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
25361 classes.
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
25367 allocator used.
25368 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
25369 (*lea64): Disable pattern for MIPS16.
25370 * config/mips/mips.opt (mlra): New option.
25371
25372 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
25373
25374 * lra-constraints.c (base_to_reg): New function.
25375 (process_address): Use new function.
25376
25377 2014-06-18 Tom de Vries <tom@codesourcery.com>
25378
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
25384 of emit_call_insn.
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.
25391
25392 2014-06-18 Radovan Obradovic <robradovic@mips.com>
25393 Tom de Vries <tom@codesourcery.com>
25394
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):
25397 Redefine to true.
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.
25407
25408 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25409
25410 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
25411
25412 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25413
25414 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
25415 __udivmoddi4.
25416
25417 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25418
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.
25422
25423 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25424
25425 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
25426 __udivmoddi4, and fixups for negative operands.
25427
25428 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25429
25430 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
25431
25432 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25433
25434 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
25435 to __udivmoddi4.
25436
25437 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25438
25439 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
25440 manipulation.
25441
25442 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25443
25444 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
25445 describing register usage on function entry and exit.
25446
25447 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25448
25449 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
25450 (__aeabi_ldivmod): Fix whitespace.
25451
25452 2014-06-18 Andreas Schwab <schwab@suse.de>
25453
25454 * doc/md.texi (Standard Names): Use @itemx for grouped items.
25455 Remove blank line after @item.
25456
25457 2014-06-18 Richard Henderson <rth@redhat.com>
25458
25459 PR target/61545
25460 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
25461
25462 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25463
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
25467 stores.
25468
25469 2014-06-18 Richard Biener <rguenther@suse.de>
25470
25471 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
25472
25473 2014-06-18 Richard Biener <rguenther@suse.de>
25474
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.
25488
25489 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
25490
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.
25494
25495 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25496
25497 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
25498
25499 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
25500
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
25504 expression itself.
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
25510 location.
25511 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
25512 signature.
25513
25514 2014-06-18 Andreas Schwab <schwab@suse.de>
25515
25516 PR rtl-optimization/54555
25517 * postreload.c (move2add_use_add2_insn): Substitute
25518 STRICT_LOW_PART only if it is cheaper.
25519
25520 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
25521
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.
25539
25540 2014-06-18 Terry Guo <terry.guo@arm.com>
25541
25542 PR target/61544
25543 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
25544 reach the head.
25545
25546 2014-06-18 Olivier Hainque <hainque@adacore.com>
25547
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
25553 generate.
25554
25555 2014-06-18 Richard Biener <rguenther@suse.de>
25556
25557 * common.opt (fssa-phiopt): New option.
25558 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
25559 but not with -Og.
25560 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
25561 * doc/invoke.texi (-fssa-phiopt): Document.
25562
25563 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25564
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.
25570
25571 2014-06-18 Richard Biener <rguenther@suse.de>
25572
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
25578 we removed a stmt.
25579
25580 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
25581
25582 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
25583 vector case.
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.
25589
25590 2014-06-18 Jakub Jelinek <jakub@redhat.com>
25591
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.
25617
25618 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
25619
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.
25622
25623 2014-06-17 Xinliang David Li <davidxl@google.com>
25624
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.
25628
25629 2014-06-17 Richard Biener <rguenther@suse.de>
25630
25631 * genopinit.c (main): Use vec<>::qsort method.
25632 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
25633 Likewise.
25634 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
25635
25636 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
25637
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.
25644
25645 2014-06-17 Richard Biener <rguenther@suse.de>
25646
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.
25650
25651 2014-06-17 Richard Biener <rguenther@suse.de>
25652
25653 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
25654 and allow all blocks to be forwarders.
25655
25656 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
25657
25658 PR target/61483
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.
25663
25664 2014-06-17 Nick Clifton <nickc@redhat.com>
25665
25666 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
25667 (umulhi3, mulsidi3, umulsidi3): Likewise.
25668
25669 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
25670
25671 PR middle-end/61508
25672 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
25673 check for section name.
25674
25675 2014-06-17 Richard Biener <rguenther@suse.de>
25676
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
25681 poor-mans DCE.
25682 (substitute_and_fold): Apply a dominator walk to perform
25683 substitution. Process stmts scheduled for removal here.
25684
25685 2014-06-17 Richard Biener <rguenther@suse.de>
25686
25687 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
25688 of PHI node moving.
25689
25690 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
25691
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
25697 TARGET_HARD_FLOAT.
25698 (get_fpscr) : Likewise.
25699
25700 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
25701
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.
25706
25707 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
25708
25709 * config/i386/i386.c (decide_alg): Correctly handle
25710 maximum size of stringop algorithm.
25711
25712 2014-06-16 Yury Gribov <y.gribov@samsung.com>
25713
25714 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
25715
25716 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
25717
25718 PR rtl-optimization/61522
25719 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
25720
25721 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
25722
25723 Revert:
25724 * symtab.c (symtab_node::reset_section): New method.
25725 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
25726 for localization.
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
25731 for new symbol.
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
25736 localized symbols.
25737
25738 2014-06-16 Richard Biener <rguenther@suse.de>
25739
25740 PR tree-optimization/61482
25741 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
25742 [-INF(OVF), +INF(OVF)] range.
25743
25744 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
25745
25746 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
25747 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
25748 handling 32-bit multiplication.
25749
25750 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
25751
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.
25755
25756 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
25757
25758 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
25759 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
25760
25761 2014-06-16 Yury Gribov <y.gribov@samsung.com>
25762
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
25769 for new parameter.
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.
25779
25780 2014-06-16 Richard Biener <rguenther@suse.de>
25781
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.
25785
25786 2014-06-18 Jakub Jelinek <jakub@redhat.com>
25787
25788 PR plugins/45078
25789 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
25790
25791 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
25792
25793 PR bootstrap/61516
25794 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
25795 initialization. Replace remaining use of uid.
25796
25797 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
25798
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.
25820
25821 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25822
25823 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
25824
25825 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25826
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
25829 lists.
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
25849 explicitly.
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
25855 pointers.
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
25867 linking.
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
25870 df_null_*_rec.
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
25882 than freeing them.
25883 (df_insn_refs_verify): Don't handle null defs speciailly.
25884 * web.c (union_match_dups): Update for new df_ref linking.
25885
25886 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25887
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.
25891
25892 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25893
25894 * df.h (df_single_def, df_single_use): New functions.
25895 * ira.c (find_moveable_pseudos): Use them.
25896
25897 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25898
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.
25902
25903 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25904
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.
25920
25921 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25922
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.
25972
25973 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
25974
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.
25978
25979 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
25980
25981 PR target/61415
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.
25996
25997 2014-06-13 Jeff Law <law@redhat.com>
25998
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.
26003
26004 2014-06-13 Dehao Chen <dehao@google.com>
26005
26006 * dwarf2out.c (add_linkage_name): Emit more linkage name.
26007
26008 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
26009
26010 * doc/install.texi (--enable-linker-plugin-configure-flags)
26011 (--enable-linker-plugin-flags): Document new flags.
26012
26013 2014-06-13 Martin Jambor <mjambor@suse.cz>
26014
26015 PR ipa/61186
26016 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
26017 cache_token if returning early.
26018
26019 2014-06-13 Nick Clifton <nickc@redhat.com>
26020
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.
26025
26026 2014-06-13 Richard Biener <rguenther@suse.de>
26027
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.
26035
26036 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
26037
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.
26042
26043 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
26044
26045 * symtab.c (symtab_node::reset_section): New method.
26046 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
26047 for localization.
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
26052 for new symbol.
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
26057 localized symbols.
26058
26059 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
26060
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.
26065
26066 2014-06-12 Jakub Jelinek <jakub@redhat.com>
26067
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.
26077
26078 2014-06-12 Jason Merrill <jason@redhat.com>
26079
26080 * common.opt (fabi-version): Change default to 0.
26081
26082 2014-06-12 Jason Merrill <jason@redhat.com>
26083
26084 * toplev.c (process_options): Reject -fabi-version=1.
26085
26086 2014-06-12 Jeff Law <law@redhat.com>
26087
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.
26091
26092 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
26093
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.
26102
26103 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
26104
26105 PR target/59843
26106 * config/aarch64/aarch64-modes.def: Add V1DFmode.
26107 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
26108 Support V1DFmode.
26109
26110 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
26111
26112 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
26113
26114 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
26115
26116 PR target/61443
26117 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
26118 loading from address spaces.
26119
26120 2014-06-12 Martin Liska <mliska@suse.cz>
26121
26122 PR ipa/61462
26123 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
26124 statement is reachable.
26125
26126 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
26127
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):
26176 Update.
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.
26194
26195 2014-06-11 DJ Delorie <dj@redhat.com>
26196
26197 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
26198 cache lines.
26199 * config/rx/rx.c (rx_option_override): Likewise.
26200 (rx_align_for_label): Likewise.
26201
26202 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
26203
26204 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
26205
26206 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
26207 prototype.
26208
26209 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26210
26211 * common.md: New file.
26212 * doc/md.texi: Update description of generic, machine-independent
26213 constraints.
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
26219 common.md.
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.
26243
26244 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26245
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.
26257
26258 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26259
26260 * genpreds.c (const_int_start, const_int_end): New variables.
26261 (choose_enum_order): Output CONST_INT constraints before memory
26262 constraints.
26263 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
26264 Add CT_CONST_INT.
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.
26270
26271 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26272
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.
26276
26277 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26278
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.
26309
26310 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26311
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
26315 an array.
26316 (write_insn_preds_c): Update accordingly.
26317
26318 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26319
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.
26326
26327 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26328
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
26339 accordingly.
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
26343 constraints.
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.
26354
26355 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
26356
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.
26367
26368 2014-06-11 Terry Guo <terry.guo@arm.com>
26369
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.
26403 (movmem8b): 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
26442 file thumb1.md.
26443 * config/arm/thumb1.md: New file comprised of above thumb1 only
26444 patterns.
26445
26446 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26447
26448 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
26449 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
26450 dependencies.
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.
26471
26472 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
26473
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
26477 length 3.
26478 * tree-vect-stmts.c (vect_model_store_cost): Change cost
26479 of vec_perm_shuffle for the new permutations.
26480
26481 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
26482
26483 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
26484 table rewriting temporarily on targets not supporting ONE_ONLY.
26485
26486 2014-06-11 Richard Biener <rguenther@suse.de>
26487
26488 PR middle-end/61437
26489 Revert
26490 2014-06-04 Richard Biener <rguenther@suse.de>
26491
26492 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
26493 TREE_PUBLIC and DECL_EXTERNAL decls.
26494
26495 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
26496
26497 * varasm.c (set_implicit_section): New function.
26498 (resolve_unique_section): Use it to set implicit section
26499 for aliases, too.
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.
26527
26528 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26529
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.
26537
26538 2014-06-10 Jiong Wang <jiong.wang@arm.com>
26539
26540 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
26541 (aarch64_save_or_restore_callee_save_registers): Fix layout.
26542
26543 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26544
26545 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
26546 New expander.
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.
26570
26571 2014-06-10 Richard Biener <rguenther@suse.de>
26572
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.
26580
26581 2014-06-10 Richard Biener <rguenther@suse.de>
26582
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.
26588
26589 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
26590
26591 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
26592 REG_CFA_RESTORE mode.
26593
26594 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
26595
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.
26599
26600 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26601
26602 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
26603 available.
26604 Simplify description of __crc32d and __crc32cd intrinsics.
26605 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
26606 availability.
26607
26608 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
26609
26610 PR lto/61334
26611 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
26612 * config.in: Regenerate.
26613 * configure: Likewise.
26614
26615 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
26616
26617 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
26618 and public vars.
26619 (intersect_static_var_sets): Remove.
26620 (propagate): Do not prune local statics.
26621
26622 2014-06-10 Jakub Jelinek <jakub@redhat.com>
26623
26624 PR fortran/60928
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.
26631
26632 2014-06-10 Marek Polacek <polacek@redhat.com>
26633
26634 PR c/60988
26635 * doc/extend.texi: Add cindex for transparent_union.
26636
26637 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
26638
26639 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
26640 init_symbolic_number ().
26641
26642 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
26643
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.
26648
26649 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
26650
26651 PR c++/54442
26652 * tree.c (build_qualified_type): Use a canonical type for
26653 TYPE_CANONICAL.
26654
26655 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26656
26657 * config/arm/arm-modes.def: Remove XFmode.
26658
26659 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
26660
26661 PR target/61062
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.
26671
26672 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
26673
26674 * tree-core.h (tree_decl_with_vis): Remove section_name.
26675
26676 2014-06-09 Kito Cheng <kito@0xlab.org>
26677
26678 * ira.c (ira): Don't call init_caller_save if LRA enabled
26679 since LRA use its own infrastructure to handle that.
26680
26681 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
26682
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):
26722 Likewise.
26723 (h8300_handle_tiny_data_attribute): Likewise.
26724 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
26725 (bfin_handle_l2_attribute): Likewise.
26726
26727 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
26728
26729 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
26730 remove static initializer.
26731
26732 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
26733
26734 * varasm.c (use_blocks_for_decl_p): Check symbol table
26735 instead of alias attribute.
26736 (place_block_symbol): Recurse on aliases.
26737
26738 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
26739
26740 * ipa-visibility.c: Include varasm.h
26741 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
26742
26743 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
26744
26745 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
26746 outputting aliases.
26747
26748 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
26749
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.
26752
26753 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
26754
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.
26759
26760 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
26761
26762 PR target/61431
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.
26775
26776 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
26777
26778 PR target/61423
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.
26785
26786 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
26787
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.
26791
26792 2014-06-06 Richard Biener <rguenther@suse.de>
26793
26794 PR tree-optimization/59299
26795 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
26796 a def operand.
26797 (nearest_common_dominator_of_uses): Likewise.
26798 (statement_sink_location): Adjust. Support sinking loads.
26799
26800 2014-06-06 Martin Jambor <mjambor@suse.cz>
26801
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.
26807
26808 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
26809
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.
26817
26818 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
26819
26820 * targhooks.c (default_add_stmt_cost): Call target specific
26821 hook instead of default one.
26822
26823 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
26824
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
26828 comments.
26829
26830 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
26831
26832 PR debug/53927
26833 * function.c (instantiate_decls): Process the saved static chain.
26834 (expand_function_start): If not optimizing, save the static chain
26835 onto the stack.
26836 * tree-nested.c (convert_all_function_calls): Always create the static
26837 chain for nested functions if not optimizing.
26838
26839 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
26840
26841 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
26842
26843 2014-06-06 Richard Biener <rguenther@suse.de>
26844
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.
26878
26879 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
26880
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.
26889
26890 2014-06-06 Richard Biener <rguenther@suse.de>
26891
26892 * passes.def: Move 2nd VRP pass before phi-only-cprop.
26893
26894 2014-06-06 Christian Bruel <christian.bruel@st.com>
26895
26896 PR tree-optimization/43934
26897 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
26898 cost.
26899
26900 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
26901
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.
26906
26907 2014-06-06 Alan Modra <amodra@gmail.com>
26908
26909 PR target/61300
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.
26921
26922 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
26923
26924 PR target/52472
26925 * cfgexpand.c (expand_debug_expr): Use address space of nested
26926 TREE_TYPE for ADDR_EXPR and MEM_REF.
26927
26928 2014-06-05 Jeff Law <law@redhat.com>
26929
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.
26941
26942 2014-06-05 Kai Tietz <ktietz@redhat.com>
26943 Richard Henderson <rth@redhat.com>
26944
26945 PR target/46219
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.
26953
26954 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
26955
26956 * tree-inline.c (tree_function_versioning): Check DF info existence
26957 before accessing it.
26958
26959 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
26960
26961 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
26962 frame_size.
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.
26970
26971 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
26972 Jiong Wang <jiong.wang@arm.com>
26973 Renlin <renlin.li@arm.com>
26974
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.
26978
26979 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
26980 Jiong Wang <jiong.wang@arm.com>
26981
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.
26985
26986 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
26987
26988 * config/aarch64/aarch64.h (machine_function): Move
26989 saved_varargs_size from here...
26990 (aarch64_frame): ... to here.
26991
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.
26997
26998 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
26999
27000 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
27001 layout comment.
27002
27003 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
27004 Prachi Godbole <Prachi.Godbole@imgtec.com>
27005
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.
27020
27021 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
27022
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.
27026
27027 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
27028
27029 PR tree-optimization/61319
27030 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
27031 stmt belongs to loop.
27032
27033 2014-06-05 Richard Biener <rguenther@suse.de>
27034
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.
27039
27040 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27041
27042 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
27043
27044 2014-06-05 Marek Polacek <polacek@redhat.com>
27045
27046 PR c/49706
27047 * doc/invoke.texi: Document -Wlogical-not-parentheses.
27048
27049 2014-06-04 Tom de Vries <tom@codesourcery.com>
27050
27051 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
27052 CONST_INT.
27053
27054 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
27055
27056 PR tree-optimization/61385
27057 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
27058
27059 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
27060
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.
27064
27065 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27066
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.
27072
27073 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27074
27075 * lra-int.h (lra_static_insn_data): Make operand_alternative a
27076 const pointer.
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
27088 insn data.
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.
27097
27098 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27099
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
27116 pointer const.
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
27129 const.
27130
27131 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27132
27133 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
27134 * ira-lives.c (check_and_make_def_conflict): Check for disabled
27135 alternatives.
27136 (make_early_clobber_and_input_conflicts): Likewise.
27137 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
27138
27139 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27140
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
27151 accordingly.
27152
27153 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27154
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
27160 other way around.
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.
27171
27172 2014-06-04 Jason Merrill <jason@redhat.com>
27173
27174 PR c++/51253
27175 PR c++/61382
27176 * gimplify.c (gimplify_arg): Non-static.
27177 * gimplify.h: Declare it.
27178
27179 2014-06-04 Richard Biener <rguenther@suse.de>
27180
27181 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
27182 TREE_PUBLIC and DECL_EXTERNAL decls.
27183
27184 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
27185
27186 * regcprop.c (copyprop_hardreg_forward_1): Account for
27187 HARD_REGNO_CALL_PART_CLOBBERED.
27188
27189 2014-06-04 Richard Biener <rguenther@suse.de>
27190
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.
27197
27198 2014-06-04 Richard Biener <rguenther@suse.de>
27199
27200 PR tree-optimization/60098
27201 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
27202 we hit a kill.
27203 (dse_optimize_stmt): Simplify, now that we found a kill
27204 earlier.
27205
27206 2014-06-04 Richard Biener <rguenther@suse.de>
27207
27208 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
27209 of accesses with non-invariant address.
27210
27211 2014-06-04 Martin Liska <mliska@suse.cz>
27212
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.
27217
27218 2014-06-04 Martin Liska <mliska@suse.cz>
27219
27220 * tree.h (private_lookup_attribute_starting): New function.
27221 (lookup_attribute_starting): Likewise.
27222 * tree.c (private_lookup_attribute_starting): Likewise.
27223
27224 2014-06-04 Martin Liska <mliska@suse.cz>
27225
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.
27233
27234 2014-06-04 Martin Liska <mliska@suse.cz>
27235
27236 * coverage.h (coverage_compute_cfg_checksum): Argument added.
27237 * coverage.c (coverage_compute_cfg_checksum): Likewise.
27238 * profile.c (branch_prob): Likewise.
27239
27240 2014-06-04 Martin Jambor <mjambor@suse.cz>
27241
27242 PR ipa/61340
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.
27246
27247 2014-06-04 Kai Tietz <ktietz@redhat.com>
27248
27249 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
27250 from old call-instruction.
27251
27252 2014-06-04 Bin Cheng <bin.cheng@arm.com>
27253
27254 * config/aarch64/aarch64.c (aarch64_classify_address)
27255 (aarch64_legitimize_reload_address): Support full addressing modes
27256 for vector modes.
27257 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
27258 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
27259
27260 2014-06-03 Andrew Pinski <apinski@cavium.com>
27261
27262 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
27263 for OP0.
27264
27265 2014-06-03 Andrew Pinski <apinski@cavium.com>
27266
27267 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
27268 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
27269
27270 2014-06-03 Kai Tietz <ktietz@redhat.com>
27271
27272 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
27273 for 64-bit ms-abi.
27274
27275 2014-06-03 Dehao Chen <dehao@google.com>
27276
27277 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
27278 the same loop.
27279
27280 2014-06-03 Marek Polacek <polacek@redhat.com>
27281
27282 PR c/60439
27283 * doc/invoke.texi: Document -Wswitch-bool.
27284 * function.c (stack_protect_epilogue): Cast controlling expression of
27285 the switch to int.
27286 * gengtype.c (walk_type): Generate switch expression with its
27287 controlling expression cast to int.
27288
27289 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
27290
27291 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
27292 and attiny841.
27293 * config/avr/avr-tables.opt: Regenerate.
27294 * config/avr/t-multilib: Regenerate.
27295 * doc/avr-mmcu.texi: Regenerate.
27296
27297 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
27298 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
27299
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.
27307
27308 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
27309
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.
27326
27327 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
27328
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.
27363
27364 2014-06-03 Teresa Johnson <tejohnson@google.com>
27365
27366 * tree-sra.c (modify_function): Record caller nodes after rebuild.
27367
27368 2014-06-02 Jason Merrill <jason@redhat.com>
27369
27370 PR c++/61020
27371 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
27372
27373 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
27374
27375 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
27376 location == 0.
27377
27378 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
27379
27380 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
27381 New pattern.
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.
27395
27396 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
27397
27398 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
27399 mips64r5.
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
27410 and mips64r5.
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.
27421
27422 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
27423
27424 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
27425 options.
27426 * config/mips/mips.opt (mxpa): New option.
27427 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
27428 assembler.
27429
27430 2014-06-03 Martin Jambor <mjambor@suse.cz>
27431
27432 PR ipa/61160
27433 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
27434 thunks.
27435
27436 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
27437
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.
27446
27447 2014-06-03 Richard Biener <rguenther@suse.de>
27448
27449 PR tree-optimization/61383
27450 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
27451 stmts can't trap.
27452
27453 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
27454
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
27459 in this file.
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.
27474
27475 2014-06-02 Andrew Pinski <apinski@cavium.com>
27476
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.
27485
27486 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
27487
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
27496 to tree.c.
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
27503 from builtins.c.
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.
27581
27582 2014-06-02 Jeff Law <law@redhat.com>
27583
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.
27588
27589 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
27590
27591 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
27592
27593 2014-06-02 Richard Henderson <rth@redhat.com>
27594
27595 PR target/61336
27596 * config/alpha/alpha.c (print_operand_address): Allow symbolic
27597 addresses inside asms. Use output_operand_lossage instead of
27598 gcc_unreachable.
27599
27600 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
27601
27602 PR target/61239
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.
27605
27606 2014-06-02 Tom de Vries <tom@codesourcery.com>
27607
27608 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
27609 case that x has VOIDmode.
27610
27611 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
27612
27613 * varasm.c (copy_constant): Delete function.
27614 (build_constant_desc): Don't call it.
27615
27616 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27617
27618 PR target/61154
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.
27622
27623 2014-06-02 Andreas Schwab <schwab@suse.de>
27624
27625 * config/ia64/ia64.c
27626 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
27627 pending_data_specs first.
27628
27629 2014-06-02 Richard Biener <rguenther@suse.de>
27630
27631 PR tree-optimization/61378
27632 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
27633 valueized_anything.
27634
27635 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
27636
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.
27640
27641 2014-06-01 Kai Tietz <ktietz@redhat.com>
27642
27643 PR target/61377
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.
27647
27648 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
27649
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
27652 early clobber.
27653
27654 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
27655
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
27668 VUNSPEC_SET_FPSCR.
27669 * doc/extend.texi (AARCH64 Built-in Functions) : Document
27670 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
27671
27672 2014-05-30 Jakub Jelinek <jakub@redhat.com>
27673
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.
27679
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
27683 HOST_WIDE_INT.
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
27689 two.
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.
27695
27696 2014-05-30 Kai Tietz <ktietz@redhat.com>
27697
27698 PR target/60104
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
27702 to its use.
27703 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
27704 (sibcall_insn_operand): Add check for sibcall_memory_operand.
27705
27706 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
27707
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.
27712
27713 2014-05-30 Ian Lance Taylor <iant@google.com>
27714
27715 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
27716 target("sse").
27717
27718 2014-05-30 Tom de Vries <tom@codesourcery.com>
27719
27720 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
27721 Redefine as true.
27722
27723 2014-05-30 Tom de Vries <tom@codesourcery.com>
27724
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
27729 -fuse-caller-save.
27730 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
27731 -fuse-caller-save.
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.
27735
27736 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27737
27738 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
27739 to mov_imm.
27740 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
27741
27742 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
27743
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.
27747
27748 2014-05-29 Mike Stump <mikestump@comcast.net>
27749
27750 PR debug/61352
27751 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
27752 post ld passes when lto is used.
27753
27754 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
27755
27756 PR rtl-optimization/61325
27757 * lra-constraints.c (process_address): Rename to process_address_1.
27758 (process_address): New function.
27759
27760 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
27761
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):
27765 New builtin.
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
27769 patterns for EXT.
27770 (aarch64_evpc_ext): New function.
27771
27772 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
27773
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.
27779
27780 2014-05-29 Tom de Vries <tom@codesourcery.com>
27781
27782 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
27783
27784 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
27785 Richard Sandiford <rdsandiford@googlemail.com>
27786
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'.
27796
27797 2014-05-29 Radovan Obradovic <robradovic@mips.com>
27798 Tom de Vries <tom@codesourcery.com>
27799
27800 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
27801 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
27802 clobber.
27803 (mips_split_call): Use POST_CALL_TMP_REG.
27804 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
27805
27806 2014-05-29 Tom de Vries <tom@codesourcery.com>
27807
27808 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
27809 with #ifdef STACK_REGS.
27810
27811 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
27812
27813 * varasm.c (get_variable_section): Walk aliases.
27814 (place_block_symbol): Walk aliases.
27815
27816 2014-05-28 Tom de Vries <tom@codesourcery.com>
27817
27818 Revert:
27819 2014-05-28 Tom de Vries <tom@codesourcery.com>
27820
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
27825 -fuse-caller-save.
27826 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
27827 -fuse-caller-save.
27828 * lra-constraints.c (need_for_call_save_p): Use
27829 actual_call_used_reg_set instead of call_used_reg_set for
27830 -fuse-caller-save.
27831 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
27832
27833 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
27834
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
27843 duplicate '='s.
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.
27854
27855 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
27856
27857 * doc/md.texi: Document the restrictions on the "enabled" attribute.
27858
27859 2014-05-28 Jason Merrill <jason@redhat.com>
27860
27861 PR c++/47202
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.
27869
27870 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
27871
27872 PR bootstrap/PR61146
27873 * wide-int.cc: Do not include longlong.h when compiling with clang.
27874
27875 2014-05-28 Richard Biener <rguenther@suse.de>
27876
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.
27883
27884 2014-05-28 Richard Biener <rguenther@suse.de>
27885
27886 Revert
27887 2014-05-28 Richard Biener <rguenther@suse.de>
27888
27889 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
27890
27891 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
27892
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.
27896
27897 2014-05-28 Richard Biener <rguenther@suse.de>
27898
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.
27903
27904 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
27905
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
27909 to the assembler.
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
27915 option for RL78.
27916
27917 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27918
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
27931 -mclear-hwcap.
27932
27933 2014-05-28 Richard Biener <rguenther@suse.de>
27934
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.
27939
27940 2014-05-28 Richard Biener <rguenther@suse.de>
27941
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.
27945
27946 2014-05-28 Olivier Hainque <hainque@adacore.com>
27947
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.
27952
27953 2014-05-28 Tom de Vries <tom@codesourcery.com>
27954
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
27959 -fuse-caller-save.
27960 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
27961 -fuse-caller-save.
27962 * lra-constraints.c (need_for_call_save_p): Use
27963 actual_call_used_reg_set instead of call_used_reg_set for
27964 -fuse-caller-save.
27965 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
27966
27967 2014-05-28 Radovan Obradovic <robradovic@mips.com>
27968 Tom de Vries <tom@codesourcery.com>
27969
27970 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
27971 to gccoptlist.
27972 (@item -fuse-caller-save): New item.
27973
27974 2014-05-28 Radovan Obradovic <robradovic@mips.com>
27975 Tom de Vries <tom@codesourcery.com>
27976
27977 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
27978 OPT_fuse_caller_save.
27979
27980 2014-05-28 Radovan Obradovic <robradovic@mips.com>
27981 Tom de Vries <tom@codesourcery.com>
27982
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
27989 field.
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.
28001
28002 2014-05-28 Radovan Obradovic <robradovic@mips.com>
28003 Tom de Vries <tom@codesourcery.com>
28004
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.
28013
28014 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
28015
28016 PR libgcc/61152
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.
28024
28025 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
28026
28027 PR target/61044
28028 * doc/extend.texi (Local Labels): Note that label differences are
28029 not supported for AVR.
28030
28031 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
28032 Olivier Hainque <hainque@adacore.com>
28033
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
28038
28039 2014-05-27 Andrew Pinski <apinski@cavium.com>
28040
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.
28046
28047 2014-05-27 DJ Delorie <dj@redhat.com>
28048
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.
28056
28057 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
28058
28059 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
28060
28061 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
28062 predicate to detect a negative quotient.
28063
28064 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
28065
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.
28070
28071 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
28072
28073 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
28074 before printing.
28075
28076 2014-05-27 Steve Ellcey <sellcey@mips.com>
28077
28078 * config/mips/mips.c: Add include of cgraph.h.
28079
28080 2014-05-27 Richard Biener <rguenther@suse.de>
28081
28082 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
28083
28084 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
28085
28086 PR libgcc/61152
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.
28099
28100 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28101
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.
28110
28111 2014-05-27 Richard Biener <rguenther@suse.de>
28112
28113 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
28114 Try using literal operands when comparing value-ranges failed.
28115
28116 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
28117
28118 * ira.c (commutative_operand): Adjust for change to recog_data.
28119 [Missing from previous commit.]
28120
28121 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
28122
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
28136 recog_data.
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.
28159
28160 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
28161
28162 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
28163 rather than any named insn's code.
28164
28165 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
28166
28167 PR libgcc/61152
28168 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
28169 * config/arm/arm-cores.def (License): Same.
28170
28171 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
28172
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.
28176
28177 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
28178
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.
28182
28183 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
28184
28185 PR target/61271
28186 * config/i386/i386.c (ix86_rtx_costs)
28187 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
28188 Fix condition.
28189
28190 2014-05-26 Martin Jambor <mjambor@suse.cz>
28191
28192 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
28193 subreg uses.
28194
28195 2014-05-26 Richard Biener <rguenther@suse.de>
28196
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.
28202
28203 2014-05-26 Alan Modra <amodra@gmail.com>
28204
28205 PR target/61098
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
28215 prototype.
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.
28219
28220 2014-05-26 Richard Biener <rguenther@suse.de>
28221
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
28249 for calculation.
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
28275 and adjust users.
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
28286 for computation.
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.
28298
28299 2014-05-26 Richard Biener <rguenther@suse.de>
28300
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.
28312
28313 2014-05-26 Michael Tautschnig <mt@debian.org>
28314
28315 PR target/61249
28316 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
28317 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
28318
28319 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
28320
28321 PR rtl-optimization/61278
28322 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
28323
28324 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
28325
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.
28330
28331 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28332
28333 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
28334 for variables.
28335
28336 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28337
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.
28342
28343 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28344
28345 * ggc.h (ggc_grow): New function.
28346 * ggc-none.c (ggc_grow): New function.
28347 * ggc-page.c (ggc_grow): Likewise.
28348
28349 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28350
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
28364
28365 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28366
28367 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
28368 that var decl is available.
28369
28370 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28371
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
28401 and 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):
28407 Update.
28408 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
28409 comdat group name.
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
28413 comdat groups.
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.
28418
28419 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28420
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.
28425
28426 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28427
28428 * sched-int.h (sd_iterator_cond): Manually tail recurse.
28429
28430 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28431
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
28436 without dot.
28437 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
28438 without dot.
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.
28456
28457 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28458
28459 * config/rs6000/rs6000.md (type): Add "logical". Delete
28460 "fast_compare".
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.
28470
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):
28490 Adjust.
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.
28496
28497 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28498
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.
28504
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):
28525 Adjust.
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.
28530
28531 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28532
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.
28562
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.
28587 Adjust comment.
28588 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
28589 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
28590
28591 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28592
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.
28600
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.
28626
28627 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28628
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.
28637
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.
28661
28662 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28663
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.
28676
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):
28687 Adjust.
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.
28706
28707 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
28708 rs64a-lmul): Adjust.
28709 * config/rs6000/titan.md (titan_imul): Adjust.
28710
28711 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28712
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.
28725
28726 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28727
28728 * config/rs6000/rs6000.md (type): Reorder, reformat.
28729
28730 2014-05-23 Martin Jambor <mjambor@suse.cz>
28731
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
28757 declarations down.
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
28761 node and info.
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.
28773
28774 2014-05-23 Marek Polacek <polacek@redhat.com>
28775 Jakub Jelinek <jakub@redhat.com>
28776
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.
28793
28794 2014-05-23 Jiong Wang <jiong.wang@arm.com>
28795
28796 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
28797 predicate.
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
28802 register class.
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.
28807
28808 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
28809
28810 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
28811 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
28812
28813 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
28814 gsi, and variables v_* to v*.
28815
28816 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
28817
28818 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
28819
28820 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
28821
28822 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
28823 * omp-low.c: Update accordingly.
28824
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.
28831
28832 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
28833 Explicitly enumerate the expected region types.
28834
28835 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
28836
28837 PR other/56955
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.
28841
28842 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
28843
28844 Fix bootstrap error on ia64
28845 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
28846 Return default value.
28847
28848 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
28849
28850 PR tree-optimization/54733
28851 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
28852 (CMPNOP): Define.
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
28859 endianness.
28860 (execute_optimize_bswap): Likewise. Also move its leading comment back
28861 in place and split statement transformation into ...
28862 (bswap_replace): This.
28863
28864 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
28865
28866 PR rtl-optimization/61215
28867 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
28868 simplify_gen_subreg until final substitution.
28869
28870 2014-05-23 Alan Modra <amodra@gmail.com>
28871
28872 PR target/61231
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".
28876
28877 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
28878
28879 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
28880 define.
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.
28902
28903 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
28904
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.
28908
28909 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
28910
28911 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
28912
28913 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
28914
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".
28924
28925 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
28926
28927 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
28928
28929 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
28930
28931 PR target/61208
28932 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
28933
28934 2014-05-22 Nick Clifton <nickc@redhat.com>
28935
28936 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
28937
28938 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
28939
28940 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
28941 -> (T)A transformation to integer types.
28942
28943 2014-05-22 Teresa Johnson <tejohnson@google.com>
28944
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
28961
28962 2014-05-22 Richard Biener <rguenther@suse.de>
28963
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
28973 call return flags.
28974
28975 2014-05-22 Jakub Jelinek <jakub@redhat.com>
28976
28977 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
28978 all padding bits in REAL_VALUE_TYPE are cleared.
28979
28980 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
28981
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
28991 hook definition.
28992 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
28993 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
28994 values.
28995 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
28996 return values.
28997 * doc/tm.texi: Regenerate.
28998 * doc/tm.texi.in
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.
29004
29005 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
29006
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.
29018
29019 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
29020
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.
29030
29031 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
29032
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.
29041
29042
29043 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
29044
29045 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
29046 to GENERAL_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.
29053
29054 2014-05-21 Guozhi Wei <carrot@google.com>
29055
29056 PR target/61202
29057 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
29058 constraint.
29059 (vqdmulhq_n_s16): Likewise.
29060
29061 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
29062
29063 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
29064
29065 2014-05-21 Marek Polacek <polacek@redhat.com>
29066
29067 PR sanitizer/61272
29068 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
29069
29070 2014-05-21 Martin Jambor <mjambor@suse.cz>
29071
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.
29075
29076 2014-05-21 Mark Wielaard <mjw@redhat.com>
29077
29078 PR debug/16063
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.
29089
29090 2014-05-21 Richard Biener <rguenther@suse.de>
29091
29092 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
29093
29094 2014-05-21 John Marino <gnugcc@marino.st>
29095
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.
29104
29105 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
29106
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.
29113
29114 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
29115
29116 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
29117 functions.
29118 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
29119
29120 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
29121 more places.
29122
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.
29126
29127 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
29128
29129 PR target/54236
29130 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
29131 constraints.
29132 (*addc_r_t): Add new insn_and_split.
29133
29134 2014-05-21 Jakub Jelinek <jakub@redhat.com>
29135
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.
29141
29142 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
29143
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.
29151
29152 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
29153
29154 PR bootstrap/60984
29155 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
29156 parameter.
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
29159 are removed.
29160
29161 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
29162
29163 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
29164 set writeonly flag only for vars actually written to.
29165
29166 2014-05-20 Dehao Chen <dehao@google.com>
29167
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.
29172
29173 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
29174
29175 PR rtl-optimization/61243
29176 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
29177
29178 2014-05-20 Xinliang David Li <davidxl@google.com>
29179
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.
29189
29190 2014-05-20 DJ Delorie <dj@redhat.com>
29191
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.
29196
29197 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
29198
29199 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
29200 symbols.
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):
29208 Likewise.
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.
29218
29219 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
29220
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.
29226
29227 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29228
29229 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
29230 nested VEC_SELECTs that are inverses of each other.
29231
29232 2014-05-20 Richard Biener <rguenther@suse.de>
29233
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.
29239
29240 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29241
29242 * config/arm/arm.md (arith_shiftsi): Do not predicate for
29243 arm_restrict_it.
29244
29245 2014-05-20 Nick Clifton <nickc@redhat.com>
29246
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)).
29250
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.
29254
29255 2014-05-20 Richard Biener <rguenther@suse.de>
29256
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.
29268
29269 2014-05-20 Richard Biener <rguenther@suse.de>
29270
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
29274 it to be true.
29275 * config.in: Regenerate.
29276 * configure: Likewise.
29277
29278 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
29279
29280 * doc/extend.texi: Create Label Attributes section,
29281 move all label attributes into it and reference it.
29282
29283 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
29284
29285 * arm.c (thumb1_reorg): When scanning backwards skip anything
29286 that's not a proper insn.
29287
29288 2014-05-19 Richard Biener <rguenther@suse.de>
29289
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.
29295
29296 2014-05-19 Richard Biener <rguenther@suse.de>
29297
29298 PR tree-optimization/61209
29299 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
29300
29301 2014-05-19 Nick Clifton <nickc@redhat.com>
29302
29303 * except.c (init_eh): Fix computation of builtin setjmp buffer
29304 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
29305
29306 2014-05-19 Richard Biener <rguenther@suse.de>
29307
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.
29315
29316 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
29317
29318 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
29319 shift simplification where it was intended.
29320
29321 2014-05-19 Christian Bruel <christian.bruel@st.com>
29322
29323 PR target/61195
29324 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
29325
29326 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
29327
29328 PR target/61084
29329 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
29330 than wide_int.
29331
29332 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
29333
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.
29356
29357 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
29358
29359 * tree.h: Remove extraneous template <>.
29360
29361 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
29362
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.
29370
29371 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
29372
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.
29378
29379 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
29380
29381 * ipa.c (update_visibility_by_resolution_info): New function.
29382 (function_and_variable_visibility): Use it.
29383
29384 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
29385
29386 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
29387 New functions.
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):
29391 Fix comments.
29392 (symtab_in_same_comdat_p): Correctly deal with inline functions.
29393
29394 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
29395
29396 * ggc-page.c (ggc_handle_finalizers): Add comment.
29397
29398 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
29399
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
29408 allocated.
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
29412 finalizer.
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.
29421
29422 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
29423
29424 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
29425
29426 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
29427
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.
29546 (main): Adjust.
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.
29616
29617 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
29618
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.
29655
29656 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
29657
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.
29667
29668 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
29669
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.
29674
29675 * config/microblaze/microblaze-protos.h
29676 (microblaze_break_function_p,microblaze_is_break_handler):
29677 New Declaration.
29678
29679 * doc/extend.texi (MicroBlaze break_handler Functions): Document
29680 new MicroBlaze break_handler functions.
29681
29682 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
29683
29684 * doc/extend.texi (Size of an asm): Move node text according
29685 to its @menu entry position.
29686
29687 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
29688
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.
29693
29694 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
29695
29696 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
29697
29698 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
29699
29700 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
29701 __SIZEOF_INT128__ is defined.
29702
29703 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
29704
29705 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
29706 (rs6000_delegitimize_address): Use it.
29707
29708 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
29709
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.
29721
29722 2014-05-16 Dehao Chen <dehao@google.com>
29723
29724 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
29725
29726 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
29727
29728 PR target/54089
29729 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
29730 patterns.
29731 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
29732
29733 2014-05-16 Dehao Chen <dehao@google.com>
29734
29735 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
29736 optimize_function_for_size_p.
29737 * regs.h (REG_FREQ_FROM_BB): Likewise.
29738
29739 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
29740
29741 PR target/51244
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
29745 predicate.
29746 * config/sh/predicates.md (cbranch_treg_value): Simplify.
29747
29748 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
29749
29750 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
29751 target variants.
29752
29753 2014-05-16 David Malcolm <dmalcolm@redhat.com>
29754
29755 Revert:
29756 2014-04-29 David Malcolm <dmalcolm@redhat.com>
29757
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.
29761
29762 2014-05-16 Dehao Chen <dehao@google.com>
29763
29764 * cfghooks.c (make_forwarder_block): Use direct computation to
29765 get fall-through edge's count and frequency.
29766
29767 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
29768
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.
29774
29775 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
29776
29777 * ira-costs.c: Fix typo in comment.
29778
29779 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
29780
29781 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
29782
29783 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
29784
29785 * varpool.c (dump_varpool_node): Dump write-only flag.
29786 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
29787 write-only flag.
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.
29797
29798 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
29799
29800 PR rtl-optimization/60969
29801 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
29802 Calculate costs for this case.
29803
29804 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
29805
29806 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
29807 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
29808
29809 2014-05-16 Richard Biener <rguenther@suse.de>
29810
29811 PR tree-optimization/61194
29812 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
29813 bool patterns ending in a COND_EXPR.
29814
29815 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29816
29817 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
29818
29819 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29820
29821 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
29822 where we were unable to cost an RTX.
29823
29824 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29825
29826 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
29827 HIGH, LO_SUM.
29828
29829 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29830 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29831
29832 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
29833
29834 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29835 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29836
29837 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
29838 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
29839
29840 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29841 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29842
29843 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
29844 operators.
29845
29846 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29847 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29848
29849 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
29850 DIV/MOD.
29851
29852 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29853 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29854
29855 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
29856 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
29857
29858 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29859 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29860
29861 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
29862 rotates and shifts.
29863
29864 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29865 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29866
29867 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
29868 ZERO_EXTEND and SIGN_EXTEND better.
29869
29870 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29871 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29872
29873 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
29874 logical operations.
29875
29876 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29877 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29878
29879 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
29880 costs when costing loads and stores to memory.
29881
29882 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29883 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
29884
29885 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
29886 for SET RTX.
29887
29888 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29889
29890 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
29891
29892 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29893 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29894
29895 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
29896 to...
29897 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
29898 well formed.
29899 (aarch64_rtx_mult_cost): New.
29900 (aarch64_rtx_costs): Use it, refactor as appropriate.
29901
29902 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29903 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29904
29905 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
29906 emit instructions, return number of instructions which would
29907 be emitted.
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
29911 a CONST_DOUBLE.
29912
29913 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29914
29915 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
29916 (TARGET_RTX_COSTS): Call it.
29917
29918 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29919
29920 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
29921 (cortexa57_vector_cost): Likewise.
29922 (cortexa57_tunings): Use them.
29923
29924 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29925
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,
29930 move it.
29931
29932 2014-05-16 Richard Biener <rguenther@suse.de>
29933
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.
29945
29946 2014-05-16 Richard Biener <rguenther@suse.de>
29947
29948 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
29949
29950 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
29951
29952 PR target/61193
29953 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
29954 (__TM_simple_begin): Use it.
29955 (__TM_begin): Likewise.
29956
29957 2014-05-15 Martin Jambor <mjambor@suse.cz>
29958
29959 PR ipa/61085
29960 * ipa-prop.c (update_indirect_edges_after_inlining): Check
29961 type_preserved flag when the indirect edge is polymorphic.
29962
29963 2014-05-15 Martin Jambor <mjambor@suse.cz>
29964
29965 PR tree-optimization/61090
29966 * tree-sra.c (sra_modify_expr): Pass the current gsi to
29967 build_ref_for_model.
29968
29969 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29970
29971 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
29972 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
29973
29974 2014-05-15 Jakub Jelinek <jakub@redhat.com>
29975
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.
29980
29981 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
29982
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.
29990
29991 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
29992
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.
29999
30000 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
30001
30002 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
30003 Delete.
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.
30023
30024 2014-05-14 Cary Coutant <ccoutant@google.com>
30025
30026 PR debug/61013
30027 * opts.c (common_handle_option): Don't special-case "-g".
30028 (set_debug_level): Default to at least level 2 with "-g".
30029
30030 2014-05-14 DJ Delorie <dj@redhat.com>
30031
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
30040 HOST_WIDE_INT.
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().
30051
30052 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
30053
30054 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
30055 length attribute computation.
30056
30057 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
30058
30059 PR debug/61188
30060 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
30061
30062 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
30063
30064 PR target/61084
30065 * config/sparc/sparc.md: Fix types of low and high in DI constant
30066 splitter. Use gen_int_mode in some other splitters.
30067
30068 2014-05-14 Martin Jambor <mjambor@suse.cz>
30069
30070 PR ipa/60897
30071 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
30072
30073 2014-05-14 James Norris <jnorris@codesourcery.com>
30074
30075 * omp-low.c (expand_parallel_call): Remove shadow variable.
30076 (expand_omp_taskreg): Likewise.
30077
30078 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
30079
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,
30099 -mno-clflushopt.
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.
30127 (ANY_XRSTOR): New.
30128 (ANY_XRSTOR64): Ditto.
30129 (xrstor): Ditto.
30130 (xrstor): Change into <xrstor>.
30131 (xrstor_rex64): Change into <xrstor>_rex64.
30132 (xrstor64): Change into <xrstor>64
30133 (clflushopt): New.
30134 * config/i386/i386.opt (mclflushopt): New.
30135 (mxsavec): Ditto.
30136 (mxsaves): Ditto.
30137 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
30138 xsavecintrin.h.
30139 * doc/invoke.texi: Document new options.
30140
30141 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
30142
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.
30153
30154 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
30155
30156 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
30157 shifted values to avoid build warning.
30158
30159 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
30160
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.
30165
30166 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
30167
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.
30171
30172 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
30173
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.
30181
30182 2014-05-13 Cary Coutant <ccoutant@google.com>
30183
30184 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
30185
30186 2014-05-13 David Malcolm <dmalcolm@redhat.com>
30187
30188 * gengtype-parse.c (require3): Eliminate in favor of...
30189 (require4): New.
30190 (require_template_declaration): Update to support optional single *
30191 on a type.
30192
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.
30209
30210 * gengtype.h (enum write_types_kinds): New.
30211 (struct type): Add field wrote_user_func_for_ptr to the "s"
30212 union member.
30213
30214 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
30215
30216 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
30217 instead of const_binop.
30218 (fold_binary_loc): Likewise.
30219
30220 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
30221
30222 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
30223 calculation to match get_ref_base_and_extent.
30224
30225 2014-05-13 Catherine Moore <clm@codesourcery.com>
30226 Sandra Loosemore <sandra@codesourcery.com>
30227
30228 * configure.ac: Fix assembly for explicit JALR relocation check.
30229 * configure: Regenerate.
30230
30231 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30232
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.
30242
30243 2014-05-13 Richard Biener <rguenther@suse.de>
30244
30245 PR ipa/60973
30246 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
30247 it needs revisiting whether the call still may be tail-called.
30248
30249 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30250
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.
30262
30263 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30264
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.
30272
30273 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30274
30275 * rtl.def (scratch): Fix outdated comment and remove "0" field.
30276 * gengtype.c (adjust_field_rtx_def): Update accordingly.
30277
30278 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30279
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.
30302
30303 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30304
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.
30313
30314 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30315
30316 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
30317 GENERATOR_FILE.
30318
30319 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30320
30321 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
30322
30323 2014-05-13 Bin Cheng <bin.cheng@arm.com>
30324
30325 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
30326 (alloc_iv): Lower base expressions containing ADDR_EXPR.
30327
30328 2014-05-13 Ian Bolton <ian.bolton@arm.com>
30329
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):
30333 New function.
30334 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
30335
30336 2014-05-13 Christian Bruel <christian.bruel@st.com>
30337
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):
30359 Delete.
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):
30367 Likewise.
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.
30371
30372 2014-05-13 Jakub Jelinek <jakub@redhat.com>
30373
30374 PR target/61060
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
30377 it is always true.
30378
30379 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
30380
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
30390 shrink-wrap.h
30391 * shrink-wrap.c: New file.
30392 * shrink-wrap.h: New file.
30393
30394 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
30395
30396 * doc/extend.texi: Reflect current numbers of pragmas. Remove
30397 reference to Solaris.
30398
30399 2014-05-12 Mike Stump <mikestump@comcast.net>
30400
30401 PR other/31778
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.
30406
30407 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
30408
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
30412 -Wshadow-ivar.
30413
30414 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
30415
30416 * doc/tm.texi: Remove reference to deleted macro.
30417 * doc/tm.texi.in: Likewise.
30418
30419 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
30420
30421 PR target/60991
30422 * config/avr/avr.c (avr_out_store_psi): Use correct constant
30423 to restore Y.
30424
30425 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
30426
30427 PR libgcc/61152
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.
30438
30439 2014-05-11 Jakub Jelinek <jakub@redhat.com>
30440
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
30452 needed.
30453
30454 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
30455
30456 PR tree-optimization/61136
30457 * wide-int.h (multiple_of_p): Define a version that doesn't return
30458 the quotient.
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
30462 precision.
30463
30464 2014-05-09 Teresa Johnson <tejohnson@google.com>
30465
30466 * cgraphunit.c (analyze_functions): Use correct dump file.
30467
30468 2014-05-09 Florian Weimer <fweimer@redhat.com>
30469
30470 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
30471 expand_used_vars.
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.
30475
30476 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
30477 Andrew Haley <aph@redhat.com>
30478 Richard Sandiford <rdsandiford@googlemail.com>
30479
30480 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
30481 pages.
30482
30483 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
30484
30485 PR middle-end/61111
30486 * fold-const.c (fold_binary_loc): Changed width of mask.
30487
30488 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
30489
30490 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
30491 unsigned int initializers for regno_in, regno_out.
30492
30493 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
30494
30495 PR target/61055
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.
30503
30504 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30505
30506 Revert:
30507 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30508
30509 * wide-int.cc (UTItype): Define.
30510 (UDWtype): Define for appropriate W_TYPE_SIZE.
30511
30512 2014-05-09 Richard Biener <rguenther@suse.de>
30513
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.
30519
30520 2014-05-08 Jeff Law <law@redhat.com>
30521
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.
30529
30530 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
30531 Matthias Klose <doko@ubuntu.com>
30532
30533 PR driver/61106
30534 * optc-gen.awk: Fix option handling for -Wunused-parameter.
30535
30536 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
30537
30538 PR target/59952
30539 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
30540
30541 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
30542
30543 PR target/61092
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.
30549
30550 2014-05-08 Wei Mi <wmi@google.com>
30551
30552 PR target/58066
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.
30566
30567 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30568
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.
30573
30574 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30575
30576 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
30577 and v4sf versions.
30578 (vand, vorr, veor, vorn, vbic): Remove.
30579 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
30580 iterator.
30581 (neon_vsub_unspec): Likewise.
30582 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
30583
30584 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30585
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.
30717
30718 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30719
30720 * wide-int.cc (UTItype): Define.
30721 (UDWtype): Define for appropriate W_TYPE_SIZE.
30722
30723 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
30724
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.
30730
30731 2014-05-08 Richard Biener <rguenther@suse.de>
30732
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
30737 vn_get_expr_for.
30738 (simplify_binary_expression): Likewise.
30739 (simplify_unary_expression): Likewise.
30740
30741 2014-05-08 Richard Biener <rguenther@suse.de>
30742
30743 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
30744 looking at TYPE_ARG_TYPES.
30745
30746 2014-05-08 Richard Biener <rguenther@suse.de>
30747
30748 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
30749 pointer propagation special-case.
30750
30751 2014-05-08 Bin Cheng <bin.cheng@arm.com>
30752
30753 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
30754 core part of address expressions.
30755
30756 2014-05-08 Alan Modra <amodra@gmail.com>
30757
30758 PR target/60737
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
30762 instruction count.
30763
30764 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
30765
30766 PR middle-end/39246
30767 * tree-complex.c (expand_complex_move): Keep line info when expanding
30768 complex move.
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
30774 warn_uninit.
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.
30777
30778 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
30779
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.
30801
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.
30808
30809 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
30810 Adjust.
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):
30818 Adjust.
30819 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
30820 Adjust.
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):
30826 Adjust.
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):
30841 Adjust.
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):
30847 Adjust.
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):
30853 Adjust.
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):
30859 Adjust.
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):
30865 Adjust.
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):
30871 Adjust.
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.
30875
30876 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
30877
30878 PR target/60884
30879 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
30880 unrolled byte insns. Emit address increments after move insns.
30881
30882 2014-05-07 David Malcolm <dmalcolm@redhat.com>
30883
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.
30887
30888 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
30889 (gimple_call_builtin_p): Likewise, for the three variants.
30890
30891 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
30892
30893 PR tree-optimization/61095
30894 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
30895
30896 2014-05-07 Richard Biener <rguenther@suse.de>
30897
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.
30911
30912 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
30913
30914 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
30915 Emit an error when the function has arguments.
30916
30917 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
30918
30919 * cfgloop.h (unswitch_loops): Remove.
30920 * doc/passes.texi: Remove references to loop-unswitch.c
30921 * timevar.def (TV_LOOP_UNSWITCH): Remove.
30922
30923 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
30924
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
30928 length 3.
30929 * tree-vect-stmts.c (vect_model_load_cost): Change cost
30930 of vec_perm_shuffle for the new permutations.
30931
30932 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
30933
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.
30942
30943 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
30944
30945 * loop-unswitch.c: Delete.
30946
30947 2014-05-07 Richard Biener <rguenther@suse.de>
30948
30949 * config.gcc: Always set need_64bit_hwint to yes.
30950
30951 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
30952
30953 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
30954 of using optimize_size.
30955
30956 2014-05-06 Mike Stump <mikestump@comcast.net>
30957
30958 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
30959
30960 2014-05-06 Joseph Myers <joseph@codesourcery.com>
30961
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.
30969
30970 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
30971
30972 Revert:
30973 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
30974
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.
30982
30983 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
30984
30985 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
30986 to their respective blocks. Fix inadvertent use of "node".
30987
30988 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
30989
30990 * emit-rtl.c (init_derived_machine_modes): New functionm, split
30991 out from...
30992 (init_emit_once): ...here.
30993 * rtl.h (init_derived_machine_modes): Declare.
30994 * toplev.c (do_compile): Call it even if no_backend.
30995
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>
31000
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
31035 interfaces.
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.
31083 (hwivec): 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.
31124 Use wide-int.
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
31234 CONST_WIDE_INT.
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
31240 interfaces.
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
31298 interfaces.
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.
31331 (pp_wide_int) New.
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.
31372 (CWI_ELT): New.
31373 (HWIVEC_CHECK): New.
31374 (cwi_check_failed_bounds): New.
31375 (CWI_ELT): 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.
31382 (wi::shwi): New.
31383 (wi::min_value): New.
31384 (wi::max_value): New.
31385 (rtx_alloc_v) 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
31411 double_ints.
31412 * target.h: Include wide-int.h rather than double-int.h.
31413 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
31414 than double_ints.
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
31418 double_ints.
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
31435 a double_int.
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
31502 INT_CST_LT.
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
31506 value.
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.
31534 (TYPE_SIGN): 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
31596 wide-int-print.h.
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
31686 interfaces.
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>
31694 representation.
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
31706 interfaces.
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
31714 interfaces.
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
31754 a bool.
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
31769 GENERATOR_FILEs.
31770 * gencheck.c: Define BITS_PER_UNIT.
31771 * wide-int.cc: New.
31772 * wide-int.h: New.
31773 * wide-int-print.cc: New.
31774 * wide-int-print.h: New.
31775
31776 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
31777
31778 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
31779
31780 2014-05-06 Richard Biener <rguenther@suse.de>
31781
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.
31790 * cse.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.
31859 * dce.c: Likewise.
31860 * dse.c: Likewise.
31861 * final.c: Likewise.
31862 * ifcvt.c: Likewise.
31863 * mode-switching.c: Likewise.
31864 * passes.c: Likewise.
31865 * postreload.c: Likewise.
31866 * ree.c: Likewise.
31867 * reg-stack.c: Likewise.
31868 * regcprop.c: Likewise.
31869 * regrename.c: Likewise.
31870 * web.c: Likewise.
31871
31872 2014-05-06 Richard Biener <rguenther@suse.de>
31873
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.
31877
31878 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
31879
31880 PR ipa/60965
31881 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
31882
31883 2014-05-05 Radovan Obradovic <robradovic@mips.com>
31884 Tom de Vries <tom@codesourcery.com>
31885
31886 * target.def (call_fusage_contains_non_callee_clobbers): New
31887 DEFHOOKPOD.
31888 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
31889 Hooks to @menu.
31890 (@node Miscellaneous Register Hooks): New node.
31891 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
31892 * doc/tm.texi: Regenerate.
31893
31894 2014-05-05 Marek Polacek <polacek@redhat.com>
31895
31896 PR driver/61065
31897 * opts.c (common_handle_option): Call error_at instead of warning_at.
31898
31899 2014-05-05 Richard Biener <rguenther@suse.de>
31900
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.
31904
31905 2014-05-05 Richard Biener <rguenther@suse.de>
31906
31907 * passes.c (execute_function_todo): Move TODO_verify_flow under
31908 the TODO_verify_ul umbrella.
31909
31910 2014-05-05 Richard Biener <rguenther@suse.de>
31911
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.
31915
31916 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
31917
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.
31923
31924 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31925
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.
31930
31931 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
31932 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
31933
31934 2014-05-05 Bin Cheng <bin.cheng@arm.com>
31935
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.
31943
31944 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
31945
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.
31960
31961 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
31962
31963 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
31964 Add missing function* argument.
31965
31966 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
31967
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.
31975
31976 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
31977
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
31981 from 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.
31989
31990 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
31991
31992 * config/sh/sh-mem.cc: Use tabs instead of spaces.
31993 (prob_unlikely, prob_likely): Make variables const.
31994
31995 2014-05-03 Denis Chertykov <chertykov@gmail.com>
31996
31997 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
31998
31999 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
32000
32001 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
32002
32003 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
32004
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
32008 functions.
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
32011 sh_pass_in_reg_p.
32012 Replace usage of ROUND_REG with sh_round_reg.
32013 Use CEIL instead of ROUND_ADVANCE.
32014
32015 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
32016
32017 PR target/61026
32018 * config/sh/sh.c: Include stdlib headers before everything else.
32019
32020 2014-05-02 Jakub Jelinek <jakub@redhat.com>
32021
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.
32031
32032 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
32033
32034 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
32035
32036 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
32037
32038 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
32039 expression.
32040
32041 2014-05-02 Marek Polacek <polacek@redhat.com>
32042
32043 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
32044
32045 2014-05-02 Kito Cheng <kito@0xlab.org>
32046
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.
32055
32056 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
32057
32058 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
32059
32060 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
32061
32062 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
32063
32064 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
32065
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.
32070
32071 2014-05-01 Marek Polacek <polacek@redhat.com>
32072
32073 PR c/43245
32074 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
32075
32076 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
32077
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.
32086
32087 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
32088
32089 * config/arc/arc.opt (mlra): Move comment above option name
32090 to avoid mis-parsing as language options.
32091
32092 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32093
32094 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
32095 * config/sol2.h: ... here.
32096 * config/sol2-10.h: Remove.
32097
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.
32113
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.
32127
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.
32132
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.
32136 Remove sol2-10.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.
32143
32144 2014-04-30 Richard Biener <rguenther@suse.de>
32145
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.
32158
32159 2014-04-30 Marek Polacek <polacek@redhat.com>
32160
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.
32165
32166 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
32167
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.
32176
32177 2014-04-29 David Malcolm <dmalcolm@redhat.com>
32178
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.
32182
32183 2014-04-29 Jakub Jelinek <jakub@redhat.com>
32184
32185 PR tree-optimization/60971
32186 * tree-tailcall.c (process_assignment): Reject conversions which
32187 reduce precision.
32188
32189 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
32190
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
32197 code accordingly.
32198
32199 2014-04-29 Nick Clifton <nickc@redhat.com>
32200
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.
32205
32206 2014-04-29 Nick Clifton <nickc@redhat.com>
32207
32208 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
32209 (arc_init_reg_tables): Use a machine_mode enum to iterate over
32210 available modes.
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.
32214
32215 2014-04-29 Richard Biener <rguenther@suse.de>
32216
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.
32228
32229 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
32230
32231 * doc/invoke.texi: Fix typo.
32232 * tree-vrp.c: Fix typos.
32233 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
32234
32235 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
32236
32237 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
32238
32239 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
32240
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.
32262
32263 2014-04-28 David Malcolm <dmalcolm@redhat.com>
32264
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.
32269
32270 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
32271
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.
32277
32278 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
32279
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.
32285
32286 2014-04-28 Martin Jambor <mjambor@suse.cz>
32287
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
32293 statement.
32294 (load_assign_lhs_subreplacements): Likewise.
32295 (sra_modify_constructor_assign): Generate new memory accesses with
32296 same alias type as the original statement.
32297
32298 2014-04-28 Richard Biener <rguenther@suse.de>
32299
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.
32307
32308 2014-04-28 Richard Biener <rguenther@suse.de>
32309
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.
32322
32323 2014-04-28 Richard Biener <rguenther@suse.de>
32324
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.
32329
32330 2014-04-28 Richard Biener <rguenther@suse.de>
32331
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.
32341
32342 2014-04-28 Jeff Law <law@redhat.com>
32343
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.
32349
32350 2014-04-28 Richard Biener <rguenther@suse.de>
32351
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
32355 predecessors.
32356
32357 2014-04-28 Richard Biener <rguenther@suse.de>
32358
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.
32377
32378 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
32379
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
32384 for LEON3.
32385 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
32386 * doc/invoke.texi (SPARC options): Document -muser-mode.
32387
32388 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
32389
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
32393 constants.
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.
32398
32399 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
32400
32401 * doc/install.texi (Building with profile feedback): Remove
32402 outdated sentence.
32403
32404 2014-04-26 Tom de Vries <tom@codesourcery.com>
32405
32406 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
32407 array accesses.
32408
32409 2014-04-25 Cary Coutant <ccoutant@google.com>
32410
32411 PR debug/60929
32412 * dwarf2out.c (should_move_die_to_comdat): A type definition
32413 can contain a subprogram definition, but don't move it to a
32414 comdat unit.
32415 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
32416 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
32417 from original DIE.
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
32422 type unit.
32423
32424 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
32425
32426 PR target/60969
32427 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
32428 alternative 12.
32429
32430 2014-04-25 Jiong Wang <jiong.wang@arm.com>
32431
32432 * config/arm/predicates.md (call_insn_operand): Add long_call check.
32433 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
32434 reg for long_call.
32435 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
32436 restriction.
32437
32438 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32439
32440 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
32441
32442 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32443
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.
32448
32449 2014-04-25 Jakub Jelinek <jakub@redhat.com>
32450
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.
32454
32455 2014-04-25 Tom de Vries <tom@codesourcery.com>
32456
32457 * expr.c (clobber_reg_mode): New function.
32458 * expr.h (clobber_reg): New function.
32459
32460 2014-04-25 Tom de Vries <tom@codesourcery.com>
32461
32462 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
32463 clobbers.
32464
32465 2014-04-25 Radovan Obradovic <robradovic@mips.com>
32466 Tom de Vries <tom@codesourcery.com>
32467
32468 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
32469 handle.
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.
32473
32474 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32475
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.
32479
32480 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
32481
32482 PR target/60941
32483 * config/sparc/sparc.md (ashlsi3_extend): Delete.
32484
32485 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
32486
32487 PR preprocessor/56540
32488 * config/i386/i386-c.c (ix86_target_macros): Define
32489 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
32490
32491 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32492
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.
32498
32499 2014-04-25 Richard Biener <rguenther@suse.de>
32500
32501 PR ipa/60912
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.
32505
32506 2014-04-25 Richard Biener <rguenther@suse.de>
32507
32508 PR ipa/60911
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.
32512
32513 2014-04-24 Cong Hou <congh@google.com>
32514
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.
32520
32521 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
32522
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.
32526
32527 * config/rs6000/predicates.md (const_0_to_3_operand): New
32528 predicate to match 0..3 integer constants.
32529
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.
32542 (DIVDE): Likewise.
32543 (DIVDEO): Likewise.
32544 (DIVDEU): Likewise.
32545 (DIVDEUO): Likewise.
32546 (DXEX): Add decimal floating-point builtin functions.
32547 (DXEXQ): Likewise.
32548 (DDEDPD): Likewise.
32549 (DDEDPDQ): Likewise.
32550 (DENBCD): Likewise.
32551 (DENBCDQ): Likewise.
32552 (DIEX): Likewise.
32553 (DIEXQ): Likewise.
32554 (DSCLI): Likewise.
32555 (DSCLIQ): Likewise.
32556 (DSCRI): 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.
32579
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
32590 functions.
32591
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.
32601
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.
32614
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.
32630
32631 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
32632 builtin functions.
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
32652 128-bit types.
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.
32661
32662 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
32663
32664 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
32665 is disabled.
32666
32667 2014-04-24 Jakub Jelinek <jakub@redhat.com>
32668
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.
32683
32684 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
32685
32686 PR target/60822
32687 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
32688 operand 1.
32689
32690 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
32691
32692 * flag-types.h (enum ivar_visibility): Add.
32693
32694 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
32695
32696 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
32697 function * argument.
32698
32699 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
32700
32701 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
32702
32703 2014-04-24 Radovan Obradovic <robradovic@mips.com>
32704 Tom de Vries <tom@codesourcery.com>
32705
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
32708 reg-note.
32709 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
32710 * emit-rtl.c (try_split): Same.
32711
32712 2014-04-24 Radovan Obradovic <robradovic@mips.com>
32713 Tom de Vries <tom@codesourcery.com>
32714
32715 * common.opt (fuse-caller-save): New option.
32716
32717 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
32718
32719 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
32720 elements for big-endian.
32721
32722 2014-04-24 Richard Biener <rguenther@suse.de>
32723
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.
32727
32728 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32729
32730 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
32731 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
32732
32733 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32734
32735 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
32736 assembler 64-bit option.
32737 * configure: Regenerate.
32738
32739 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32740
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.
32746
32747 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32748
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
32754 builtins.
32755 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
32756 (Vrevsuff): New mode attribute.
32757
32758 2014-04-24 Terry Guo <terry.guo@arm.com>
32759
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
32764 after_arm_reorg.
32765 (arm_reorg): Ditto.
32766 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
32767
32768 2014-04-23 Tom de Vries <tom@codesourcery.com>
32769
32770 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
32771
32772 2014-04-23 David Malcolm <dmalcolm@redhat.com>
32773
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.
32779 (as_a): Likewise.
32780 (dyn_cast): Likewise.
32781
32782 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
32783 pointer from the is-a.h API.
32784
32785 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
32786 (is_a_helper <cgraph_node *>::test): ...this, matching change to
32787 is-a.h API.
32788 (is_a_helper <varpool_node>::test): Likewise, convert to...
32789 (is_a_helper <varpool_node *>::test): ...this.
32790
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.
32822
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):
32890 Convert to...
32891 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
32892 ...this.
32893 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
32894 Convert to...
32895 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
32896 ...this.
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
32900 to...
32901 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
32902 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
32903 to...
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
32910 to...
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
32915 to...
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
32932 to...
32933 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
32934 ...this.
32935 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
32936 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
32937
32938 (gimple_use_ops): Update for removal of implicit pointer from the
32939 is-a.h API.
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.
33109
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.
33147
33148 2014-04-23 Jeff Law <law@redhat.com>
33149
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.
33155
33156 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
33157
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.
33161
33162 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
33163
33164 * aarch64.md (<optab>_rol<mode>3): New pattern.
33165 (<optab>_rolsi3_uxtw): Likewise.
33166 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
33167
33168 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
33169
33170 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
33171 (arm_cortex_a12_tune): Likewise.
33172
33173 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33174
33175 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
33176
33177 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33178
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.
33182
33183 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33184
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.
33195
33196 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33197
33198 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
33199 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
33200 rev cost.
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.
33210
33211 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33212
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.
33216
33217 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33218
33219 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
33220
33221 2014-04-23 Richard Biener <rguenther@suse.de>
33222
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
33234 and make static.
33235 * loop-unroll.c (compare_and_jump_seq): Likewise.
33236
33237 2014-04-23 Richard Biener <rguenther@suse.de>
33238
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.
33244
33245 2014-04-23 Nick Clifton <nickc@redhat.com>
33246
33247 * config/msp430/msp430.c (msp430_handle_option): Move function
33248 to msp430-common.c
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
33262 prototype.
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.
33270
33271 2014-04-23 Nick Clifton <nickc@redhat.com>
33272
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.
33276
33277 2014-04-23 Terry Guo <terry.guo@arm.com>
33278
33279 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
33280
33281 2014-04-23 Richard Biener <rguenther@suse.de>
33282
33283 PR middle-end/60895
33284 * tree-inline.c (declare_return_variable): Use mark_addressable.
33285
33286 2014-04-23 Richard Biener <rguenther@suse.de>
33287
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.
33291
33292 2014-04-22 Jakub Jelinek <jakub@redhat.com>
33293
33294 PR sanitizer/60275
33295 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
33296 New options.
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.
33319
33320 2014-04-22 Christian Bruel <christian.bruel@st.com>
33321
33322 * config/sh/sh.md (mov<mode>): Replace movQIHI.
33323 Force immediates to SImode.
33324
33325 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
33326
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
33335 flag_errno_math.
33336 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
33337
33338 2014-04-22 Richard Henderson <rth@redhat.com>
33339
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.
33348
33349 2014-04-22 Martin Jambor <mjambor@suse.cz>
33350
33351 * cgraphclones.c (cgraph_function_versioning): Copy
33352 ipa_transforms_to_apply instead of asserting it is empty.
33353
33354 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
33355
33356 PR target/60868
33357 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
33358 on count_exp to get mode.
33359
33360 2014-04-22 Andrew Pinski <apinski@cavium.com>
33361
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.
33371
33372 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33373
33374 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
33375
33376 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
33377
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.
33440
33441 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
33442
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.
33666
33667 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
33668
33669 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
33670 Pattern extended.
33671 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
33672 (sqabs): Likewise.
33673 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
33674 (vqnegd_s64): Likewise.
33675 (vqabs_s64): Likewise.
33676 (vqabsd_s64): Likewise.
33677
33678 2014-04-22 Richard Henderson <rth@redhat.com>
33679
33680 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
33681 computation to the top of the loop.
33682
33683 2014-04-22 Renlin <renlin.li@arm.com>
33684 Jiong Wang <jiong.wang@arm.com>
33685
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.
33689
33690 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
33691
33692 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
33693 Fix indentation.
33694
33695 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
33696
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.
33703
33704 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33705
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.
33712
33713 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
33714 as bug.
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.
33720
33721 * config/i386/sol2-9.h: Remove.
33722
33723 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
33724 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
33725 Remove Solaris 9 references.
33726
33727 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
33728
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.
33737
33738 2014-04-22 Renlin Li <Renlin.Li@arm.com>
33739
33740 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
33741 the output asm format.
33742
33743 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
33744
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.
33750
33751 2014-04-22 Jakub Jelinek <jakub@redhat.com>
33752
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.
33762
33763 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33764
33765 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
33766 restrictions on core registers for DImode values in Thumb2.
33767
33768 2014-04-22 Ian Bolton <ian.bolton@arm.com>
33769
33770 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
33771 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
33772
33773 2014-04-22 Ian Bolton <ian.bolton@arm.com>
33774
33775 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
33776 (*iordi_notzesidi_di): Likewise.
33777 (*iordi_notsesidi_di): Likewise.
33778
33779 2014-04-22 Ian Bolton <ian.bolton@arm.com>
33780
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.
33785
33786 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
33787
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.
33799
33800 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
33801
33802 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
33803 GET_MODE_SIZE argument is enum machine_mode.
33804
33805 2014-04-22 Jakub Jelinek <jakub@redhat.com>
33806
33807 PR target/60910
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.
33810
33811 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
33812
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
33818 when asan is on.
33819 (expand_used_vars): Leave a space in the stack frame for alignment
33820 if STRICT_ALIGNMENT.
33821
33822 2014-04-21 David Malcolm <dmalcolm@redhat.com>
33823
33824 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
33825 than a gimple.
33826 (gimple_store_p): Likewise.
33827 (gimple_assign_load_p): Likewise.
33828 (gimple_assign_cast_p): Likewise.
33829 (gimple_clobber_p): Likewise.
33830
33831 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
33832 rather than a gimple.
33833 (gimple_assign_cast_p): Likewise.
33834
33835 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
33836
33837 PR target/60735
33838 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
33839 If mode is DDmode and TARGET_E500_DOUBLE allow move.
33840
33841 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
33842 more debug information for E500 if -mdebug=reg.
33843
33844 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
33845
33846 PR target/60909
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.
33851
33852 2014-04-18 Cong Hou <congh@google.com>
33853
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.
33857
33858 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
33859
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.
33865
33866 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
33867
33868 * ipa-inline.c (spec_rem): New static variable.
33869 (dump_overall_stats): New function.
33870 (dump_inline_stats): New function.
33871
33872 2014-04-18 Richard Henderson <rth@redhat.com>
33873
33874 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
33875 to GET_MODE_SIZE, not a reg_class_t.
33876
33877 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33878
33879 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
33880 (vsx_xxmrglw_<mode>): Likewise.
33881
33882 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
33883
33884 PR target/60876
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.
33888
33889 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
33890
33891 * ipa-inline.c (inline_small_functions): Account only non-cold
33892 functions.
33893 * doc/invoke.texi (inline-unit-growth): Update documentation.
33894
33895 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
33896
33897 * config/rs6000/rs6000.md (addti3, subti3): New.
33898
33899 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
33900
33901 PR target/60863
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.
33905
33906 2014-04-17 Martin Jambor <mjambor@suse.cz>
33907
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
33917 such statements.
33918 (sra_modify_function_body): Commit statements on edges.
33919
33920 2014-04-17 Richard Biener <rguenther@suse.de>
33921
33922 PR middle-end/60849
33923 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
33924 comparison results and add clarifying comment.
33925
33926 2014-04-17 Jakub Jelinek <jakub@redhat.com>
33927
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.
33939
33940 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
33941
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:
33976 Adjust.
33977
33978 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
33979
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.
34029
34030 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
34031
34032 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
34033 * configure: Regenerate.
34034
34035 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
34036
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:
34076 Adjust.
34077
34078 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
34079
34080 * pass_manager.h (pass_manager::register_dump_files_1): Remove
34081 declaration.
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.
34086
34087 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
34088
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.
34093
34094 2014-03-20 Mark Wielaard <mjw@redhat.com>
34095
34096 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
34097 then represent the bound as normal constant value.
34098
34099 2014-04-17 Jakub Jelinek <jakub@redhat.com>
34100
34101 PR target/60847
34102 Forward port from 4.8 branch
34103 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
34104
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.
34113
34114 2014-04-17 Kito Cheng <kito@0xlab.org>
34115
34116 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
34117
34118 2014-04-17 Richard Biener <rguenther@suse.de>
34119
34120 PR middle-end/60849
34121 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
34122 boolean results for comparisons.
34123
34124 2014-04-17 Richard Biener <rguenther@suse.de>
34125
34126 PR tree-optimization/60836
34127 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
34128 initial PHI args to be gimple values.
34129
34130 2014-04-17 Richard Biener <rguenther@suse.de>
34131
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.
34142
34143 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
34144
34145 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
34146 Silvermont.
34147
34148 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
34149
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
34154
34155 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
34156
34157 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
34158 * config/i386/i386.c (intel_cost): Ditto.
34159
34160 2014-04-17 Joey Ye <joey.ye@arm.com>
34161
34162 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
34163
34164 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
34165
34166 * opts.c (common_handle_option): Disable -fipa-reference coorectly
34167 with -fuse-profile.
34168
34169 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
34170
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.
34188
34189 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
34190
34191 PR ipa/60854
34192 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
34193 external aliases alive, too.
34194
34195 2014-04-16 Andrew Pinski <apinski@cavium.com>
34196
34197 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
34198 definition.
34199
34200 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
34201
34202 * final.c (compute_alignments): Do not apply loop alignment to a block
34203 falling through to the exit.
34204
34205 2014-04-16 Catherine Moore <clm@codesourcery.com>
34206
34207 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
34208 Adjust constraints for microMIPS store patterns.
34209
34210 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
34211
34212 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
34213
34214 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
34215
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.
34221
34222 2014-04-16 Jakub Jelinek <jakub@redhat.com>
34223
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.
34229
34230 2014-04-16 Martin Jambor <mjambor@suse.cz>
34231
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.
34239
34240 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34241
34242 PR target/60817
34243 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
34244 x86_64-*-* cases.
34245 Pass necessary as flags on 64-bit Solaris/x86.
34246 Use lowercase relocs for x86_64-*-*.
34247 * configure: Regenerate.
34248
34249 2014-04-15 Jan Hubicka <jh@suse.cz>
34250
34251 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
34252 (maybe_record_node, likely_target_p): Use it.
34253
34254 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34255
34256 PR target/60839
34257 Revert following patch
34258
34259 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
34260
34261 PR target/60735
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
34266 true.
34267
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
34272 instructions.
34273
34274 2014-03-21 Mark Wielaard <mjw@redhat.com>
34275
34276 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
34277 as unsigned or int depending on type and value used.
34278
34279 2014-04-15 Richard Biener <rguenther@suse.de>
34280
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):
34284 ... here.
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.
34290
34291 2014-04-15 Teresa Johnson <tejohnson@google.com>
34292
34293 * cfg.c (dump_bb_info): Fix flags check.
34294 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
34295
34296 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34297
34298 PR rtl-optimization/60663
34299 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
34300 avoid 0 cost.
34301
34302 2014-04-15 Richard Biener <rguenther@suse.de>
34303
34304 * lto-streamer.h (LTO_major_version): Bump to 4.
34305
34306 2014-04-15 Richard Biener <rguenther@suse.de>
34307
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=
34313 option check.
34314 * lto-wrapper.c (run_gcc): Adjust.
34315
34316 2014-04-15 Richard Biener <rguenther@suse.de>
34317
34318 * alias.c (ncr_compar): New function.
34319 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
34320
34321 2014-04-15 Richard Biener <rguenther@suse.de>
34322
34323 * alias.c (record_component_aliases): Do not walk BINFOs.
34324
34325 2014-04-15 Richard Biener <rguenther@suse.de>
34326
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.
34335
34336 2014-04-15 Richard Biener <rguenther@suse.de>
34337
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.
34344
34345 2014-04-15 Jakub Jelinek <jakub@redhat.com>
34346
34347 PR plugins/59335
34348 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
34349 added in 4.9.
34350
34351 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
34352
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
34362 kinds.
34363 * tree.def (ANNOTATE_EXPR): Tweak comment.
34364
34365 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
34366
34367 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
34368 cxa_pure_virtual).
34369
34370 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
34371
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.
34378
34379 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
34380
34381 PR lto/60820
34382 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
34383
34384 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
34385
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.
34394
34395 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
34396
34397 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
34398 * coverage.c (coverage_compute_profile_id): Handle externally visible
34399 symbols.
34400
34401 2014-04-14 Martin Jambor <mjambor@suse.cz>
34402
34403 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
34404 DECL_DISREGARD_INLINE_LIMITS functions.
34405
34406 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
34407
34408 PR target/60827
34409 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
34410
34411 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
34412
34413 PR target/60827
34414 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
34415 optimize_insn_for_speed_p instead of
34416 optimize_function_for_speed_p.
34417
34418 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
34419
34420 * doc/invoke.texi (free): Document AArch64.
34421
34422 2014-04-14 Richard Biener <rguenther@suse.de>
34423
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.
34431
34432 2014-04-14 Richard Biener <rguenther@suse.de>
34433
34434 * passes.def: Move early points-to after early SRA.
34435
34436 2014-04-14 Richard Biener <rguenther@suse.de>
34437
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.
34441
34442 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
34443
34444 * stor-layout.c (place_field): Finalize non-constant offset for the
34445 field, if any.
34446
34447 2014-04-14 Richard Biener <rguenther@suse.de>
34448
34449 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
34450 as argument.
34451 (expand_switch_using_bit_tests_p): Likewise.
34452 (process_switch): Compute and pass on speed_p based on the
34453 switch stmt.
34454 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
34455 optimize_bb_for_speed_p.
34456
34457 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
34458
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.
34480
34481 2014-04-14 Richard Biener <rguenther@suse.de>
34482
34483 PR lto/60720
34484 * lto-streamer-out.c (wrap_refs): New function.
34485 (lto_output): Wrap symbol references in global initializes in
34486 type-preserving MEM_REFs.
34487
34488 2014-04-14 Christian Bruel <christian.bruel@st.com>
34489
34490 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
34491
34492 2014-04-14 Christian Bruel <christian.bruel@st.com>
34493
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.
34498
34499 2014-04-14 Richard Biener <rguenther@suse.de>
34500
34501 PR middle-end/55022
34502 * fold-const.c (negate_expr_p): Don't negate directional rounding
34503 division.
34504 (fold_negate_expr): Likewise.
34505
34506 2014-04-14 Richard Biener <rguenther@suse.de>
34507
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.
34513
34514 2014-04-12 Catherine Moore <clm@codesourcery.com>
34515
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.
34524
34525 2014-04-11 Tobias Burnus <burnus@net-b.de>
34526
34527 PR c/60194
34528 * doc/invoke.texi (-Wformat-signedness): Document it.
34529 (Wformat=2): Mention that this enables -Wformat-signedness.
34530
34531 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
34532
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.
34545
34546 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
34547
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
34550 its operands.
34551
34552 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
34553
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.
34564
34565 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
34566
34567 PR target/60811
34568 * config/arc/arc.c (arc_save_restore): Fix assert typo.
34569
34570 2013-04-11 Jakub Jelinek <jakub@redhat.com>
34571
34572 * BASE-VER: Set to 4.10.0.
34573
34574 2014-04-11 Tobias Burnus <burnus@net-b.de>
34575
34576 PR other/59055
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
34580 duplicated @menu.
34581
34582 2014-04-11 Steve Ellcey <sellcey@mips.com>
34583 Jakub Jelinek <jakub@redhat.com>
34584
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
34588 argument to it.
34589
34590 2014-04-11 Richard Biener <rguenther@suse.de>
34591
34592 PR middle-end/60797
34593 * varasm.c (assemble_alias): Avoid endless error reporting
34594 recursion by setting TREE_ASM_WRITTEN.
34595
34596 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
34597
34598 * config/s390/s390.md: Add a splitter for NOT rtx.
34599
34600 2014-04-11 Jakub Jelinek <jakub@redhat.com>
34601
34602 PR rtl-optimization/60663
34603 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
34604
34605 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
34606 Jakub Jelinek <jakub@redhat.com>
34607
34608 PR lto/60567
34609 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
34610 flag from decl_node to node.
34611
34612 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
34613
34614 PR debug/60655
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.
34618
34619 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
34620
34621 Revert
34622 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
34623
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.
34630
34631 2014-04-09 Cong Hou <congh@google.com>
34632
34633 PR testsuite/60773
34634 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
34635 documentation.
34636
34637 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34638
34639 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
34640 instead of vnor to exploit possible fusion opportunity in the
34641 future.
34642 (altivec_expand_vec_perm_const_le): Likewise.
34643
34644 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
34645
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.
34651
34652 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
34653
34654 PR target/60763
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.
34658
34659 2014-04-08 Richard Biener <rguenther@suse.de>
34660
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.
34664
34665 2014-04-08 Richard Biener <rguenther@suse.de>
34666
34667 PR tree-optimization/60785
34668 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
34669 default defs properly.
34670
34671 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
34672
34673 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
34674 (Weffc++): Likewise.
34675
34676 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
34677
34678 * ipa-devirt.c (maybe_record_node): When node is not recorded,
34679 set completep to false rather than true.
34680
34681 2014-04-07 Douglas B Rupp <rupp@adacore.com>
34682
34683 PR target/60504
34684 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
34685 ARM_TARGET2_DWARF_FORMAT.
34686
34687 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
34688
34689 PR target/60609
34690 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
34691 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
34692 ADDR_DIFF_VEC.
34693
34694 2014-04-07 Richard Biener <rguenther@suse.de>
34695
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.
34699
34700 2014-04-07 Jason Merrill <jason@redhat.com>
34701
34702 PR c++/60731
34703 * common.opt (-fno-gnu-unique): Add.
34704 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
34705
34706 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34707
34708 * haifa-sched.c: Fix outdated function reference and minor
34709 grammar errors in introductory comment.
34710
34711 2014-04-07 Richard Biener <rguenther@suse.de>
34712
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.
34717
34718 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
34719
34720 PR debug/55794
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.
34725
34726 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
34727
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
34731 specific info.
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
34739 errata_skip.
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
34745
34746 2014-04-04 Cong Hou <congh@google.com>
34747
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.
34753
34754 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
34755
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.
34762
34763 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
34764
34765 * explow.c (probe_stack_range): Emit a final optimization blockage.
34766
34767 2014-04-04 Anthony Green <green@moxielogic.com>
34768
34769 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
34770 typos.
34771
34772 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
34773
34774 PR ipa/59626
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.
34781
34782 2014-04-04 Jakub Jelinek <jakub@redhat.com>
34783 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
34784
34785 PR debug/60655
34786 * dwarf2out.c (const_ok_for_output_1): Reject expressions
34787 containing a NOT.
34788
34789 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34790
34791 PR bootstrap/60743
34792 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
34793 duration.
34794 (cortex_a53_fdivd): Likewise.
34795
34796 2014-04-04 Martin Jambor <mjambor@suse.cz>
34797
34798 PR ipa/60640
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
34805 file.
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.
34815
34816 2014-04-04 Jeff Law <law@redhat.com>
34817
34818 PR target/60657
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
34822 const_int_operand.
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
34827
34828 2014-04-04 Richard Biener <rguenther@suse.de>
34829
34830 PR ipa/60746
34831 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
34832 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
34833 non-GIMPLE_LABELs.
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.
34841
34842 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
34843
34844 PR bootstrap/60719
34845 * Makefile.in (install-driver): Fix shell scripting.
34846
34847 2014-04-03 Cong Hou <congh@google.com>
34848
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
34852 will be done.
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.
34861
34862 2014-04-03 Richard Biener <rguenther@suse.de>
34863
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.
34878
34879 2014-04-03 Richard Biener <rguenther@suse.de>
34880
34881 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
34882 set TREE_CHAIN to NULL_TREE.
34883
34884 2014-04-03 Richard Biener <rguenther@suse.de>
34885
34886 PR tree-optimization/60740
34887 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
34888 over all GIMPLE_COND operands.
34889
34890 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
34891
34892 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
34893 (Weffc++): Remove Scott's numbering, merge lists and reference
34894 Wnon-virtual-dtor.
34895
34896 2014-04-03 Nick Clifton <nickc@redhat.com>
34897
34898 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
34899 properly.
34900
34901 2014-04-03 Martin Jambor <mjambor@suse.cz>
34902
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
34906 removed symbols.
34907
34908 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
34909
34910 PR ipa/60659
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.
34915
34916 2014-04-02 Anthony Green <green@moxielogic.com>
34917
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.
34922
34923 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34924
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.
34929
34930 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
34931
34932 PR rtl-optimization/60650
34933 * lra-constraints.c (process_alt_operands): Decrease reject for
34934 earlyclobber matching.
34935
34936 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
34937
34938 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
34939
34940 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
34941
34942 * config/spu/spu.c (pad_bb): Do not crash when the last
34943 insn is CODE_FOR_blockage.
34944
34945 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
34946
34947 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
34948 lies outside the target mode.
34949
34950 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
34951
34952 PR target/60735
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
34957 true.
34958
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
34963 instructions.
34964
34965 2014-04-02 Richard Biener <rguenther@suse.de>
34966
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.
34971
34972 2014-04-02 Richard Biener <rguenther@suse.de>
34973
34974 PR bootstrap/60719
34975 * Makefile.in (install-driver): Guard extra installs with special
34976 names properly.
34977
34978 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
34979
34980 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
34981 Document vec_vgbbd.
34982
34983 2014-04-01 Richard Henderson <rth@redhat.com>
34984
34985 PR target/60704
34986 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
34987 alternative enabled before register allocation.
34988
34989 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
34990
34991 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
34992 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
34993 typo.
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.
35000
35001 2014-04-01 Martin Husemann <martin@duskware.de>
35002
35003 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
35004 for -mabi=32.
35005
35006 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
35007
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.
35013
35014 2014-04-01 Richard Biener <rguenther@suse.de>
35015
35016 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
35017
35018 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
35019
35020 * doc/invoke.texi (mapp-regs): Clarify.
35021
35022 2014-03-31 Ulrich Drepper <drepper@gmail.com>
35023
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.
35037
35038 2014-03-31 Martin Jambor <mjambor@suse.cz>
35039
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.
35046
35047 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
35048
35049 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
35050
35051 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
35052
35053 PR target/60034
35054 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
35055 section anchor.
35056
35057 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
35058
35059 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
35060 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
35061 Split out
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>):
35068 Split out
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>):
35072 Ditto.
35073
35074 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
35075
35076 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
35077 static chain if needed.
35078
35079 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
35080
35081 PR target/60697
35082 * lra-constraints.c (index_part_to_reg): New.
35083 (process_address): Use it.
35084
35085 2014-03-27 Jeff Law <law@redhat.com>
35086 Jakub Jelinek <jakub@redhat.com>
35087
35088 PR target/60648
35089 * expr.c (do_tablejump): Use simplify_gen_binary rather than
35090 gen_rtx_{PLUS,MULT} to build up the address expression.
35091
35092 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
35093 creating non-canonical RTL.
35094
35095 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
35096
35097 PR ipa/60243
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;
35101 it is expensive.
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.
35114
35115 2014-03-28 Jakub Jelinek <jakub@redhat.com>
35116
35117 PR target/60693
35118 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
35119 also if addr has VOIDmode.
35120
35121 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35122
35123 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
35124 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
35125 Declare extern.
35126 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
35127 instructions as well as AdvancedSIMD loads.
35128
35129 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35130
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,
35137 crypto_aesmc.
35138 * config/arm/iterators.md (crypto_type): Likewise.
35139
35140 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
35141
35142 * cgraph.c: Include expr.h and tree-dfa.h.
35143 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
35144 remove LHS.
35145
35146 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
35147
35148 PR target/60675
35149 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
35150 regs from checking multi-reg pseudos.
35151
35152 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35153
35154 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
35155
35156 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
35157
35158 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
35159 if it would clobber the stack pointer, even temporarily.
35160
35161 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
35162
35163 * mode-switching.c: Make small adjustments to the top comment.
35164
35165 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
35166
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.
35170
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.
35174
35175 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
35176 for ISA 2.07.
35177
35178 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35179 vbpermq builtins.
35180
35181 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
35182 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
35183
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.
35196
35197 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
35198 define the top 64-bit vector element.
35199
35200 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
35201 constraint.
35202
35203 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
35204 Document vec_vbpermq builtin.
35205
35206 PR target/60672
35207 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
35208 enable use of xxsldwi and xxpermdi builtin functions.
35209 (vec_xxpermdi): Likewise.
35210
35211 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
35212 Document use of vec_xxsldwi and vec_xxpermdi builtins.
35213
35214 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
35215
35216 PR rtl-optimization/60650
35217 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
35218 first_p. Use it.
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.
35222
35223 2014-03-27 Marek Polacek <polacek@redhat.com>
35224
35225 PR c/50347
35226 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
35227 types.
35228
35229 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35230
35231 * config/s390/s390.c (s390_can_use_return_insn): Check for
35232 call-saved FPRs on 31 bit.
35233
35234 2014-03-27 Jakub Jelinek <jakub@redhat.com>
35235
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.
35240
35241 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
35242
35243 PR target/60580
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.
35248
35249 2014-03-27 Dehao Chen <dehao@google.com>
35250
35251 * ipa-inline.c (early_inliner): Update node's inline info.
35252
35253 2014-03-26 Dehao Chen <dehao@google.com>
35254
35255 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
35256 compiler inserted conditional jumps for NAN float check.
35257
35258 2014-03-26 Jakub Jelinek <jakub@redhat.com>
35259
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
35263 _("<unknown>").
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
35268 callers.
35269
35270 PR other/59545
35271 * real.c (real_to_integer2): Change type of low to UHWI.
35272
35273 2014-03-26 Tobias Burnus <burnus@net-b.de>
35274
35275 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
35276 (CILK_SELF_SPECS): New define.
35277 (driver_self_specs): Use it.
35278
35279 2014-03-26 Richard Biener <rguenther@suse.de>
35280
35281 * tree-pretty-print.c (percent_K_format): Implement special
35282 case for LTO and its stripped down BLOCK tree.
35283
35284 2014-03-26 Jakub Jelinek <jakub@redhat.com>
35285
35286 PR sanitizer/60636
35287 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
35288
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.
35296
35297 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
35298
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.
35302
35303 2014-03-26 Marek Polacek <polacek@redhat.com>
35304
35305 PR c/37428
35306 * doc/extend.texi (C Extensions): Mention variable-length arrays in
35307 a structure/union.
35308
35309 2014-03-26 Marek Polacek <polacek@redhat.com>
35310
35311 PR c/39525
35312 * doc/extend.texi (Designated Inits): Describe what happens to omitted
35313 field members.
35314
35315 2014-03-26 Marek Polacek <polacek@redhat.com>
35316
35317 PR other/59545
35318 * ira-color.c (update_conflict_hard_regno_costs): Perform the
35319 multiplication in unsigned type.
35320
35321 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
35322
35323 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
35324
35325 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
35326
35327 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
35328
35329 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
35330
35331 PR ipa/60315
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
35343 to unreachable.
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
35348 unreachable.
35349
35350 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
35351
35352 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
35353 Do not modify inline clones.
35354
35355 2014-03-25 Jakub Jelinek <jakub@redhat.com>
35356
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.
35367
35368 2014-03-25 Martin Jambor <mjambor@suse.cz>
35369
35370 PR ipa/60600
35371 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
35372 inconsistent devirtualizations to __builtin_unreachable.
35373
35374 2014-03-25 Marek Polacek <polacek@redhat.com>
35375
35376 PR c/35449
35377 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
35378
35379 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
35380
35381 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
35382 order of elements for big-endian.
35383
35384 2014-03-25 Richard Biener <rguenther@suse.de>
35385
35386 PR middle-end/60635
35387 * gimplify-me.c (gimple_regimplify_operands): Update the
35388 re-gimplifed stmt.
35389
35390 2014-03-25 Martin Jambor <mjambor@suse.cz>
35391
35392 PR ipa/59176
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.
35397
35398 2014-03-25 Richard Biener <rguenther@suse.de>
35399
35400 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
35401 (run_gcc): Likewise.
35402
35403 2014-03-25 Jakub Jelinek <jakub@redhat.com>
35404
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.
35408
35409 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
35410 type to avoid signed integer overflow.
35411 * explow.c (plus_constant): Likewise.
35412
35413 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
35414
35415 * doc/generic.texi: Correct typos.
35416
35417 2014-03-24 Tobias Burnus <burnus@net-b.de>
35418
35419 * doc/invoke.texi (-flto): Expand section about
35420 using static libraries with LTO.
35421
35422 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35423
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.
35429
35430 * lra.c (emit_add3_insn): Use the addptr pattern if available.
35431
35432 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
35433
35434 2014-03-24 Ulrich Drepper <drepper@gmail.com>
35435
35436 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
35437 _mm512_set1_pd.
35438
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_*.
35450
35451 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
35452
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.
35460
35461 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35462
35463 * Makefile.in (s-macro_list): Depend on cc1.
35464
35465 2014-03-23 Teresa Johnson <tejohnson@google.com>
35466
35467 * ipa-utils.c (ipa_print_order): Use specified dump file.
35468
35469 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
35470
35471 PR rtl-optimization/60601
35472 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
35473
35474 * gcc.c (eval_spec_function): Initialize save_growing_value.
35475
35476 2014-03-22 Jakub Jelinek <jakub@redhat.com>
35477
35478 PR sanitizer/60613
35479 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
35480 code == MINUS_EXPR, never swap op0 with op1.
35481
35482 * toplev.c (init_local_tick): Avoid signed integer multiplication
35483 overflow.
35484 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
35485 shift by first operand's bitsize.
35486
35487 2014-03-21 Jakub Jelinek <jakub@redhat.com>
35488
35489 PR target/60610
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).
35494
35495 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35496
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.
35500
35501 2014-03-21 Richard Henderson <rth@twiddle.net>
35502
35503 PR target/60598
35504 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
35505 related insns after epilogue_completed.
35506
35507 2014-03-21 Martin Jambor <mjambor@suse.cz>
35508
35509 PR ipa/59176
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.
35516
35517 2014-03-21 Martin Jambor <mjambor@suse.cz>
35518
35519 PR ipa/60419
35520 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
35521 in the border.
35522
35523 2014-03-21 Richard Biener <rguenther@suse.de>
35524
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.
35531
35532 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
35533
35534 * expr.c (expand_expr_real_1): Remove outdated comment.
35535
35536 2014-03-20 Jakub Jelinek <jakub@redhat.com>
35537
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.
35542
35543 PR target/60568
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.
35547
35548 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35549
35550 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
35551
35552 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
35553
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.
35560
35561 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
35562
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.
35568
35569 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
35570
35571 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
35572 of parts.
35573
35574 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
35575
35576 PR target/60039
35577 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
35578
35579 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
35580
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".
35584
35585 2014-03-19 Richard Biener <rguenther@suse.de>
35586
35587 PR middle-end/60553
35588 * tree-core.h (tree_type_common): Re-order pointer members
35589 to reduce recursion depth during GC walks.
35590
35591 2014-03-19 Marek Polacek <polacek@redhat.com>
35592
35593 PR sanitizer/60569
35594 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
35595 before accessing it.
35596
35597 2014-03-19 Richard Biener <rguenther@suse.de>
35598
35599 PR lto/59543
35600 * lto-streamer-in.c (input_function): In WPA stage do not drop
35601 debug stmts.
35602
35603 2014-03-19 Jakub Jelinek <jakub@redhat.com>
35604
35605 PR tree-optimization/60559
35606 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
35607 with build_zero_cst assignment.
35608
35609 2014-03-18 Kai Tietz <ktietz@redhat.com>
35610
35611 PR rtl-optimization/56356
35612 * sdbout.c (sdbout_parms): Verify that parms'
35613 incoming argument is valid.
35614 (sdbout_reg_parms): Likewise.
35615
35616 2014-03-18 Richard Henderson <rth@redhat.com>
35617
35618 PR target/60562
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.
35622
35623 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
35624
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.
35631
35632 2014-03-18 Martin Liska <mliska@suse.cz>
35633
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.
35638
35639 2014-03-18 Jakub Jelinek <jakub@redhat.com>
35640
35641 PR sanitizer/60557
35642 * ubsan.c (ubsan_instrument_unreachable): Call
35643 initialize_sanitizer_builtins.
35644 (ubsan_pass): Likewise.
35645
35646 PR sanitizer/60535
35647 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
35648 varpool_finalize_decl instead of rest_of_decl_compilation.
35649
35650 2014-03-18 Richard Biener <rguenther@suse.de>
35651
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.
35655
35656 2014-03-18 Richard Biener <rguenther@suse.de>
35657
35658 * doc/lto.texi (fresolution): Fix typo.
35659
35660 2014-03-18 Richard Biener <rguenther@suse.de>
35661
35662 * doc/invoke.texi (flto): Update for changes in 4.9.
35663
35664 2014-03-18 Richard Biener <rguenther@suse.de>
35665
35666 * doc/loop.texi: Remove section on the removed lambda framework.
35667 Update loop docs with recent changes in preserving loop structure.
35668
35669 2014-03-18 Richard Biener <rguenther@suse.de>
35670
35671 * doc/lto.texi (-fresolution): Document.
35672
35673 2014-03-18 Richard Biener <rguenther@suse.de>
35674
35675 * doc/contrib.texi: Adjust my name.
35676
35677 2014-03-18 Jakub Jelinek <jakub@redhat.com>
35678
35679 PR ipa/58721
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.
35699
35700 2014-03-18 Tobias Burnus <burnus@net-b.de>
35701
35702 PR ipa/58721
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.
35706
35707 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
35708
35709 PR ipa/58721
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.
35715
35716 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
35717
35718 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
35719 proper constant for the store mode.
35720
35721 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
35722
35723 * symtab.c (change_decl_assembler_name): Fix transparent alias
35724 chain construction.
35725
35726 2014-03-16 Renlin Li <Renlin.Li@arm.com>
35727
35728 * config/aarch64/aarch64.c: Correct the comments about the
35729 aarch64 stack layout.
35730
35731 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
35732
35733 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
35734 check for GF_OMP_FOR_KIND_FOR.
35735
35736 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
35737
35738 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
35739 ymm and zmm register names.
35740
35741 2014-03-17 Jakub Jelinek <jakub@redhat.com>
35742
35743 PR target/60516
35744 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
35745 note creation for the 2010-08-31 changes.
35746
35747 2014-03-17 Marek Polacek <polacek@redhat.com>
35748
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.
35753
35754 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
35755
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.
35776
35777 2014-03-14 Richard Henderson <rth@redhat.com>
35778
35779 PR target/60525
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.
35803
35804 2014-03-14 Jakub Jelinek <jakub@redhat.com>
35805 Marek Polacek <polacek@redhat.com>
35806
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.
35811
35812 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
35813
35814 PR rtl-optimization/60508
35815 * lra-constraints.c (get_reload_reg): Add new parameter
35816 in_subreg_p.
35817 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
35818 Pass the new parameter values.
35819
35820 2014-03-14 Richard Biener <rguenther@suse.de>
35821
35822 * common.opt: Revert unintented changes from r205065.
35823 * opts.c: Likewise.
35824
35825 2014-03-14 Richard Biener <rguenther@suse.de>
35826
35827 PR middle-end/60518
35828 * cfghooks.c (split_block): Properly adjust all loops the
35829 block was a latch of.
35830
35831 2014-03-14 Martin Jambor <mjambor@suse.cz>
35832
35833 PR lto/60461
35834 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
35835 and simplify it.
35836
35837 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
35838
35839 PR target/59396
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.
35843
35844 2014-03-13 Richard Henderson <rth@redhat.com>
35845
35846 PR debug/60438
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.
35866
35867 2014-03-13 Jakub Jelinek <jakub@redhat.com>
35868
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.
35872
35873 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
35874
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.
35878
35879 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
35880
35881 PR rtl-optimization/57189
35882 * lra-constraints.c (process_alt_operands): Disfavor spilling
35883 vector pseudos.
35884
35885 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
35886
35887 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
35888
35889 2014-03-13 Jakub Jelinek <jakub@redhat.com>
35890
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.
35895
35896 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
35897
35898 PR target/60486
35899 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
35900 calls of avr_out_plus_1.
35901
35902 2014-03-13 Bin Cheng <bin.cheng@arm.com>
35903
35904 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
35905 BB's single pred and update the father loop's latch info later.
35906
35907 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
35908
35909 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
35910 (VEC_M): Likewise.
35911 (VEC_N): Likewise.
35912 (VEC_R): Likewise.
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.
35916
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.
35921
35922 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
35923 declarations.
35924 (rs6000_split_128bit_ok_p): Likewise.
35925
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.
35960
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.
35973
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
35984 simple move.
35985 (rs6000_expand_vector_extract): Likewise.
35986 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
35987 addressing.
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
36005 external function.
36006 (rs6000_split_128bit_ok_p): Likewise.
36007 (rs6000_handle_altivec_attribute): Create V1TImode from vector
36008 __int128_t and vector __uint128_t.
36009
36010 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
36011 and mode attributes.
36012 (VSX_M): Likewise.
36013 (VSX_M2): Likewise.
36014 (VSm): Likewise.
36015 (VSs): Likewise.
36016 (VSr): Likewise.
36017 (VSv): Likewise.
36018 (VS_scalar): Likewise.
36019 (VS_double): Likewise.
36020 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
36021
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.
36031
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.
36040 (VM2): Likewise.
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.
36050
36051 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
36052 mode iterators.
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.
36059
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.
36069
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.
36074
36075 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
36076
36077 * config/arc/arc.c (arc_predicate_delay_insns):
36078 Fix third argument passed to conditionalize_nonjump.
36079
36080 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
36081
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.
36088
36089 2014-03-12 Jakub Jelinek <jakub@redhat.com>
36090
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.
36096
36097 2014-03-12 Christian Bruel <christian.bruel@st.com>
36098
36099 PR target/60264
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.
36104
36105 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
36106
36107 PR tree-optimization/60454
36108 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
36109
36110 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36111
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.
36117
36118 2014-03-12 Jakub Jelinek <jakub@redhat.com>
36119 Marc Glisse <marc.glisse@inria.fr>
36120
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.
36124
36125 2014-03-12 Jakub Jelinek <jakub@redhat.com>
36126
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.
36132
36133 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
36134
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.
36140
36141 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
36142
36143 * config/arc/arc.c (conditionalize_nonjump): New function,
36144 broken out of ...
36145 (arc_ifcvt): ... this.
36146 (arc_predicate_delay_insns): Use it.
36147
36148 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
36149
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
36155 to "i".
36156 (umulsi3_highpart_i): Likewise.
36157
36158 2014-03-11 Richard Biener <rguenther@suse.de>
36159
36160 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
36161 Add asserts to guard possible wrong-code bugs.
36162
36163 2014-03-11 Richard Biener <rguenther@suse.de>
36164
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.
36172
36173 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
36174
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
36179 in prologue.
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.
36184
36185 2014-03-10 Jakub Jelinek <jakub@redhat.com>
36186
36187 PR ipa/60457
36188 * ipa.c (symtab_remove_unreachable_nodes): Don't call
36189 cgraph_get_create_node on VAR_DECLs.
36190
36191 2014-03-10 Richard Biener <rguenther@suse.de>
36192
36193 PR middle-end/60474
36194 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
36195
36196 2014-03-08 Douglas B Rupp <rupp@gnat.com>
36197
36198 * config/vms/vms.opt (vms_float_format): New variable.
36199
36200 2014-03-08 Tobias Burnus <burnus@net-b.de>
36201
36202 * doc/invoke.texi (-fcilkplus): Update implementation status.
36203
36204 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
36205 Richard Biener <rguenther@suse.de>
36206
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.
36211
36212 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
36213
36214 PR target/58271
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.
36218
36219 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
36220
36221 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
36222 for Solaris 11/x86 ld.
36223 * configure: Regenerate.
36224
36225 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
36226
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.
36237
36238 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
36239
36240 * common.opt (fira-loop-pressure): Mark as optimization.
36241
36242 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
36243
36244 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
36245 an OpenMP mappable type.
36246
36247 2014-03-06 Matthias Klose <doko@ubuntu.com>
36248
36249 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
36250 MULTILIB_OSDIRNAMES is not defined.
36251
36252 2014-03-06 Jakub Jelinek <jakub@redhat.com>
36253 Meador Inge <meadori@codesourcery.com>
36254
36255 PR target/58595
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.
36261
36262 2014-03-06 Richard Biener <rguenther@suse.de>
36263
36264 PR middle-end/60445
36265 PR lto/60424
36266 PR lto/60427
36267 Revert
36268 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
36269
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.
36274
36275 2014-03-06 Richard Biener <rguenther@suse.de>
36276
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.
36284
36285 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
36286
36287 PR debug/60381
36288 Revert:
36289 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
36290 PR debug/59992
36291 * cselib.c (remove_useless_values): Skip to avoid quadratic
36292 behavior if the condition moved from...
36293 (cselib_process_insn): ... here holds.
36294
36295 2014-03-05 Jakub Jelinek <jakub@redhat.com>
36296
36297 PR plugins/59335
36298 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
36299 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
36300
36301 PR plugins/59335
36302 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
36303 (TM_H): Add x86-tune.def.
36304
36305 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36306
36307 * config/aarch64/aarch64.c (generic_tunings):
36308 Use cortexa57_extra_costs.
36309
36310 2014-03-05 Jakub Jelinek <jakub@redhat.com>
36311
36312 PR lto/60404
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
36316 cost for in_lto_p.
36317
36318 2014-03-04 Heiher <r@hev.cc>
36319
36320 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
36321 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
36322
36323 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
36324
36325 * config/i386/predicates.md (const2356_operand): Change to ...
36326 (const2367_operand): ... this.
36327 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
36328 const2367_operand.
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.
36336
36337 2014-03-04 Richard Biener <rguenther@suse.de>
36338
36339 * lto-section-in.c (lto_get_section_data): Fix const cast.
36340
36341 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
36342
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.
36347
36348 2014-03-04 Richard Biener <rguenther@suse.de>
36349
36350 PR lto/60405
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
36354 for every section.
36355
36356 2014-03-04 Richard Biener <rguenther@suse.de>
36357
36358 PR tree-optimization/60382
36359 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
36360 dead PHIs a reduction.
36361
36362 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
36363
36364 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
36365 hint value.
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
36370 for locality <= 2.
36371 * config/i386/i386.c (ix86_option_override_internal): Enable
36372 -mprfchw with -mprefetchwt1.
36373
36374 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
36375
36376 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
36377 Mark as varying.
36378
36379 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
36380
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.
36386
36387 * config/arc/arc.opt (misize): Add PchIgnore property.
36388
36389 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36390
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.
36395
36396 2014-03-03 Nick Clifton <nickc@redhat.com>
36397
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.
36402
36403 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
36404
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.
36409
36410 2014-03-03 Tobias Grosser <tobias@grosser.es>
36411 Mircea Namolaru <mircea.namolaru@inria.fr>
36412
36413 PR tree-optimization/58028
36414 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
36415 scalar dimensions.
36416
36417 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
36418
36419 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
36420 not handled by recognizers.
36421
36422 2014-03-03 Jakub Jelinek <jakub@redhat.com>
36423
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.
36429
36430 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36431
36432 * config/rs6000/constraints.md: Document reserved use of "wc".
36433
36434 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
36435
36436 PR ipa/60150
36437 * ipa.c (function_and_variable_visibility): When dissolving comdat
36438 group, also set all symbols to local.
36439
36440 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
36441
36442 PR ipa/60306
36443
36444 Revert:
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.
36448
36449 2014-03-02 Jon Beniston <jon@beniston.com>
36450
36451 PR bootstrap/48230
36452 PR bootstrap/50927
36453 PR bootstrap/52466
36454 PR target/46898
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.
36461
36462 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
36463
36464 * dwarf2out.c (gen_subprogram_die): Tidy.
36465
36466 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
36467
36468 PR target/60071
36469 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
36470 (*mov_t_msb_neg_negc): ... this new insn.
36471
36472 2014-02-28 Jason Merrill <jason@redhat.com>
36473
36474 PR c++/58678
36475 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
36476 function.
36477
36478 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
36479
36480 PR c++/60314
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.
36485
36486 2014-02-28 Ian Bolton <ian.bolton@arm.com>
36487
36488 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
36489 we are not using general regs only.
36490
36491 2014-02-28 Richard Biener <rguenther@suse.de>
36492
36493 PR target/60280
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.
36498
36499 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
36500
36501 PR debug/59992
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.
36509
36510 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
36511
36512 PR debug/59992
36513 * cselib.c (remove_useless_values): Skip to avoid quadratic
36514 behavior if the condition moved from...
36515 (cselib_process_insn): ... here holds.
36516
36517 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
36518
36519 PR debug/57232
36520 * var-tracking.c (vt_initialize): Apply the same condition to
36521 preserve the CFA base value.
36522
36523 2014-02-28 Joey Ye <joey.ye@arm.com>
36524
36525 PR target/PR60169
36526 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
36527 if reload in progress or completed.
36528
36529 2014-02-28 Tobias Burnus <burnus@net-b.de>
36530
36531 PR middle-end/60147
36532 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
36533 NAMELIST_DECL.
36534
36535 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
36536
36537 * doc/tm.texi.in (Condition Code Status): Update documention for
36538 relative locations of cc0-setter and cc0-user.
36539
36540 2014-02-27 Jeff Law <law@redhat.com>
36541
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) ...).
36546
36547 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
36548 Jeff Law <law@redhat.com>
36549
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.
36555
36556 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
36557
36558 PR target/59222
36559 * lra.c (lra_emit_add): Check SUBREG too.
36560
36561 2014-02-27 Andreas Schwab <schwab@suse.de>
36562
36563 * config/m68k/m68k.c (m68k_option_override): Disable
36564 -flive-range-shrinkage for classic m68k.
36565 (m68k_override_options_after_change): Likewise.
36566
36567 2014-02-27 Marek Polacek <polacek@redhat.com>
36568
36569 PR middle-end/59223
36570 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
36571 -Wmaybe-uninitialized.
36572
36573 2014-02-27 Alan Modra <amodra@gmail.com>
36574
36575 PR target/57936
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.
36578
36579 2014-02-26 Richard Biener <rguenther@suse.de>
36580
36581 PR bootstrap/60343
36582 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
36583
36584 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
36585
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.
36602
36603 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
36604
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.
36614
36615 2014-02-26 Richard Biener <rguenther@suse.de>
36616
36617 PR ipa/60327
36618 * ipa.c (walk_polymorphic_call_targets): Properly guard
36619 call to inline_update_overall_summary.
36620
36621 2014-02-26 Bin Cheng <bin.cheng@arm.com>
36622
36623 PR target/60280
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.
36628
36629 2014-02-25 Andrew Pinski <apinski@cavium.com>
36630
36631 * builtins.c (expand_builtin_thread_pointer): Create a new target
36632 when the target is NULL.
36633
36634 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
36635
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.
36642
36643 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36644
36645 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
36646 to use canonical form for nor<mode>3.
36647
36648 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36649
36650 PR target/55426
36651 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
36652 conversions.
36653
36654 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
36655
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
36661 PREFETCHWT1 CPUID.
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.
36676
36677 2014-02-25 Richard Biener <rguenther@suse.de>
36678
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.
36685
36686 2014-02-25 Richard Biener <rguenther@suse.de>
36687
36688 PR lto/60319
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.
36693
36694 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
36695
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.
36700
36701 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
36702
36703 PR rtl-optimization/60292
36704 * sel-sched.c (fill_vec_av_set): Do not reset target availability
36705 bit fot the fence instruction.
36706
36707 2014-02-24 Alangi Derick <alangiderick@gmail.com>
36708
36709 * calls.h: Fix typo in comment.
36710
36711 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
36712
36713 * config/pa/pa.c (pa_output_move_double): Don't valididate when
36714 adjusting offsetable addresses.
36715
36716 2014-02-24 Guozhi Wei <carrot@google.com>
36717
36718 * sparseset.h (sparseset_pop): Fix the wrong index.
36719
36720 2014-02-24 Walter Lee <walt@tilera.com>
36721
36722 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
36723 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
36724 triplet.
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.
36744 (extzv): Ditto.
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.
36777
36778 2014-02-24 Martin Jambor <mjambor@suse.cz>
36779
36780 PR ipa/60266
36781 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
36782 there are no parameter descriptors.
36783
36784 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
36785
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.
36791
36792 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
36793
36794 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
36795 names.
36796
36797 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
36798
36799 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
36800 definition.
36801
36802 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
36803
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.
36806
36807 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
36808
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.
36816
36817 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36818
36819 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
36820 to permit subregs.
36821
36822 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36823
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
36830 prototype.
36831 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
36832 lve*x built-ins.
36833 (altivec_expand_stvex_be): New function.
36834
36835 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
36836
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.
36841
36842 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
36843
36844 PR target/60298
36845 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
36846 instead of emit_move_insn.
36847
36848 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36849
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.
36854
36855 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36856
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>.
36891
36892 2014-02-21 Catherine Moore <clm@codesourcery.com>
36893
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.
36897
36898 2014-02-21 Richard Biener <rguenther@suse.de>
36899
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.
36907
36908 2014-02-21 Richard Biener <rguenther@suse.de>
36909
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.
36913
36914 2014-02-21 Jakub Jelinek <jakub@redhat.com>
36915
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.
36926
36927 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
36928
36929 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
36930 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
36931
36932 2014-02-21 Nick Clifton <nickc@redhat.com>
36933
36934 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
36935 (pushhi1): Likewise.
36936 (popqi1): Add mode to pre_dec.
36937 (pophi1): Likewise.
36938
36939 2014-02-21 Jakub Jelinek <jakub@redhat.com>
36940
36941 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
36942 mode for mask of V8SFmode permutation.
36943
36944 2014-02-20 Richard Henderson <rth@redhat.com>
36945
36946 PR c++/60272
36947 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
36948 a new pseudo for OLDVAL.
36949
36950 2014-02-20 Jakub Jelinek <jakub@redhat.com>
36951
36952 PR target/57896
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
36958 if d->testing_p.
36959
36960 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
36961
36962 * emit-rtl.c (gen_reg_rtx): Assert that
36963 crtl->emit.regno_pointer_align_length is non-zero.
36964
36965 2014-02-20 Richard Henderson <rth@redhat.com>
36966
36967 PR c++/60272
36968 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
36969 on failure the store back into EXPECT.
36970
36971 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
36972 Sandra Loosemore <sandra@codesourcery.com>
36973
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
36986 functions.
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.
36994
36995 2014-02-20 Richard Biener <rguenther@suse.de>
36996
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.
37000
37001 2014-02-20 Martin Jambor <mjambor@suse.cz>
37002
37003 PR ipa/55260
37004 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
37005 info when checking whether lattices are bottom.
37006
37007 2014-02-20 Richard Biener <rguenther@suse.de>
37008
37009 PR middle-end/60221
37010 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
37011 regions at -O0.
37012
37013 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
37014
37015 PR ipa/58555
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.
37022
37023 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
37024
37025 PR target/60204
37026 * config/i386/i386.c (classify_argument): Pass structures of size
37027 64 bytes or less in register.
37028
37029 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
37030 Kirill Yukhin <kirill.yukhin@intel.com>
37031
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
37043 attribute to sse.
37044 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
37045 Ditto.
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.
37052
37053 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37054
37055 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
37056 bit of zero.
37057
37058 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
37059
37060 PR target/60207
37061 * config/i386/i386.c (construct_container): Remove TFmode check
37062 for X86_64_INTEGER_CLASS.
37063
37064 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
37065
37066 PR target/59794
37067 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
37068 only when -Wpsabi is enabled.
37069
37070 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
37071
37072 PR target/59799
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.
37076
37077 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
37078
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.
37082
37083 2014-02-19 Richard Biener <rguenther@suse.de>
37084
37085 PR ipa/60243
37086 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
37087 for all calls.
37088
37089 2014-02-19 Richard Biener <rguenther@suse.de>
37090
37091 PR ipa/60243
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.
37096
37097 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
37098
37099 * ipa.c (function_and_variable_visibility): Also clear WEAK
37100 flag when disolving COMDAT_GROUP.
37101
37102 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
37103
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
37114 ancestor function.
37115 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
37116
37117 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
37118
37119 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
37120 inline clones when edge disappears.
37121
37122 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
37123
37124 PR target/60203
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
37130 not allowed.
37131 (mov<mode>_64bit_dm): Likewise.
37132 (movtd_64bit_nodm): Likewise.
37133
37134 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
37135
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.
37139
37140 2014-02-18 Jakub Jelinek <jakub@redhat.com>
37141
37142 PR sanitizer/60142
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.
37147
37148 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
37149
37150 PR target/60205
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.
37155
37156 2014-02-18 Kai Tietz <ktietz@redhat.com>
37157
37158 PR target/60193
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.
37162
37163 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
37164
37165 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
37166 assertion with conditional return.
37167
37168 2014-02-18 Jakub Jelinek <jakub@redhat.com>
37169 Uros Bizjak <ubizjak@gmail.com>
37170
37171 PR driver/60233
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.
37175
37176 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
37177
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
37188 generated regions.
37189
37190 2014-02-17 Richard Biener <rguenther@suse.de>
37191
37192 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
37193 release SSA defs of pattern stmts.
37194
37195 2014-02-17 Richard Biener <rguenther@suse.de>
37196
37197 * tree-inline.c (expand_call_inline): Release the virtual
37198 operand defined by the call we are about to inline.
37199
37200 2014-02-17 Richard Biener <rguenther@suse.de>
37201
37202 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
37203
37204 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
37205 Ilya Tocar <ilya.tocar@intel.com>
37206
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
37214
37215 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37216
37217 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
37218 (p8_vmrgow): Likewise.
37219
37220 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37221
37222 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
37223 endian targets.
37224
37225 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
37226
37227 PR target/60203
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.
37235
37236 2014-02-15 Alan Modra <amodra@gmail.com>
37237
37238 PR target/58675
37239 PR target/57935
37240 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
37241 find_replacement on parts of insn rtl that might be reloaded.
37242
37243 2014-02-15 Richard Biener <rguenther@suse.de>
37244
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.
37248
37249 2014-02-14 Jeff Law <law@redhat.com>
37250
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.
37256
37257 2014-02-14 Roland McGrath <mcgrathr@google.com>
37258
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.
37264
37265 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
37266 Richard Earnshaw <rearnsha@arm.com>
37267
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.
37275
37276 2014-02-14 Kyle McMartin <kyle@redhat.com>
37277
37278 PR pch/60010
37279 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
37280
37281 2014-02-14 Richard Biener <rguenther@suse.de>
37282
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.
37286
37287 2014-02-14 Richard Biener <rguenther@suse.de>
37288
37289 PR lto/60179
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.
37301
37302 2014-02-14 Jakub Jelinek <jakub@redhat.com>
37303
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.
37308
37309 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
37310
37311 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
37312 nreverse() because it changes the content of original tree list.
37313
37314 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
37315
37316 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
37317 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
37318
37319 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
37320
37321 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
37322 GNU coding standards.
37323
37324 2014-02-13 Jakub Jelinek <jakub@redhat.com>
37325
37326 PR debug/60152
37327 * dwarf2out.c (gen_subprogram_die): Don't call
37328 add_calling_convention_attribute if subr_die is old_die.
37329
37330 2014-02-13 Sharad Singhai <singhai@google.com>
37331
37332 * doc/optinfo.texi: Fix order of nodes.
37333
37334 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
37335
37336 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
37337 operands[2], not operands[3].
37338
37339 2014-02-13 Richard Biener <rguenther@suse.de>
37340
37341 PR bootstrap/59878
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.
37347
37348 2014-02-13 Jakub Jelinek <jakub@redhat.com>
37349
37350 PR target/43546
37351 * expr.c (compress_float_constant): If x is a hard register,
37352 extend into a pseudo and then move to x.
37353
37354 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
37355
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).
37359
37360 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
37361
37362 * opts.c (option_name): Remove "enabled by default" rider.
37363
37364 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
37365
37366 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
37367
37368 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
37369 Uros Bizjak <ubizjak@gmail.com>
37370
37371 PR target/60151
37372 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
37373 * configure: Regenerated.
37374
37375 2014-02-12 Richard Biener <rguenther@suse.de>
37376
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
37385 prefix address.
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>
37390 member and adjust.
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.
37394
37395 2014-02-12 Richard Biener <rguenther@suse.de>
37396
37397 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
37398 when we found a dependence.
37399
37400 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
37401
37402 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
37403 common code...
37404 (maybe_fold_stmt): ... into this new function.
37405 * omp-low.c (lower_omp): Update comment.
37406
37407 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
37408 last use.
37409
37410 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
37411 dereference.
37412
37413 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
37414
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.
37423
37424 2014-02-12 Richard Biener <rguenther@suse.de>
37425
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.
37431
37432 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
37433
37434 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
37435 arg_loc.
37436 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
37437
37438 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
37439
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.
37443
37444 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
37445
37446 PR lto/59468
37447 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
37448 and wrapper.
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
37466 parameter.
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.
37470
37471 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
37472
37473 PR target/49008
37474 * genautomata.c (add_presence_absence): Fix typo with
37475 {final_}presence_list.
37476
37477 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
37478
37479 PR target/60137
37480 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
37481 for VSX/Altivec vectors that land in GPR registers.
37482
37483 2014-02-11 Richard Henderson <rth@redhat.com>
37484 Jakub Jelinek <jakub@redhat.com>
37485
37486 PR debug/59776
37487 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
37488 around drhs if type conversion to lacc->type is not useless.
37489
37490 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37491
37492 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
37493 tuning struct.
37494 (cortex-a57.cortex-a53): Likewise.
37495 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
37496
37497 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37498
37499 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
37500 arm_restrict_it.
37501
37502 2014-02-11 Renlin Li <Renlin.Li@arm.com>
37503
37504 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
37505 add_options_for_arm_vfp3.
37506
37507 2014-02-11 Jeff Law <law@redhat.com>
37508
37509 PR middle-end/54041
37510 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
37511 object with an undesirable mode.
37512
37513 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
37514
37515 PR libgomp/60107
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.
37519
37520 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
37521
37522 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
37523 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
37524
37525 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
37526
37527 * config/microblaze/microblaze.c: Extend mcpu version format
37528
37529 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
37530
37531 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
37532
37533 2014-02-10 Richard Henderson <rth@redhat.com>
37534
37535 PR target/59927
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
37541 respect to ms-abi.
37542
37543 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
37544
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.
37549
37550 2014-02-10 Nick Clifton <nickc@redhat.com>
37551
37552 * config/mn10300/mn10300.c (popcount): New function.
37553 (mn10300_expand_prologue): Include saved registers in stack usage
37554 count.
37555
37556 2014-02-10 Jeff Law <law@redhat.com>
37557
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.
37561
37562 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
37563
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.
37574
37575 2014-02-10 Richard Biener <rguenther@suse.de>
37576
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.
37581
37582 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37583
37584 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
37585 coretex to cortex.
37586
37587 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
37588
37589 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
37590 proper constants and fix formatting.
37591 (possible_polymorphic_call_targets): Fix formatting.
37592
37593 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
37594 Ilya Tocar <ilya.tocar@intel.com>
37595
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.
37638
37639 2014-02-08 Jakub Jelinek <jakub@redhat.com>
37640
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.
37644
37645 PR c/59984
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
37651 than copying them.
37652
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.
37662
37663 2014-02-08 Terry Guo <terry.guo@arm.com>
37664
37665 * doc/invoke.texi: Document ARM -march=armv7e-m.
37666
37667 2014-02-08 Jakub Jelinek <jakub@redhat.com>
37668
37669 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
37670 flag on __cilkrts_rethrow builtin.
37671
37672 PR ipa/60026
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.
37676
37677 Revert:
37678 2014-02-04 Jakub Jelinek <jakub@redhat.com>
37679
37680 PR ipa/60026
37681 * tree-inline.c (copy_forbidden): Fail for
37682 __attribute__((optimize (0))) functions.
37683
37684 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
37685
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.
37690
37691 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
37692
37693 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
37694 lookup in the vtable constructor.
37695
37696 2014-02-07 Jeff Law <law@redhat.com>
37697
37698 PR target/40977
37699 * config/m68k/m68k.md (ashldi_extsi): Turn into a
37700 define_insn_and_split.
37701
37702 * ipa-inline.c (inline_small_functions): Fix typos.
37703
37704 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
37705
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
37710 instructions.
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.
37719
37720 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
37721
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.
37726
37727 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
37728
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.
37736
37737 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
37738
37739 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
37740 to match for the exit block.
37741
37742 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
37743
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.
37747
37748 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
37749
37750 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
37751
37752 2014-02-07 Richard Biener <rguenther@suse.de>
37753
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.
37758
37759 2014-02-07 Jakub Jelinek <jakub@redhat.com>
37760
37761 PR c++/60082
37762 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
37763 __builtin_setjmp_receiver.
37764
37765 2014-02-07 Richard Biener <rguenther@suse.de>
37766
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.
37775
37776 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
37777
37778 PR ipa/59918
37779 * ipa-devirt.c (record_target_from_binfo): Remove overactive
37780 sanity check.
37781
37782 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
37783
37784 PR ipa/59469
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.
37792
37793 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
37794
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.
37799
37800 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
37801
37802 PR target/60077
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
37810 ix86_expand_push.
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.
37816
37817 2014-02-06 Jakub Jelinek <jakub@redhat.com>
37818
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.
37822
37823 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37824
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.
37831
37832 2014-02-06 Jakub Jelinek <jakub@redhat.com>
37833
37834 PR target/59575
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
37837 bitmask.
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
37842 XEXP.
37843
37844 PR debug/59992
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.
37847
37848 2014-02-06 Alan Modra <amodra@gmail.com>
37849
37850 PR target/60032
37851 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
37852 change SDmode to DDmode when lra_in_progress.
37853
37854 2014-02-06 Jakub Jelinek <jakub@redhat.com>
37855
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.
37862
37863 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
37864
37865 PR target/60062
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.
37870
37871 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
37872
37873 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
37874 for SYMBOL_REF in large memory model.
37875
37876 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37877
37878 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
37879 and crypto support.
37880 (cortex-a57): Likewise.
37881 (cortex-a57.cortex-a53): Likewise.
37882
37883 2014-02-06 Yury Gribov <y.gribov@samsung.com>
37884 Kugan Vivekanandarajah <kuganv@linaro.org>
37885
37886 * config/arm/arm.c (arm_vector_alignment_reachable): Check
37887 unaligned_access.
37888 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
37889
37890 2014-02-06 Richard Biener <rguenther@suse.de>
37891
37892 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
37893 set_loop_copy and initialize_original_copy_tables.
37894
37895 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
37896
37897 * config/aarch64/aarch64-simd.md
37898 (aarch64_ashr_simddi): Change QI to SI.
37899
37900 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
37901 Jakub Jelinek <jakub@redhat.com>
37902
37903 PR middle-end/60013
37904 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
37905 of the dataflow.
37906
37907 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37908
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.
37916
37917 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37918
37919 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
37920 generation for -maltivec=be.
37921 (altivec_vsumsws): Simplify redundant test.
37922
37923 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37924
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
37931 BYTES_BIG_ENDIAN.
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
37938 internal use).
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.
37951
37952 2014-02-05 Richard Henderson <rth@redhat.com>
37953
37954 PR debug/52727
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.
37960
37961 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
37962
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.
37967
37968 2014-02-05 Jakub Jelinek <jakub@redhat.com>
37969
37970 PR ipa/59947
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.
37974
37975 PR middle-end/57499
37976 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
37977 bb with no successors.
37978
37979 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
37980
37981 PR target/59718
37982 * doc/invoke.texi (-march): Clarify documentation for ARM.
37983 (-mtune): Likewise.
37984 (-mcpu): Likewise.
37985
37986 2014-02-05 Richard Biener <rguenther@suse.de>
37987
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.
37992
37993 2014-02-05 Nick Clifton <nickc@redhat.com>
37994
37995 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
37996 accept extended registers in any mode when compiling for the MN10300.
37997
37998 2014-02-05 Yury Gribov <y.gribov@samsung.com>
37999
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.
38005
38006 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
38007
38008 * ipa-prop.c (detect_type_change): Shor circuit testing of
38009 type changes on THIS pointer.
38010
38011 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
38012
38013 PR target/59777
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
38017 addresses.
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.
38022
38023 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
38024
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.
38029
38030 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
38031
38032 * config/host-linux.c (linux_gt_pch_use_address): Don't
38033 use SSIZE_MAX because it is not always defined.
38034
38035 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
38036
38037 PR bootstrap/59913
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
38045 outputs of jumps.
38046
38047 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
38048
38049 PR ipa/60058
38050 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
38051 is non-null.
38052
38053 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
38054
38055 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
38056 visibility is safe.
38057
38058 2014-02-04 Marek Polacek <polacek@redhat.com>
38059
38060 * gdbinit.in (pel): Define.
38061
38062 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
38063
38064 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
38065 behavior.
38066
38067 2014-02-04 Richard Biener <rguenther@suse.de>
38068
38069 PR lto/59723
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.
38075
38076 2014-02-04 Jakub Jelinek <jakub@redhat.com>
38077
38078 PR tree-optimization/60002
38079 * cgraphclones.c (build_function_decl_skip_args): Clear
38080 DECL_LANG_SPECIFIC.
38081
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.
38091
38092 PR ipa/60026
38093 * tree-inline.c (copy_forbidden): Fail for
38094 __attribute__((optimize (0))) functions.
38095
38096 PR other/58712
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.
38101
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.
38105
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.
38109
38110 2014-02-04 Richard Biener <rguenther@suse.de>
38111
38112 PR tree-optimization/60012
38113 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
38114 TBAA disambiguation to all DDRs.
38115
38116 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
38117
38118 PR target/59788
38119 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
38120 (LINK_SPEC): Use it for -shared, -shared-libgcc.
38121
38122 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
38123
38124 PR ipa/59882
38125 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
38126
38127 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
38128
38129 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
38130 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
38131
38132 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
38133
38134 PR ipa/59831
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.
38142
38143 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
38144
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.
38151
38152 2014-02-03 Richard Henderson <rth@twiddle.net>
38153
38154 PR tree-opt/59924
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.
38160
38161 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
38162
38163 PR gcov-profile/58602
38164 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
38165
38166 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
38167
38168 PR ipa/59831
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
38186 POINTER_PLUS_EXPR.
38187 (vtable_pointer_value_to_binfo): ... here.
38188 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
38189
38190 2014-02-03 Teresa Johnson <tejohnson@google.com>
38191
38192 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
38193 redef of outer loop index variable.
38194
38195 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
38196
38197 PR c++/53017
38198 PR c++/59211
38199 * doc/extend.texi (Function Attributes): Typo.
38200
38201 2014-02-03 Cong Hou <congh@google.com>
38202
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.
38207
38208 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
38209
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.
38213
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.
38217
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.
38221
38222 * config/i386/i386-c.c (ix86_target_macros): Define
38223 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
38224
38225 * doc/invoke.texi: Document -mlong-double-128.
38226
38227 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
38228
38229 PR rtl-optimization/60024
38230 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
38231
38232 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
38233
38234 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
38235
38236 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
38237
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.
38241
38242 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
38243
38244 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
38245 on the insn being emitted.
38246
38247 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
38248 Will Deacon <will.deacon@arm.com>
38249
38250 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
38251
38252 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
38253
38254 * config/arm/arm-tables.opt: Regenerate.
38255
38256 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38257
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
38267 element order.
38268 (*altivec_vperm_<mode>_uns_internal): New insn having previous
38269 behavior of altivec_vperm_<mode>_uns.
38270
38271 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38272
38273 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
38274 (altivec_vsumsws): Add handling for -maltivec=be with a little
38275 endian target.
38276 (altivec_vsumsws_direct): New.
38277 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
38278 gen_altivec_vsumsws.
38279
38280 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
38281
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.
38286
38287 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
38288
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.
38292
38293 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
38294
38295 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
38296 preserverd by passthrough, do not propagate the type.
38297
38298 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
38299
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.
38303
38304 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
38305
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
38326 patterns.
38327
38328 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
38329
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.
38339
38340 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
38341
38342 PR target/60017
38343 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
38344 when calculating size of integer atomic types.
38345
38346 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
38347
38348 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
38349
38350 2014-02-01 Jakub Jelinek <jakub@redhat.com>
38351
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.
38357
38358 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
38359
38360 PR bootstrap/59985
38361 * lra-constraints.c (process_alt_operands): Update reload_sum only
38362 on the first pass.
38363
38364 2014-01-31 Richard Henderson <rth@redhat.com>
38365
38366 PR middle-end/60004
38367 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
38368 until after else_eh is processed.
38369
38370 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
38371
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.
38384
38385 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
38386
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.
38391 (*andhi_1): Ditto.
38392 (*andqi_1): 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.
38399 (kunpckhi): 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>):
38409 Ditto.
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.
38460 (sd): Ditto.
38461
38462 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
38463
38464 * doc/extend.texi (Vector Extensions): Document ?: in C++.
38465
38466 2014-01-31 Richard Biener <rguenther@suse.de>
38467
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.
38472
38473 2014-01-30 DJ Delorie <dj@redhat.com>
38474
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.
38479
38480 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38481
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.
38496
38497 2014-01-30 Jakub Jelinek <jakub@redhat.com>
38498
38499 PR target/59923
38500 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
38501 frame related instructions.
38502
38503 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
38504
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.
38508
38509 2014-01-30 Jakub Jelinek <jakub@redhat.com>
38510
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.
38514
38515 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38516
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
38520 and altivec.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.
38540
38541 2014-01-30 Richard Biener <rguenther@suse.de>
38542
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.
38547
38548 2014-01-30 Alangi Derick <alangiderick@gmail.com>
38549
38550 * README.Portability: Fix typo.
38551
38552 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
38553
38554 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
38555 comparison_operator with ordered_comparison_operator.
38556
38557 2014-01-30 Nick Clifton <nickc@redhat.com>
38558
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.
38566
38567 2014-01-30 Nick Clifton <nickc@redhat.com>
38568 DJ Delorie <dj@redhat.com>
38569
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.
38574
38575 2014-01-30 Richard Biener <rguenther@suse.de>
38576
38577 PR tree-optimization/59903
38578 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
38579 check properly.
38580
38581 2014-01-30 Jason Merrill <jason@redhat.com>
38582
38583 PR c++/59633
38584 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
38585
38586 PR c++/59645
38587 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
38588
38589 2014-01-30 Richard Biener <rguenther@suse.de>
38590
38591 PR tree-optimization/59951
38592 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
38593
38594 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
38595
38596 PR target/59784
38597 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
38598 SFmode to DFmode case.
38599
38600 2014-01-29 DJ Delorie <dj@redhat.com>
38601
38602 * config/msp430/msp430.opt (-minrt): New.
38603 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
38604 if -minrt given.
38605 (ENDFILE_SPEC): Likewise.
38606
38607 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
38608
38609 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
38610 (estimate_function_body_sizes): Use it.
38611
38612 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
38613
38614 PR c++/58561
38615 * dwarf2out.c (is_cxx_auto): New.
38616 (is_base_type): Use it.
38617 (gen_type_die_with_usage): Likewise.
38618
38619 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38620
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.
38656
38657 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
38658
38659 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
38660 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
38661 whitespace.
38662
38663 2014-01-29 Richard Biener <rguenther@suse.de>
38664
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.
38671
38672 2014-01-29 Richard Biener <rguenther@suse.de>
38673
38674 * lto-streamer.h (LTO_major_version): Bump to 3.
38675 (LTO_minor_version): Reset to 0.
38676
38677 2014-01-29 Renlin Li <Renlin.Li@arm.com>
38678
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.
38687
38688 2014-01-29 Richard Biener <rguenther@suse.de>
38689
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.
38695
38696 2014-01-29 Jakub Jelinek <jakub@redhat.com>
38697
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
38716 caller.
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.
38745
38746 PR other/58712
38747 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
38748 For REGs set ORIGINAL_REGNO.
38749
38750 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
38751
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
38754 than hi/lo pair.
38755
38756 2014-01-29 Jakub Jelinek <jakub@redhat.com>
38757
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.
38761
38762 2014-01-28 Jason Merrill <jason@redhat.com>
38763
38764 PR c++/53756
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
38768 on definition.
38769
38770 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
38771
38772 PR target/59672
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
38778 for TARGET_16BIT.
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.
38784
38785 2014-01-28 Jakub Jelinek <jakub@redhat.com>
38786
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.
38790
38791 2014-01-28 Richard Biener <rguenther@suse.de>
38792
38793 PR tree-optimization/58742
38794 * tree-ssa-forwprop.c (associate_plusminus): Handle
38795 pointer subtraction of the form (T)(P + A) - (T)P.
38796
38797 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
38798
38799 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
38800 at const_int_cost.
38801
38802 2014-01-28 Richard Biener <rguenther@suse.de>
38803
38804 Revert
38805 2014-01-28 Richard Biener <rguenther@suse.de>
38806
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.
38813
38814 2014-01-28 Richard Biener <rguenther@suse.de>
38815
38816 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
38817
38818 2014-01-28 Richard Biener <rguenther@suse.de>
38819
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.
38826
38827 2014-01-28 Alan Modra <amodra@gmail.com>
38828
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.
38834
38835 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
38836
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.
38840
38841 2014-01-27 Steve Ellcey <sellcey@mips.com>
38842
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
38846 of TARGET_DSP.
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.
38850
38851 2014-01-27 Jeff Law <law@redhat.com>
38852
38853 * ipa-inline.c (inline_small_functions): Fix typo.
38854
38855 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
38856
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.
38929
38930 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
38931
38932 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
38933 New.
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.
38968
38969 2014-01-27 Jakub Jelinek <jakub@redhat.com>
38970
38971 PR bootstrap/59934
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
38974 reached.
38975
38976 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
38977
38978 * common/config/arm/arm-common.c
38979 (arm_rewrite_mcpu): Handle multiple names.
38980 * config/arm/arm.h
38981 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
38982
38983 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
38984
38985 * gimple-builder.h (create_gimple_tmp): Delete.
38986
38987 2014-01-27 Christian Bruel <christian.bruel@st.com>
38988
38989 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
38990 words comparisons.
38991
38992 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
38993
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.
38997
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.
39003
39004 2014-01-25 Walter Lee <walt@tilera.com>
39005
39006 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
39007 avoid clobbering a live register.
39008
39009 2014-01-25 Walter Lee <walt@tilera.com>
39010
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}.
39015
39016 2014-01-25 Walter Lee <walt@tilera.com>
39017
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
39021 STACK_BOUNDARY.
39022 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
39023 (BIGGEST_ALIGNMENT): Ditto.
39024 (BIGGEST_FIELD_ALIGNMENT): Ditto.
39025
39026 2014-01-25 Walter Lee <walt@tilera.com>
39027
39028 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
39029 insns before bundling.
39030 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
39031
39032 2014-01-25 Walter Lee <walt@tilera.com>
39033
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.
39037
39038 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
39039
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.
39047
39048 2014-01-25 Walter Lee <walt@tilera.com>
39049
39050 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
39051 (clzdi2): Ditto.
39052 (ffsdi2): Ditto.
39053
39054 2014-01-25 Walter Lee <walt@tilera.com>
39055
39056 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
39057 (TARGET_EXPAND_TO_RTL_HOOK): Define.
39058
39059 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
39060
39061 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
39062 Handle XOR.
39063
39064 2014-01-25 Jakub Jelinek <jakub@redhat.com>
39065
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.
39069
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.
39074
39075 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
39076
39077 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
39078 flag_cilkplus.
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.
39088 (gate): Likewise.
39089
39090 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
39091
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
39095 here.
39096
39097 2014-01-24 Jeff Law <law@redhat.com>
39098
39099 PR tree-optimization/59919
39100 * tree-vrp.c (find_assert_locations_1): Do not register asserts
39101 for non-returning calls.
39102
39103 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
39104
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.
39109
39110 2014-01-24 Dodji Seketeli <dodji@redhat.com>
39111
39112 * input.c (add_file_to_cache_tab): Handle the case where fopen
39113 returns NULL.
39114
39115 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
39116
39117 PR target/59929
39118 * config/i386/i386.md (pushsf splitter): Get stack adjustment
39119 from push operand if code of push isn't PRE_DEC.
39120
39121 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
39122
39123 PR target/59909
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.
39127
39128 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
39129 -mquad-memory or -mquad-memory-atomic switches.
39130
39131 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
39132 -mquad-memory-atomic to ISA 2.07 support.
39133
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.
39137
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.
39146
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.
39152
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
39156 instruction.
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.
39162 instruction.
39163 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
39164 insure the address is valid for the stqcrx. instruction.
39165
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.
39169
39170 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
39171
39172 PR regression/59915
39173 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
39174 there is a danger of looping.
39175
39176 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
39177
39178 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
39179 force flag_ira_loop_pressure if set via command line.
39180
39181 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
39182
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.
39190
39191 2014-01-23 Nick Clifton <nickc@redhat.com>
39192
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
39197 430x multilibs.
39198
39199 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
39200 Alex Velenko <Alex.Velenko@arm.com>
39201
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.
39255
39256 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
39257
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.
39281
39282 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
39283
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.
39291
39292 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
39293
39294 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
39295 New define_insn.
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.
39301
39302 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
39303
39304 * config/microblaze/microblaze.md: Add trap insn and attribute
39305
39306 2014-01-23 Dodji Seketeli <dodji@redhat.com>
39307
39308 PR preprocessor/58580
39309 * input.h (location_get_source_line): Take an additional line_size
39310 parameter.
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
39324 read_line_num.
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
39335
39336 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
39337 Ilya Tocar <ilya.tocar@intel.com>
39338
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.
39343 (kmovw): Ditto.
39344
39345 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
39346
39347 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
39348 (_mm512_storeu_si512): Ditto.
39349
39350 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
39351
39352 PR target/52125
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.
39357
39358 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
39359
39360 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
39361
39362 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
39363
39364 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
39365 Enable for generic and recent AMD targets.
39366
39367 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
39368
39369 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
39370 ARG_SIZE note when adjustment was eliminated.
39371
39372 2014-01-22 Jeff Law <law@redhat.com>
39373
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.
39382
39383 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
39384
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.
39388
39389 2014-01-22 Tom Tromey <tromey@redhat.com>
39390
39391 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
39392 PARAMS.
39393 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
39394
39395 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
39396
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.
39400
39401 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
39402
39403 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
39404 (mips_move_from_gpr_cost): Likewise.
39405
39406 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
39407
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.
39412
39413 2014-01-21 Jakub Jelinek <jakub@redhat.com>
39414
39415 PR target/59003
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.
39420
39421 2014-01-20 DJ Delorie <dj@redhat.com>
39422
39423 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
39424 that CLOBBERs are REGs before propogating their values.
39425
39426 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
39427
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.
39448
39449 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
39450
39451 PR target/59685
39452 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
39453 mode attribute in insn output.
39454
39455 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
39456
39457 * output.h (output_constant): Delete.
39458 * varasm.c (output_constant): Make private.
39459
39460 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
39461
39462 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
39463
39464 2014-01-20 Jakub Jelinek <jakub@redhat.com>
39465
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.
39473
39474 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
39475
39476 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
39477 for SImode_address_operand operands, having only a REG argument.
39478
39479 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
39480
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.
39484
39485 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
39486
39487 * doc/invoke.texi (-march): Clarify documentation for AArch64.
39488 (-mtune): Likewise.
39489 (-mcpu): Likewise.
39490
39491 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
39492
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.
39499
39500 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
39501
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.
39507
39508 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39509 Iain Sandoe <iain@codesourcery.com>
39510
39511 PR bootstrap/59496
39512 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
39513 warning. Amend comment to reflect current functionality.
39514
39515 2014-01-20 Richard Biener <rguenther@suse.de>
39516
39517 PR middle-end/59860
39518 * builtins.c (fold_builtin_strcat): Remove case better handled
39519 by tree-ssa-strlen.c.
39520
39521 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
39522
39523 * config/aarch64/aarch64.opt
39524 (mcpu, march, mtune): Make case-insensitive.
39525
39526 2014-01-20 Jakub Jelinek <jakub@redhat.com>
39527
39528 PR target/59880
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.
39531
39532 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
39533
39534 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
39535
39536 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
39537
39538 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
39539 long non-pic millicode calls.
39540
39541 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39542
39543 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
39544
39545 2014-01-19 Kito Cheng <kito@0xlab.org>
39546
39547 * builtins.c (expand_movstr): Check movstr expand done or fail.
39548
39549 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
39550 H.J. Lu <hongjiu.lu@intel.com>
39551
39552 PR target/59379
39553 * config/i386/i386.md (*lea<mode>): Zero-extend return register
39554 to DImode for zero-extended addresses.
39555
39556 2014-01-19 Jakub Jelinek <jakub@redhat.com>
39557
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).
39561
39562 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
39563
39564 PR bootstrap/59580
39565 PR bootstrap/59583
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}.
39573
39574 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
39575
39576 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
39577 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
39578
39579 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
39580
39581 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
39582
39583 2014-01-18 Jakub Jelinek <jakub@redhat.com>
39584
39585 PR target/58944
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.
39589
39590 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
39591
39592 * jump.c (delete_related_insns): Keep (use (insn))s.
39593 * reorg.c (redundant_insn): Check for barriers too.
39594
39595 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
39596
39597 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
39598
39599 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
39600
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.
39603
39604 2014-01-17 Jeff Law <law@redhat.com>
39605
39606 * ree.c (combine_set_extension): Temporarily disable test for
39607 changing number of hard registers.
39608
39609 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
39610
39611 PR middle-end/58125
39612 * ipa-inline-analysis.c (inline_free_summary):
39613 Do not free summary of aliases.
39614
39615 2014-01-17 Jakub Jelinek <jakub@redhat.com>
39616
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.
39621
39622 2014-01-17 Martin Jambor <mjambor@suse.cz>
39623
39624 PR ipa/59736
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.
39631
39632 2014-01-17 Andrew Pinski <apinski@cavium.com>
39633 Steve Ellcey <sellcey@mips.com>
39634
39635 PR target/59462
39636 * config/mips/mips.c (mips_print_operand): Check operand mode instead
39637 of operator mode.
39638
39639 2014-01-17 Jeff Law <law@redhat.com>
39640
39641 PR middle-end/57904
39642 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
39643 so that pass_ccp runs first.
39644
39645 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
39646
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.
39652
39653 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
39654
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.
39678
39679 2014-01-17 Marek Polacek <polacek@redhat.com>
39680
39681 PR c/58346
39682 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
39683 size is zero.
39684
39685 2014-01-17 Richard Biener <rguenther@suse.de>
39686
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.
39694
39695 2014-01-17 Jakub Jelinek <jakub@redhat.com>
39696
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.
39700
39701 PR fortran/59440
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.
39705
39706 2014-01-17 Richard Biener <rguenther@suse.de>
39707
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
39736 numbers.
39737
39738 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
39739
39740 PR c++/57945
39741 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
39742 on decls for which assemble_alias has been called.
39743
39744 2014-01-17 Nick Clifton <nickc@redhat.com>
39745
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
39753 option.
39754 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
39755 Add mcpu 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.
39760
39761 2014-01-17 Richard Biener <rguenther@suse.de>
39762
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.
39775
39776 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
39777
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.
39780
39781 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
39782
39783 * ipa-ref.c (ipa_remove_stmt_references): Fix references
39784 traversal when removing references.
39785
39786 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
39787
39788 PR ipa/59775
39789 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
39790
39791 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
39792
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.
39797
39798 2014-01-16 Jakub Jelinek <jakub@redhat.com>
39799
39800 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
39801 field.
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
39805 loop->safelen.
39806 (vect_analyze_data_ref_dependences): Set to true.
39807 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
39808 is a GIMPLE_PHI.
39809 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
39810 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
39811 to the condition.
39812
39813 PR middle-end/58344
39814 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
39815
39816 PR target/59839
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.
39819
39820 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
39821
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.
39825
39826 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
39827
39828 PR rtl-optimization/59835
39829 * ira.c (ira_init_register_move_cost): Increase cost for
39830 impossible modes.
39831
39832 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
39833
39834 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
39835
39836 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
39837
39838 PR target/59780
39839 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
39840 non-register objects. Use gen_(high/low)part more consistently.
39841 Fix assertions.
39842
39843 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
39844
39845 PR target/59844
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.
39852
39853 2014-01-16 Richard Biener <rguenther@suse.de>
39854
39855 PR rtl-optimization/46590
39856 * lcm.c (compute_antinout_edge): Use postorder iteration.
39857 (compute_laterin): Use inverted postorder iteration.
39858
39859 2014-01-16 Nick Clifton <nickc@redhat.com>
39860
39861 PR middle-end/28865
39862 * varasm.c (output_constant): Return the number of bytes actually
39863 emitted.
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.
39870
39871 2014-01-16 Marek Polacek <polacek@redhat.com>
39872
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.
39876
39877 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
39878
39879 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
39880 VALID_AVX256_REG_OR_OI_MODE.
39881
39882 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
39883
39884 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
39885 current procedure should be profiled.
39886
39887 2014-01-15 Andrew Pinski <apinski@cavium.com>
39888
39889 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
39890 of moving from/to the STACK_REG register class.
39891
39892 2014-01-15 Richard Henderson <rth@redhat.com>
39893
39894 PR debug/54694
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.
39899
39900 2014-01-15 Teresa Johnson <tejohnson@google.com>
39901
39902 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
39903
39904 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
39905
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.
39929
39930 2014-01-15 Jeff Law <law@redhat.com>
39931
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.
39938
39939 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
39940
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.
39961
39962 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
39963
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.
39971
39972 2014-01-15 Richard Biener <rguenther@suse.de>
39973
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.
39978
39979 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
39980 Kugan Vivekanandarajah <kuganv@linaro.org>
39981
39982 PR target/59695
39983 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
39984 truncation.
39985
39986 2014-01-15 Richard Biener <rguenther@suse.de>
39987
39988 PR rtl-optimization/59802
39989 * lcm.c (compute_available): Use inverted postorder to seed
39990 the initial worklist.
39991
39992 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
39993
39994 PR target/59803
39995 * config/s390/s390.c (s390_preferred_reload_class): Don't return
39996 ADDR_REGS for invalid symrefs in non-PIC code.
39997
39998 2014-01-15 Jakub Jelinek <jakub@redhat.com>
39999
40000 PR other/58712
40001 * builtins.c (determine_block_size): Initialize *probable_max_size
40002 even if len_rtx is CONST_INT.
40003
40004 2014-01-14 Andrew Pinski <apinski@cavium.com>
40005
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.
40011
40012 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
40013
40014 * ira-costs.c (find_costs_and_classes): Add missed
40015 ira_init_register_move_cost_if_necessary.
40016
40017 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
40018
40019 PR target/59787
40020 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
40021
40022 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
40023
40024 PR target/59794
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.
40036
40037 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
40038
40039 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
40040 converting a conditional jump into a conditional return.
40041
40042 2014-01-14 Richard Biener <rguenther@suse.de>
40043
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.
40050
40051 2014-01-14 Joey Ye <joey.ye@arm.com>
40052
40053 * doc/plugin.texi (Building GCC plugins): Update to C++.
40054
40055 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
40056
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>):
40085 Ditto.
40086 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
40087 Ditto.
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.
40095
40096 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
40097
40098 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
40099 Implement -maltivec=be for vec_insert and vec_extract.
40100
40101 2014-01-10 DJ Delorie <dj@redhat.com>
40102
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.
40108
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.
40112
40113 2014-01-13 Jakub Jelinek <jakub@redhat.com>
40114
40115 PR target/59617
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.
40122
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.
40139
40140 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40141
40142 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
40143
40144 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
40145
40146 * builtins.c (get_object_alignment_2): Minor tweak.
40147 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
40148
40149 2014-01-13 Christian Bruel <christian.bruel@st.com>
40150
40151 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
40152 optimized non constant lengths.
40153
40154 2014-01-13 Jakub Jelinek <jakub@redhat.com>
40155
40156 PR libgomp/59194
40157 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
40158 load as __atomic_load_N if possible.
40159
40160 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
40161
40162 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
40163 target parameter.
40164 (rs6000_expand_builtin): Adjust call.
40165
40166 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
40167
40168 PR target/58115
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.
40174
40175 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
40176 FPSCR.
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.
40183
40184 2014-01-11 Bin Cheng <bin.cheng@arm.com>
40185
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.
40190
40191 2014-01-10 Jeff Law <law@redhat.com>
40192
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.
40197
40198 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
40199
40200 PR ipa/58585
40201 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
40202 vtables into the type inheritance graph.
40203
40204 2014-01-10 Jakub Jelinek <jakub@redhat.com>
40205
40206 PR rtl-optimization/59754
40207 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
40208 modes in the REGNO != REGNO case.
40209
40210 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
40211
40212 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
40213
40214 2014-01-10 Jakub Jelinek <jakub@redhat.com>
40215
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.
40219
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
40227 types.
40228
40229 2014-01-10 Steve Ellcey <sellcey@mips.com>
40230
40231 PR plugins/59335
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.
40235
40236 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
40237
40238 PR target/59744
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.
40244
40245 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
40246
40247 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
40248 extraction in good case.
40249
40250 2014-01-10 Richard Biener <rguenther@suse.de>
40251
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.
40256
40257 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40258
40259 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
40260 when handling a SET rtx.
40261
40262 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40263
40264 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
40265 (cortex-a57): Likewise.
40266 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
40267
40268 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40269
40270 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
40271 non-iwmmxt builtins.
40272
40273 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
40274
40275 PR ipa/58252
40276 PR ipa/59226
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.
40280
40281 2014-01-10 Huacai Chen <chenhc@lemote.com>
40282
40283 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
40284 kernel strings for Loongson-2E/2F/3A.
40285
40286 2014-01-10 Jakub Jelinek <jakub@redhat.com>
40287
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.
40291
40292 2014-01-09 Steve Ellcey <sellcey@mips.com>
40293
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.
40301
40302 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
40303
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.
40311
40312 2014-01-09 Jakub Jelinek <jakub@redhat.com>
40313
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.
40318
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.
40325
40326 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
40327
40328 * config/i386/i386.md (cpu): Remove the unused btver1.
40329
40330 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
40331
40332 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
40333
40334 2014-01-09 Jakub Jelinek <jakub@redhat.com>
40335
40336 PR target/58115
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.
40350
40351 2014-01-09 Richard Biener <rguenther@suse.de>
40352
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.
40357
40358 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
40359
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.
40373
40374 2014-01-09 Jakub Jelinek <jakub@redhat.com>
40375
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.
40382
40383 2014-01-08 Jeff Law <law@redhat.com>
40384
40385 * ree.c (get_sub_rtx): New function, extracted from...
40386 (merge_def_and_ext): Here.
40387 (combine_reaching_defs): Use get_sub_rtx.
40388
40389 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
40390
40391 * cgraph.h (varpool_variable_node): Do not choke on null node.
40392
40393 2014-01-08 Catherine Moore <clm@codesourcery.com>
40394
40395 * config/mips/mips.md (simple_return): Attempt to use JRC
40396 for microMIPS.
40397 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
40398
40399 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
40400
40401 PR rtl-optimization/59137
40402 * reorg.c (steal_delay_list_from_target): Call update_block for
40403 elided insns.
40404 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
40405
40406 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
40407
40408 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
40409 two duplicate entries.
40410
40411 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
40412
40413 Revert:
40414 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
40415
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.
40419
40420 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
40421
40422 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
40423 (*baddu_si): ...this new pattern.
40424
40425 2014-01-08 Jakub Jelinek <jakub@redhat.com>
40426
40427 PR ipa/59722
40428 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
40429
40430 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
40431
40432 PR middle-end/57748
40433 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
40434 inner_reference_p.
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.
40440
40441 2014-01-08 Rong Xu <xur@google.com>
40442
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.
40449
40450 2014-01-08 Marek Polacek <polacek@redhat.com>
40451
40452 PR middle-end/59669
40453 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
40454
40455 2014-01-08 Marek Polacek <polacek@redhat.com>
40456
40457 PR sanitizer/59667
40458 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
40459
40460 2014-01-08 Jakub Jelinek <jakub@redhat.com>
40461
40462 PR rtl-optimization/59649
40463 * stor-layout.c (get_mode_bounds): For BImode return
40464 0 and STORE_FLAG_VALUE.
40465
40466 2014-01-08 Richard Biener <rguenther@suse.de>
40467
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.
40482
40483 2014-01-08 Richard Biener <rguenther@suse.de>
40484
40485 PR middle-end/59471
40486 * gimplify.c (gimplify_expr): Gimplify register-register type
40487 VIEW_CONVERT_EXPRs to separate stmts.
40488
40489 2014-01-07 Jeff Law <law@redhat.com>
40490
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.
40501
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.
40506
40507 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
40508
40509 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
40510
40511 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
40512
40513 PR target/59652
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.
40516
40517 2014-01-07 Roland Stigge <stigge@antcom.de>
40518 Michael Meissner <meissner@linux.vnet.ibm.com>
40519
40520 PR 57386/target
40521 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
40522 Only check TFmode for SPE constants. Don't check TImode or TDmode.
40523
40524 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
40525
40526 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
40527 -mcpu.
40528
40529 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
40530
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.
40534
40535 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
40536
40537 PR target/58115
40538 * target-globals.c (save_target_globals): Remove this_fn_optab
40539 handling.
40540 * toplev.c: Include optabs.h.
40541 (target_reinit): Temporarily restore the global options if another
40542 set of options are in force.
40543
40544 2014-01-07 Jakub Jelinek <jakub@redhat.com>
40545
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
40551 what is counted.
40552 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
40553 counting change.
40554 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
40555 determine what is counted.
40556
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.
40561
40562 2014-01-07 Mike Stump <mikestump@comcast.net>
40563 Jakub Jelinek <jakub@redhat.com>
40564
40565 PR pch/59436
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.
40570
40571 2014-01-06 Jakub Jelinek <jakub@redhat.com>
40572
40573 PR target/59644
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.
40583
40584 2014-01-06 Marek Polacek <polacek@redhat.com>
40585
40586 PR c/57773
40587 * doc/implement-c.texi: Mention that other integer types are
40588 permitted as bit-field types in strictly conforming mode.
40589
40590 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
40591
40592 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
40593 is newly allocated.
40594
40595 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
40596
40597 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
40598
40599 2014-01-06 Martin Jambor <mjambor@suse.cz>
40600
40601 PR ipa/59008
40602 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
40603 to int.
40604 * ipa-prop.c (ipa_print_node_params): Fix indentation.
40605
40606 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
40607
40608 PR debug/59350
40609 PR debug/59510
40610 * var-tracking.c (add_stores): Preserve the value of the source even if
40611 we don't record the store.
40612
40613 2014-01-06 Terry Guo <terry.guo@arm.com>
40614
40615 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
40616
40617 2014-01-05 Iain Sandoe <iain@codesourcery.com>
40618
40619 PR bootstrap/59541
40620 * config/darwin.c (darwin_function_section): Adjust return values to
40621 correspond to optimisation changes made in r206070.
40622
40623 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
40624
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.
40628
40629 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
40630
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.
40635
40636 2014-01-04 Jakub Jelinek <jakub@redhat.com>
40637
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
40642 the same argument.
40643
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.
40651
40652 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
40653
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.
40657
40658 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
40659
40660 * config/m68k/m68k.c (handle_move_double): Handle pushes with
40661 overlapping registers also for registers other than the stack pointer.
40662
40663 2014-01-03 Marek Polacek <polacek@redhat.com>
40664
40665 PR other/59661
40666 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
40667 __builtin_FILE.
40668
40669 2014-01-03 Jakub Jelinek <jakub@redhat.com>
40670
40671 PR target/59625
40672 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
40673 asm goto as jump.
40674
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.
40687
40688 2014-01-02 Xinliang David Li <davidxl@google.com>
40689
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.
40729
40730 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
40731
40732 Update copyright years.
40733
40734 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
40735
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
40746 copyright notice.
40747
40748 2014-01-02 Tobias Burnus <burnus@net-b.de>
40749
40750 * gcc.c (process_command): Update copyright notice dates.
40751 * gcov-dump.c: Ditto.
40752 * gcov.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.
40760
40761 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
40762
40763 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
40764
40765 2014-01-01 Jakub Jelinek <jakub@redhat.com>
40766
40767 * config/i386/sse.md (*mov<mode>_internal): Guard
40768 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
40769
40770 PR rtl-optimization/59647
40771 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
40772 new_rtx into UNSIGNED_FLOAT rtxes.
40773 \f
40774 Copyright (C) 2014 Free Software Foundation, Inc.
40775
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.