1 2015-06-28 Kaz Kojima <kkojima@gcc.gnu.org>
4 2015-06-24 Kaz Kojima <kkojima@gcc.gnu.org>
7 * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
8 an additional element of the unspec vector. Modify indices
10 (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
11 * config/sh/sh.c (prepare_move_operands): Pass incremented
12 const_int to gen_GOTaddr2picreg.
13 (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
15 2015-06-27 Uros Bizjak <ubizjak@gmail.com>
16 Segher Boessenkool <segher@kernel.crashing.org>
19 * config/i386/i386.md (various splitters): Use shallow_copy_rtx
20 before doing PUT_MODE or PUT_CODE on operands to avoid
21 in-place RTX modification.
23 2015-06-26 Jakub Jelinek <jakub@redhat.com>
25 * BASE-VER: Set to 4.9.4.
26 * DEV-PHASE: Set to prerelease.
28 2015-06-26 Release Manager
32 2015-06-26 Jakub Jelinek <jakub@redhat.com>
34 * doc/cpp.texi: Update displayed copyright years.
35 * doc/cppinternals.texi: Likewise.
36 * doc/gcc.texi: Likewise.
37 * doc/gccint.texi: Likewise.
38 * doc/gcov.texi: Likewise.
39 * doc/install.texi: Likewise.
40 * doc/invoke.texi: Likewise.
42 * gcov-dump.c: Likewise.
45 2015-06-23 Matthias Klose <doko@ubuntu.com>
48 Backport from mainline r212178.
49 2014-06-30 Joseph Myers <joseph@codesourcery.com>
51 * var-tracking.c (add_stores): Return instead of asserting if old
52 and new values for conditional store are the same.
54 2015-06-23 Ludovic Courtès <ludo@gnu.org>
57 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
58 '-dynamic-linker' within %{!shared: ...}.
60 2015-06-22 Vladimir Makarov <vmakarov@redhat.com>
63 * lra-lives.c (process_bb_lives): Check insn copying the same
64 reload pseudo and don't create a copy for it.
66 2015-06-19 Christophe Lyon <christophe.lyon@linaro.org>
68 Backport from mainline r215707.
69 2014-09-30 David Sherwood <david.sherwood@arm.com>
71 * ira-int.h (ira_allocno): Add "wmode" field.
72 * ira-build.c (create_insn_allocnos): Add new "parent" function
74 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
75 that cannot be accessed in wmode.
77 2015-06-18 Jakub Jelinek <jakub@redhat.com>
79 PR tree-optimization/66233
80 * fold-const.c (fold_unary_loc): Don't handle vector types.
82 * tree-ssa-forwprop.c (combine_conversions): Likewise.
84 2015-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
87 * config/aarch64/aarch64.c (TARGET_RELAXED_ORDERING): Define.
89 2015-06-16 Richard Biener <rguenther@suse.de>
92 2015-06-01 Richard Biener <rguenther@suse.de>
94 Backport from mainline
95 2015-05-26 Michael Matz <matz@suse.de>
98 * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
99 STMT_VINFO_VEC_STMT, also with SLP.
101 2015-05-22 Richard Biener <rguenther@suse.de>
103 PR tree-optimization/66251
104 * tree-vect-stmts.c (vectorizable_conversion): Properly
105 set STMT_VINFO_VEC_STMT even for the SLP case.
107 2015-06-16 Christophe Lyon <christophe.lyon@linaro.org>
109 Backported from mainline r217076.
110 2014-11-04 Michael Collison <michael.collison@linaro.org>
112 * config/aarch64/iterators.md (lconst_atomic): New mode attribute
113 to support constraints for CONST_INT in atomic operations.
114 * config/aarch64/atomics.md
115 (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
116 (atomic_nand<mode>): Likewise.
117 (atomic_fetch_<atomic_optab><mode>): Likewise.
118 (atomic_fetch_nand<mode>): Likewise.
119 (atomic_<atomic_optab>_fetch<mode>): Likewise.
120 (atomic_nand_fetch<mode>): Likewise.
122 2015-06-12 Michael Matz <matz@suse.de>
124 Backported from mainline
125 2014-10-23 Jakub Jelinek <jakub@redhat.com>
128 * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
129 (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
130 instead of only handling autoinc in dest if it is a MEM.
132 2015-06-12 Jakub Jelinek <jakub@redhat.com>
134 Backported from mainline
135 2014-12-15 Vladimir Makarov <vmakarov@redhat.com>
138 * ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.
140 2015-06-12 Jakub Jelinek <jakub@redhat.com>
143 Backported from mainline
144 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
146 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
147 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
149 2015-06-11 John David Anglin <danglin@gcc.gnu.org>
151 * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
154 2015-06-11 Eric Botcazou <ebotcazou@adacore.com>
157 * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
158 * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
159 (*addx_extend_sp32): Fix pasto.
160 (*subx_extend): Rename into...
161 (*subx_extend_sp32): ...this.
162 (*adddi3_extend_sp32): Add earlyclobber.
163 (*subdi3_insn_sp32): Likewise.
164 (*subdi3_extend_sp32): Likewise.
165 (*and_not_di_sp32): Likewise.
166 (*or_not_di_sp32): Likewise.
167 (*xor_not_di_sp32): Likewise.
168 (*negdi2_sp32): Likewise.
169 (*one_cmpldi2_sp32): Likewise.
171 2015-06-11 Richard Biener <rguenther@suse.de>
174 * dwarf2out.c (resolve_addr): Guard backport of PR66549
177 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
179 Backport from mainline:
180 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
183 * doc/md.texi (Machine Constraints): Document that on the PowerPC
184 if you use a constraint that targets a VSX register, you must use
185 %x<n> in the template.
187 2015-06-10 Jakub Jelinek <jakub@redhat.com>
190 * config/i386/i386.c (ix86_split_long_move): For collisions
191 involving direct tls segment refs, move the UNSPEC_TP possibly
192 wrapped in ZERO_EXTEND out of the address for lea, to each of
195 2015-06-08 Uros Bizjak <ubizjak@gmail.com>
197 Backport from mainline:
198 2015-06-03 Uros Bizjak <ubizjak@gmail.com>
201 * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
202 to determine current function ABI.
203 (ix86_function_value_regno_p): Ditto.
205 2015-06-08 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
207 * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
209 2015-06-03 Jakub Jelinek <jakub@redhat.com>
211 Backported from mainline
212 2015-05-13 Jakub Jelinek <jakub@redhat.com>
215 * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
216 make sure it is never noreturn, even when the task body does not
218 (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
219 right before GIMPLE_OMP_RETURN.
220 (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
221 for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to
222 GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
224 2015-05-04 Jakub Jelinek <jakub@redhat.com>
226 PR tree-optimization/65984
227 * ubsan.c: Include tree-cfg.h.
228 (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
229 stmt_could_throw_p test, rename can_throw variable to ends_bb.
231 2015-04-07 Jakub Jelinek <jakub@redhat.com>
234 * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
235 into signed HOST_WIDE_INT the same as negative bit_offset.
237 2015-03-23 Jakub Jelinek <jakub@redhat.com>
240 * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
242 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
243 REG_POINTER on *destptr after adjusting it for prologue size.
245 2015-03-18 Jakub Jelinek <jakub@redhat.com>
247 PR tree-optimization/65450
248 * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
250 (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
251 it instead of duplicate_ssa_name_ptr_info.
253 2015-03-16 Jakub Jelinek <jakub@redhat.com>
255 PR tree-optimization/65427
256 * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
258 (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
260 2015-03-10 Jakub Jelinek <jakub@redhat.com>
263 * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
265 (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
267 2015-02-18 Jakub Jelinek <jakub@redhat.com>
269 PR gcov-profile/64634
270 * tree-eh.c (frob_into_branch_around): Fix up typos
272 (lower_catch): Put eh_seq resulting from EH lowering of
273 the cleanup sequence after the cleanup rather than before
276 2015-06-03 Richard Biener <rguenther@suse.de>
278 Backport from mainline
279 2015-05-26 Michael Matz <matz@suse.de>
282 * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
283 STMT_VINFO_VEC_STMT, also with SLP.
285 2015-05-22 Richard Biener <rguenther@suse.de>
287 PR tree-optimization/66251
288 * tree-vect-stmts.c (vectorizable_conversion): Properly
289 set STMT_VINFO_VEC_STMT even for the SLP case.
291 2015-05-27 Richard Biener <rguenther@suse.de>
293 PR tree-optimization/66272
295 2014-08-15 Richard Biener <rguenther@suse.de>
297 PR tree-optimization/62031
298 * tree-data-ref.c (dr_analyze_indices): Do not set
299 DR_UNCONSTRAINED_BASE.
300 (dr_may_alias_p): All indirect accesses have to go the
301 formerly DR_UNCONSTRAINED_BASE path.
302 * tree-data-ref.h (struct indices): Remove
303 unconstrained_base member.
304 (DR_UNCONSTRAINED_BASE): Remove.
306 2015-05-13 Richard Biener <rguenther@suse.de>
308 PR tree-optimization/66123
309 * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
312 2015-06-02 Richard Biener <rguenther@suse.de>
315 * dwarf2out.c (lookup_context_die): New function.
316 (resolve_addr): Avoid forcing a full DIE for the
317 target of a DW_TAG_GNU_call_site during late compilation.
318 Instead create a stub DIE without a type if we have a
321 2015-03-23 Richard Biener <rguenther@suse.de>
323 PR tree-optimization/65518
324 * tree-vect-stmts.c (vectorizable_load): Reject single-element
325 interleaving cases we generate absymal code for.
327 2015-06-01 Dominik Vogt <vogt@linux.vnet.ibm.com>
329 Backport from mainline
330 2015-05-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
333 * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
336 2015-05-28 Mike Frysinger <vapier@gentoo.org>
338 * config/nios2/linux.h (CPP_SPEC): Define.
340 2015-05-28 Mike Frysinger <vapier@gentoo.org>
342 * config/microblaze/linux.h (CPP_SPEC): Define.
344 2015-05-28 Mike Frysinger <vapier@gentoo.org>
346 * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
347 -pthread is specified.
349 2015-05-27 John David Anglin <danglin@gcc.gnu.org>
352 * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
353 REG_EQUAL note when doing insert.
355 2015-05-26 Rohit Arul Raj <rohitarulraj@freescale.com>
357 Backported from mainline
358 2015-05-14 Rohit Arul Raj <rohitarulraj@freescale.com>
360 * varasm.c (output_constant_pool_1): Pass down alignment from
361 constant pool entry's descriptor to output_constant_pool_2.
362 (output_object_block): Add comment prior to call to
363 output_constant_pool_1.
365 2015-05-21 Sandra Loosemore <sandra@codesourcery.com>
367 Backport from mainline r223418:
368 * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
369 to build a biarch toolchain again.
371 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
373 * doc/invoke.texi: Add missing cpu types for march option: z196
376 2015-05-16 Uros Bizjak <ubizjak@gmail.com>
379 * config/alpha/alpha.c (get_aligned_mem): Also look for reload
380 replacements in memory addresses.
381 (get_unaligned_address): Ditto.
383 2015-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
385 Backport from mainline
386 2015-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
389 * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
390 REG before taking its REGNO.
392 2015-05-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
394 * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
396 * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
399 2015-05-12 Yvan Roux <yvan.roux@linaro.org>
401 Backport from mainline.
402 2015-05-05 Yvan Roux <yvan.roux@linaro.org>
404 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
405 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
406 * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
407 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
408 * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
409 * configure: Regenerate.
410 * configure.ac: Add --enable-fix-cortex-a53-843419 option.
411 * doc/install.texi (aarch64*-*-*): Document new
412 --enable-fix-cortex-a53-843419 option.
413 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
414 and -mno-fix-cortex-a53-843419 options.
416 2015-05-06 Uros Bizjak <ubizjak@gmail.com>
419 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
420 if rep_8byte stringop strategy was specified for 32-bit target.
422 2015-05-05 Jack Howarth <howarth.at.gcc@gmail.com>
424 Backport from mainline
425 2014-05-29 Mike Stump <mikestump@comcast.net>
427 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
428 post ld passes when lto is used.
430 2015-05-05 Shanyao Chen <chenshanyao@huawei.com>
432 Backported from mainline
433 2015-01-19 Jiong Wang <jiong.wang@arm.com>
434 Andrew Pinski <apinski@cavium.com>
437 * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
438 (ashl<mode>3): Don't expand if operands[2] is not constant.
440 2015-05-05 Peter Bergner <bergner@vnet.ibm.com>
442 Backport from mainline.
443 2015-04-27 Peter Bergner <bergner@vnet.ibm.com>
446 * config/rs6000/htm.md: Remove all define_expands.
447 (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
448 UNSPECV_HTM_TABORTWCI): Remove.
449 (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
450 (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
451 trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
452 (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
453 (tabortdc_internal, tabortdci_internal, tabortwc_internal,
454 tabortwci_internal): Remove define_insns.
455 (tabort<wd>c, tabort<wd>ci): New define_insns.
456 (tabort): Use gpc_reg_operand.
457 (tcheck): Remove operand.
458 (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
459 * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
461 * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
462 (BU_HTM_SPR1): Rename to BU_HTM_V1. Remove use of RS6000_BTC_SPR.
463 (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
464 tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
465 tsr, ttest): Pass in the RS6000_BTC_CR attribute.
466 (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
467 get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
468 (tcheck): Remove builtin argument.
469 * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
471 (htm_expand_builtin): Fix usage of expandedp. Disallow usage of the
472 tabortdc and tabortdci builtins when not in 64-bit mode.
473 Modify code to handle the loss of the HTM define_expands.
474 Emit code to copy the CR register to TARGET.
475 (htm_init_builtins): Modify code to handle the loss of the HTM
477 * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
478 (RS6000_BTC_64BIT): Likewise.
479 (RS6000_BTC_CR): New macro.
480 * doc/extend.texi: Update documentation for htm builtins.
482 2015-04-28 Tejas Belagod <tejas.belagod@arm.com>
484 Backport from Mainline
485 2014-11-20 Tejas Belagod <tejas.belagod@arm.com>
487 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
489 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
490 aarch64_cannot_force_const_mem, aarch64_classify_address,
491 aarch64_classify_symbolic_expression): Fixup call to
492 aarch64_classify_symbol.
493 (aarch64_classify_symbol): Add range-checking for
494 symbol + offset addressing for tiny and small models.
496 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
498 Backport from mainline
499 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
502 * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
503 save to independent variables use the Save attribute. This will
504 allow these options to be modified with the #pragma/attribute
506 (-mallow-movmisalign): Likewise.
507 (-mallow-df-permute): Likewise.
508 (-msched-groups): Likewise.
509 (-malways-hint): Likewise.
510 (-malign-branch-targets): Likewise.
511 (-mvectorize-builtins): Likewise.
512 (-msave-toc-indirect): Likewise.
514 * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
515 can be set via the #pragma/attribute target support.
516 (rs6000_opt_vars): Likewise.
517 (rs6000_inner_target_options): If VSX was set, also set
518 -mno-avoid-indexed-addresses.
520 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
522 Backport from mainline r222385
523 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
525 * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
526 asterisk from name so this can be generated directly.
527 (*altivec_stvx_<mode>_internal): Likewise.
528 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
529 that this is never called during or after reload/lra.
530 (rs6000_frame_related): Remove split_reg
531 argument and logic that references it.
532 (emit_frame_save): Remove last parameter from call to
533 rs6000_frame_related.
534 (rs6000_emit_prologue): Remove last parameter from eight calls to
535 rs6000_frame_related. Force generation of stvx instruction for
536 Altivec register saves. Remove split_reg handling, which is no
538 (rs6000_emit_epilogue): Force generation of lvx instruction for
539 Altivec register restores.
541 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
543 Backport from mainline r222362
544 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
546 * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
547 TARGET_CRYPTO to TARGET_P8_VECTOR>
548 (crypto_vpermxor_<mode>): Likewise.
549 * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
550 (BU_CRYPTO_3A): Likewise.
551 (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
552 (BU_CRYPTO_OVERLOAD_3A): New #define.
553 (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
557 (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
558 (VPERMXOR_V4SI): Likewise.
559 (VPERMXOR_V8HI): Likewise.
560 (VPERMXOR_V16QI): Likewise.
561 (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
562 BU_CRYPTO_OVERLOAD_2A.
563 (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
564 BU_CRYPTO_OVERLOAD_3A.
565 * config/rs6000/rs6000.opt (mcrypto): Change description of
568 Backport from mainline r222362
569 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
571 * config/rs6000/rs6000.opt (mcrypto): Change option description to
572 match category changes in ISA 2.07B.
574 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
576 Backport from mainline r222351
577 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
579 * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
581 (insn_is_swappable_p): Return 1 for a convert from double to
582 single precision when all of its uses are splats of BE element
585 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
587 Backport from mainline r222349
588 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
591 * config/rs6000/rs6000.c (rs6000_option_override_internal): For
592 VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
593 TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
595 (rs6000_builtin_mask_for_load): Return 0 for targets with
596 efficient unaligned VSX accesses so that the vectorizer will use
597 direct unaligned loads.
598 (rs6000_builtin_support_vector_misalignment): Always return true
599 for targets with efficient unaligned VSX accesses.
600 (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
601 stores on targets with efficient unaligned VSX accesses is almost
602 always the same as the cost of an aligned load or store, so model
604 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
605 unaligned vectors if we have efficient unaligned VSX accesses.
606 * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
609 2015-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
610 Jakub Jelinek <jakub@redhat.com>
612 Backport from mainline r222205
613 2015-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
614 Jakub Jelinek <jakub@redhat.com>
617 * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
618 subsequent SH_NONE operand does not overwrite an existing *special
620 (adjust_extract): Handle case where a vec_extract operation is
621 wrapped in a PARALLEL.
623 2015-04-16 Kirill Yukhin <kirill.yukhin@intel.com>
626 * config/i386/i386.c (fixup_modeless_constant): New.
627 (ix86_expand_args_builtin): Fixup modeless constant operand.
628 (ix86_expand_round_builtin): Ditto.
629 (ix86_expand_special_args_builtin): Ditto.
630 (ix86_expand_builtin): Ditto.
632 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
635 * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
636 Print bad_spills_num and insn_pseudos_num.
638 2015-04-09 Vladimir Makarov <vmakarov@redhat.com>
641 * lra-int.h (lra_bad_spill_regno_start): New.
642 * lra.c (lra_bad_spill_regno_start): New.
643 (lra): Set up lra_bad_spill_regno_start. Set up
644 lra_constraint_new_regno_start unconditionally.
645 * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
648 2015-04-07 Richard Biener <rguenther@suse.de>
650 Backport from mainline
651 2015-04-04 Richard Biener <rguenther@suse.de>
653 PR tree-optimization/64909
654 PR tree-optimization/65660
655 * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
656 to take a cost vector for scalar iteration cost.
657 (vect_get_single_scalar_iteration_cost): Likewise.
658 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
659 Compute the scalar iteration cost into a cost vector.
660 (vect_get_known_peeling_cost): Use the scalar cost vector to
661 account for the cost of the peeled iterations.
662 (vect_estimate_min_profitable_iters): Likewise.
663 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
666 2015-04-05 Yvan Roux <yvan.roux@linaro.org>
668 Backport from trunk r221867
669 2015-04-04 Vladimir Makarov <vmakarov@redhat.com>
672 * lra.c (lra): Stop updating lra_constraint_new_regno_start after
673 switching off inheritance.
675 2015-04-02 John David Anglin <danglin@gcc.gnu.org>
677 * config/pa/pa.c (pa_output_move_double): Directly handle register
678 indexed memory operand. Simplify handling of scaled register indexed
681 2015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com>
683 * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
685 (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
686 (s390_asm_output_function_label): Adapt to new signature of
687 s390_function_num_hotpatch_hw
688 Optimise the code generating assembler output.
689 Add comments to assembler file.
691 2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
693 Backport from mainline
694 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
697 * lra-constraints.c (original_subreg_reg_mode): New.
698 (simplify_operand_subreg): Try to simplify subreg of const. Use
699 original_subreg_reg_mode for it.
700 (swap_operands): Update original_subreg_reg_mode.
701 (curr_insn_transform): Set up original_subreg_reg_mode.
703 2015-03-26 Uros Bizjak <ubizjak@gmail.com>
706 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
707 Check operand 6 and operand 0 for equality.
708 (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
710 (vec_extract_hi_<mode>_maskm): Ditto.
712 2015-03-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
714 Backport of r214242, r214254, and bug fix patches from mainline
715 * config/rs6000/rs6000.c (context.h): New #include.
716 (tree-pass.h): Likewise.
717 (make_pass_analyze_swaps): New declaration.
718 (rs6000_option_override): Register swap-optimization pass.
719 (swap_web_entry): New class.
720 (special_handling_values): New enum.
721 (union_defs): New function.
722 (union_uses): Likewise.
723 (insn_is_load_p): Likewise.
724 (insn_is_store_p): Likewise.
725 (insn_is_swap_p): Likewise.
726 (rtx_is_swappable_p): Likewise.
727 (insn_is_swappable_p): Likewise.
728 (chain_purpose): New enum.
729 (chain_contains_only_swaps): New function.
730 (mark_swaps_for_removal): Likewise.
731 (swap_const_vector_halves): Likewise.
732 (adjust_subreg_index): Likewise.
733 (permute_load): Likewise.
734 (permute_store): Likewise.
735 (adjust_extract): Likewise.
736 (adjust_splat): Likewise.
737 (handle_special_swappables): Likewise.
738 (replace_swap_with_copy): Likewise.
739 (dump_swap_insn_table): Likewise.
740 (rs6000_analyze_swaps): Likewise.
741 (pass_data_analyze_swaps): New pass_data.
742 (pass_analyze_swaps): New class.
743 (pass_analyze_swaps::gate): New method.
744 (pass_analyze_swaps::execute): New method.
745 (make_pass_analyze_swaps): New function.
746 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
747 * df.h (web_entry_base): New class, replacing struct web_entry.
748 (web_entry_base::pred): New method.
749 (web_entry_base::set_pred): Likewise.
750 (web_entry_base::unionfind_root): Likewise.
751 (web_entry_base::unionfind_union): Likewise.
752 (unionfind_root): Delete external reference.
753 (unionfind_union): Likewise.
754 (union_defs): Likewise.
755 * web.c (web_entry_base::unionfind_root): Convert to method.
756 (web_entry_base::unionfind_union): Likewise.
757 (web_entry): New class.
758 (union_match_dups): Convert to use class structure.
759 (union_defs): Likewise.
760 (entry_register): Likewise.
761 (web_main): Likewise.
763 2015-03-26 Alan Modra <amodra@gmail.com>
766 Backport from trunk 211857 and 221445.
767 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
768 * config/rs6000/rs6000.md: Append `DONE' to preparation
769 statements of `bswap' pattern splitters.
771 2015-03-16 Alan Modra <amodra@gmail.com>
772 * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
773 Modify Z->r bswapdi splitter to use dest in place of scratch.
774 In r->Z and Z->r bswapdi splitter rename word_high, word_low
775 to word1, word2 and rearrange logic to suit.
776 (bswapdi2_64bit): Remove early clobber on Z->r alternative.
777 (bswapdi2_ldbrx): Likewise. Remove '??' on r->r.
778 (bswapdi2_32bit): Remove early clobber on Z->r alternative.
779 Add one '?' on r->r. Modify Z->r splitter to avoid need for
782 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
784 Backport from mainline
785 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
787 * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
789 2015-03-24 Uros Bizjak <ubizjak@gmail.com>
791 PR rtl-optimization/60851
792 * recog.c (constrain_operands): Accept a pseudo register before reload
793 for LRA enabled targets.
795 2015-03-23 Yvan Roux <yvan.roux@linaro.org>
797 Backport from trunk r220616.
798 2015-02-11 Martin Liska <mliska@suse.cz>
801 * cgraphunit.c (cgraph_node::expand_thunk): Do not create a return
802 value for call to a function that is noreturn.
804 2015-03-23 Yvan Roux <yvan.roux@linaro.org>
806 Backport from trunk r216841.
807 2014-10-29 Martin Liska <mliska@suse.cz>
810 * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
811 to local declarations.
812 * function.c (add_local_decl): Implementation moved from header file,
813 assert introduced for tree type.
814 * function.h: Likewise.
816 2015-03-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
818 Backport from mainline
819 2015-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
821 PR rtl-optimization/65235
822 * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
823 When first element of vec_concat is const_int, calculate its size
824 using second element.
826 2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
829 * expr.c (store_field): Do not do a direct block copy if the source is
830 a PARALLEL with BLKmode.
832 2015-03-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
834 Backport from mainline
835 * config/s390/s390.c (s390_reorg): Move code to output nops after label
837 (s390_asm_output_function_label): Likewise.
838 * config/s390/s390.c (s390_asm_output_function_label):
839 Fix function label alignment with -mhtopatch.
840 * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
841 UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
842 ("nop_2_byte"): New define_insn.
843 ("nop_4_byte"): Likewise.
844 ("nop_6_byte"): Likewise.
845 * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
846 * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
848 2015-03-12 Marek Polacek <polacek@redhat.com>
850 Backported from mainline
851 2015-03-11 Marek Polacek <polacek@redhat.com>
853 PR tree-optimization/65388
854 * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
856 2015-03-11 Georg-Johann Lay <avr@gjlay.de>
859 * configure.ac [avr]: Check as for option -mrmw.
860 * configure: Regenerate.
861 * config.in: Regenerate.
862 * config/avr/driver-avr.c (avr_device_to_as): Don't add -mrmw to
863 assembler options if not HAVE_AS_AVR_MRMW_OPTION.
865 2015-03-11 Marek Polacek <polacek@redhat.com>
867 Backported from mainline
868 2014-12-04 Marek Polacek <polacek@redhat.com>
871 * fold-const.c (fold_unary_loc): Perform the negation in A's type
872 when transforming ~ (A - 1) or ~ (A + -1) to -A.
874 2015-03-10 Yvan Roux <yvan.roux@linaro.org>
876 Backport from trunk r220489.
877 2015-02-06 Jakub Jelinek <jakub@redhat.com>
880 * cgraphunit.c (cgraph_node::expand_thunk): If
881 restype is not is_gimple_reg_type nor the thunk_fndecl
882 returns aggregate_value_p, set restmp to a temporary variable
885 2015-03-10 Jakub Jelinek <jakub@redhat.com>
888 * config/rs6000/t-linux: For powerpc64* target set
889 MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
891 2015-03-10 Oleg Endo <olegendo@gcc.gnu.org>
894 * config/sh/sh.md (*tst<mode>_t_zero): Remove insns.
896 2015-03-10 Alan Modra <amodra@gmail.com>
899 * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
900 to be single-arch by default. Set cpu_is_64bit for powerpc64
901 given --with-cpu=native.
902 * config/rs6000/t-fprules: Do not set default MULTILIB vars.
903 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
905 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
906 rs6000_isa_flags rather than TARGET_64BIT.
908 2015-03-05 Michael Meissner <meissner@linux.vnet.ibm.com>
911 2015-03-03 Michael Meissner <meissner@linux.vnet.ibm.com>
914 * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
915 processor type for 64-bit little endian PowerPC.
917 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
918 -mdebug=reg, print TARGET_DEFAULT. Fix logic to use
919 TARGET_DEFAULT if there is no default cpu. Fix -mdebug=reg
920 printing built-in mask so it does not pass NULL pointers.
922 * config/rs6000/rs6000-tables.opt: Regenerate.
924 * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
928 2015-01-19 David Edelsohn <dje.gcc@gmail.com>
930 * config/rs6000/default64.h: Include rs6000-cpus.def.
931 (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
932 (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
933 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
935 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
937 * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
938 pseudo-op to specify assembler dialect.
940 2015-03-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
942 Backport from mainline
943 2014-11-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
946 * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
948 * config/arm/arm.md (consttable_1): Make it TARGET_EITHER.
949 (consttable_2): Make it TARGET_EITHER and move HFmode handling from
951 (consttable_4): Move HFmode handling to consttable_2 pattern.
953 2015-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
956 * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
957 called for __stack_chk_guard symbol.
959 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
962 * config/avr/avr.c (context.h, tree-pass.h): Include them.
963 (avr_pass_data_recompute_notes): New static variable.
964 (avr_pass_recompute_notes): New class.
965 (avr_register_passes): New static function.
966 (avr_option_override): Call it.
968 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
970 * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
971 to create a register in testing mode.
973 2015-03-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
975 Backport from mainline
976 2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
979 * config/arm/arm.c (callee_saved_reg_p): Define.
980 (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
981 register is callee saved instead of !call_used_regs[reg].
982 (thumb1_compute_save_reg_mask): Likewise.
984 2015-02-27 Richard Biener <rguenther@suse.de>
987 * builtins.c (get_object_alignment_2): Make sure to re-apply
988 the ANDed mask after recursing to its operand gets us a new
989 misalignment bit position.
991 2015-02-27 Andrew Pinski <apinski@cavium.com>
992 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
994 * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
995 Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
997 2015-02-27 Richard Biener <rguenther@suse.de>
1000 Backport from mainline
1001 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
1003 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
1006 2015-02-25 Peter Bergner <bergner@vnet.ibm.com>
1008 Backport from mainline
1009 2015-02-25 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
1011 * config/rs6000/htm.md (tcheck): Fix assembly encoding.
1013 2015-02-26 Matthew Fortune <matthew.fortune@imgtec.com>
1016 Backported from mainline: r213872, r217446, r217939, r219867
1018 * config.in [!USED_FOR_TARGET] (HAVE_AS_DOT_MODULE): Undefine.
1019 * config/mips/mips.h (FP_ASM_SPEC): New macro.
1020 (ASM_SPEC): Use FP_ASM_SPEC.
1021 * configure.ac (HAVE_AS_DOT_MODULE): Detect support for .module
1022 and FPXX extensions.
1023 * configure: Regenerate.
1025 2015-02-25 Jason Merrill <jason@redhat.com>
1027 * common.opt (-flifetime-dse): New.
1029 2015-02-25 Kai Tietz <ktietz@redhat.com>
1031 PR tree-optimization/61917
1032 * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
1033 that reduc_def_stmt is null.
1035 Merged from mainline
1037 * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
1038 (symtab::noninterposable_alias): Likewise.
1040 2015-02-25 Richard Biener <rguenther@suse.de>
1041 Kai Tietz <ktietz@redhat.com>
1043 Backported from mainline
1044 PR tree-optimization/61917
1045 * tree-vect-loop.c (vectorizable_reduction): Allow
1046 vect_internal_def without reduction to exit graceful.
1048 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
1051 * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
1052 only with NONDEBUG_INSN_P.
1054 2015-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
1056 Backport from mainline
1057 2015-02-23 Kaz Kojima <kkojima@gcc.gnu.org>
1060 * config/sh/sh.md (movsicc_true+3): Remove peephole.
1061 * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
1062 * config/sh/sh.c (replace_n_hard_rtx): Remove.
1064 2015-02-24 Richard Biener <rguenther@suse.de>
1066 Backport from mainline
1067 2015-02-11 Richard Biener <rguenther@suse.de>
1070 * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
1073 2015-02-13 Richard Biener <rguenther@suse.de>
1076 * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
1077 for LTO produced CUs.
1079 2015-02-16 Richard Biener <rguenther@suse.de>
1082 * varasm.c (default_file_start): For LTO produced units
1083 emit <artificial> as file directive.
1085 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
1087 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
1089 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
1091 Backport from mainline
1092 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
1095 * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
1096 instead of const_int 4294901760.
1098 2015-02-23 Richard Biener <rguenther@suse.de>
1100 Backport from mainline
1101 2014-11-19 Richard Biener <rguenther@suse.de>
1103 PR tree-optimization/63844
1104 * omp-low.c (fixup_child_record_type): Use a restrict qualified
1105 referece type for the receiver parameter.
1107 2014-11-27 Richard Biener <rguenther@suse.de>
1109 PR tree-optimization/61634
1110 * tree-vect-slp.c: Include gimple-walk.h.
1111 (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
1112 down the SLP tree for one scalar statement.
1113 (vect_detect_hybrid_slp_1): New walker function.
1114 (vect_detect_hybrid_slp_2): Likewise.
1115 (vect_detect_hybrid_slp): Properly handle pattern statements
1116 in a pre-scan over all loop stmts.
1118 2015-01-14 Richard Biener <rguenther@suse.de>
1120 PR tree-optimization/59354
1121 * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
1122 groups larger than the slp group size as having gaps.
1124 2015-02-10 Richard Biener <rguenther@suse.de>
1126 PR tree-optimization/64909
1127 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
1128 pass a scalar-stmt count estimate to the cost model.
1129 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
1131 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1133 Backport from mainline
1134 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1136 * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
1137 Mark operand 0 as earlyclobber in 2nd alternative.
1138 (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
1139 Write negated shift amount into QI lowpart operand 0 and use it
1141 (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
1143 2015-02-20 Georg-Johann Lay <avr@gjlay.de>
1145 Backport from 2015-02-20 trunk r220847.
1148 * config/avr/avr.md (pushhi_insn): New insn.
1149 (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
1151 2015-02-20 Richard Biener <rguenther@suse.de>
1153 Backport from mainline
1154 2015-01-12 Richard Biener <rguenther@suse.de>
1156 PR tree-optimization/64530
1157 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
1160 2015-02-13 Richard Biener <rguenther@suse.de>
1163 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
1166 2015-02-16 Richard Biener <rguenther@suse.de>
1168 PR tree-optimization/63593
1169 * tree-predcom.c (execute_pred_commoning_chain): Delay removing
1170 stmts and releasing SSA names until...
1171 (execute_pred_commoning): ... after processing all chains.
1173 2015-02-18 Richard Biener <rguenther@suse.de>
1175 PR tree-optimization/65063
1176 * tree-predcom.c (determine_unroll_factor): Return 1 if we
1177 have replaced looparound PHIs.
1179 2015-02-19 John David Anglin <danlgin@gcc.gnu.org>
1181 * config/pa/pa.c (pa_reloc_rw_mask): New function.
1182 (TARGET_ASM_RELOC_RW_MASK): Define.
1183 (pa_cannot_force_const_mem): Revert previous change.
1185 2015-02-19 Richard Biener <rguenther@suse.de>
1187 Backport from mainline
1188 2014-12-09 Richard Biener <rguenther@suse.de>
1191 * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
1193 2015-01-14 Richard Biener <rguenther@suse.de>
1195 PR tree-optimization/64493
1196 PR tree-optimization/64495
1197 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
1198 assign the proper vectorized PHI to the inner loop exit PHIs.
1200 2015-01-27 Richard Biener <rguenther@suse.de>
1202 PR tree-optimization/56273
1203 PR tree-optimization/59124
1204 PR tree-optimization/64277
1205 * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
1206 from the first VRP pass.
1208 2015-02-19 Richard Biener <rguenther@suse.de>
1210 Backport from mainline
1211 2015-01-15 Richard Biener <rguenther@suse.de>
1214 * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
1215 for MEM_REF access functions with the same base can never partially
1218 2015-02-17 Ilya Tocar <ilya.tocar@intel.com>
1220 Backported from mainline
1221 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
1224 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
1225 (vec_unpacks_hi_v16sf): Ditto.
1227 2015-02-15 John David Anglin <danglin@gcc.gnu.org>
1229 * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
1230 for all floading point loads and stores except those using a register
1232 * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
1235 2015-02-13 John David Anglin <danglin@gcc.gnu.org>
1237 * config/pa/constraints.md: Change "Q" and "T" constraints to memory
1239 * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
1240 symbolic references to data to be forced to constant memory on the
1243 2015-02-11 Jakub Jelinek <jakub@redhat.com>
1245 Backported from mainline
1246 2015-02-09 Jakub Jelinek <jakub@redhat.com>
1249 * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
1252 2015-02-11 Uros Bizjak <ubizjak@gmail.com>
1254 * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
1255 and 3 earlyclobber operands.
1257 2015-02-09 Dominik Vogt <vogt@linux.vnet.ibm.com>
1259 * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
1260 * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
1262 * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
1263 -mno-hotpatch options. Change syntax of -mhotpatch= option.
1264 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
1266 (s390_hotpatch_trampoline_halfwords_max): Renamed.
1267 (s390_hotpatch_hw_max): New name.
1268 (s390_hotpatch_trampoline_halfwords): Renamed.
1269 (s390_hotpatch_hw_before_label): New name.
1270 (get_hotpatch_attribute): Removed.
1271 (s390_hotpatch_hw_after_label): New name.
1272 (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
1274 (s390_attribute_table): Ditto.
1275 (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
1276 (s390_function_num_hotpatch_hw): New name.
1277 Remove special handling of inline functions and hotpatching.
1278 Return number of nops before and after the function label.
1279 (s390_can_inline_p): Removed.
1280 (s390_asm_output_function_label): Emit a configurable number of nops
1281 after the function label.
1282 (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
1283 (TARGET_CAN_INLINE_P) Removed.
1284 (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
1286 2015-02-05 Segher Boessenkool <segher@kernel.crashing.org>
1289 Backport from mainline
1290 * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
1291 (rs6000_stack_info): Add assert.
1292 (rs6000_output_savres_externs): New function, split off from...
1293 (rs6000_output_function_prologue): ... here. Do not call it for
1296 2015-02-04 Matthias Klose <doko@ubuntu.com>
1299 Backport from mainline
1300 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
1304 * ipa.c (symbol_table::remove_unreachable_nodes):
1305 Do not put abstract origins into boundary.
1307 2015-02-04 Uros Bizjak <ubizjak@gmail.com>
1309 Backport from mainline
1310 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
1313 * config/i386/predicates.md (address_no_seg_operand): Reject
1314 non-CONST_INT_P operands in invalid mode.
1316 Backport from mainline
1317 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
1319 * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
1320 address_operand 0. Rename from *prefetch_prefetchwt1_<mode>.
1321 * config/i386/predicates.md (address_no_seg_operand): Call
1322 address_operand with VOIDmode.
1323 (vsib_address_operand): Ditto.
1325 2015-02-01 H.J. Lu <hongjiu.lu@intel.com>
1327 Backported from mainline
1328 2015-01-24 H.J. Lu <hongjiu.lu@intel.com>
1330 * config/i386/driver-i386.c (host_detect_local_cpu): Check new
1331 Silvermont, Haswell, Broadwell and Knights Landing model numbers.
1332 * config/i386/i386.c (processor_model): Add
1333 M_INTEL_COREI7_BROADWELL.
1334 (arch_names_table): Add "broadwell".
1336 2015-02-01 Jakub Jelinek <jakub@redhat.com>
1338 Backported from mainline
1339 2015-01-27 Jakub Jelinek <jakub@redhat.com>
1341 PR rtl-optimization/61058
1342 * jump.c (cleanup_barriers): Update basic block boundaries
1343 if BLOCK_FOR_INSN is non-NULL on PREV.
1345 2015-01-26 Jakub Jelinek <jakub@redhat.com>
1348 * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
1349 with asterisk, skip the first character.
1351 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
1352 OPTION_MASK_QUAD_MEMORY_ATOMIC.
1354 2015-01-23 Jakub Jelinek <jakub@redhat.com>
1356 PR rtl-optimization/63637
1357 PR rtl-optimization/60663
1358 * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
1359 if elt->cost is MAX_COST for ASM_OPERANDS.
1360 (find_sets_in_insn): Fix up comment typo.
1361 (cse_insn): Don't set src_volatile for all non-volatile
1362 ASM_OPERANDS in PARALLELs, but just those with multiple outputs
1363 or with "memory" clobber. Set elt->cost to MAX_COST
1364 for ASM_OPERANDS in PARALLEL. Set src_elt->cost to MAX_COST
1365 if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
1368 * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
1371 2015-01-20 Jakub Jelinek <jakub@redhat.com>
1374 * dwarf2out.c (decl_piece_node): Don't put bitsize into
1375 mode if bitsize <= 0.
1376 (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
1377 dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
1378 sizes and positions.
1380 2015-01-29 Ilya Tocar <ilya.tocar@intel.com>
1382 * config/i386/avx2intrin.h (_mm256_bslli_epi128,
1383 _mm256_bsrli_epi128): New.
1384 * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
1386 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1388 * config/s390/s390.c (s390_memory_move_cost): Increase costs for
1391 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1393 * config/s390/s390.c (s390_register_move_cost): Increase costs for
1396 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
1398 Backport from mainline
1399 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
1402 * config/i386/i386.md (*movdi_internal): Also check operand 0
1403 to determine TYPE_LEA operand.
1404 (*movsi_internal): Ditto.
1406 Backport from mainline
1407 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
1409 * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
1412 2015-01-23 Jakub Jelinek <jakub@redhat.com>
1415 * omp-low.c (scan_sharing_clauses): Don't ignore
1416 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
1417 on target data/update constructs.
1419 2015-01-23 Wei Mi <wmi@google.com>
1421 Backported from trunk.
1422 2015-01-22 Wei Mi <wmi@google.com>
1424 PR rtl-optimization/64557
1425 * dse.c (record_store): Call get_addr for mem_addr.
1426 (check_mem_read_rtx): Likewise.
1428 2015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1430 * config/s390/s390.md (atomic code attribute): Fix typo "ior" ->
1433 2015-01-21 Wei Mi <wmi@google.com>
1435 Backported from trunk.
1436 2014-11-22 Jan Hubicka <hubicka@ucw.cz>
1439 * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
1440 as having abstract origin used.
1441 * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
1443 (clone_inlined_nodes): Copy abstract originflag.
1444 * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
1445 abstract origin node.
1447 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
1449 Backport from mainline
1450 * config/nios2/nios2.c (nios2_asm_file_end): Implement
1451 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
1453 (TARGET_ASM_FILE_END): Define.
1455 2015-01-15 Martin Liska <mliska@suse.cz>
1457 Backport from mainline
1458 2014-11-27 Richard Biener <rguenther@suse.de>
1461 * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
1462 and instead return false when !fstrict-aliasing.
1464 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
1466 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
1467 set the memory attributes in all cases but clear MEM_EXPR if need be.
1469 2015-01-14 Jakub Jelinek <jakub@redhat.com>
1471 Backported from mainline
1472 2015-01-12 Jakub Jelinek <jakub@redhat.com>
1475 * config/i386/i386.c (ix86_expand_prologue): Add
1476 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
1478 2015-01-13 Jakub Jelinek <jakub@redhat.com>
1480 PR rtl-optimization/64286
1481 * ree.c (combine_reaching_defs): Move part of comment earlier,
1482 remove !SCALAR_INT_MODE_P check.
1483 (add_removable_extension): Don't add vector mode
1484 extensions if all uses of the source register aren't the same
1487 2015-01-12 Jakub Jelinek <jakub@redhat.com>
1489 PR tree-optimization/64563
1490 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
1491 instead of != VR_VARYING.
1493 2015-01-14 Marek Polacek <polacek@redhat.com>
1495 Backport from mainline
1496 2015-01-13 Marek Polacek <polacek@redhat.com>
1499 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
1501 2015-01-13 Marc Glisse <marc.glisse@inria.fr>
1504 * tree.c (build_qualified_type): Use a canonical type for
1507 2015-01-13 Pat Haugen <pthaugen@us.ibm.com>
1509 Backport from mainline
1510 2014-12-20 Segher Boessenkool <segher@kernel.crashing.org>
1513 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
1514 input operands if only the second is inverted.
1515 * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
1516 Swap BOOL_REGS_OP1 and BOOL_REGS_OP2. Correct arguments to
1517 rs6000_split_logical.
1518 (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
1520 2015-01-13 Renlin Li <renlin.li@arm.com>
1522 Backport from mainline:
1523 2014-11-19 Renlin Li <renlin.li@arm.com>
1526 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
1528 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
1530 Backport form mainline
1531 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
1534 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
1536 2015-01-09 Jakub Jelinek <jakub@redhat.com>
1538 PR rtl-optimization/64536
1539 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
1542 2015-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
1544 Backport from mainline:
1545 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
1548 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
1549 correct reload handler if -m32 -mpowerpc64 is used.
1551 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1553 Backport from mainline:
1554 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1556 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
1558 * config/rs6000/t-rtems: Add e6500 multilibs.
1560 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1562 Backport from mainline:
1563 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1565 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
1568 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1570 Backport from mainline:
1571 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1573 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
1574 MULTILIB_EXCEPTIONS.
1576 2015-01-09 Renlin Li <renlin.li@arm.com>
1578 Backport from mainline:
1579 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1582 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
1583 of __ARM_SIZEOF_WCHAR_T.
1585 2015-01-08 Christian Bruel <christian.bruel@st.com>
1588 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
1590 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
1592 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
1593 instead of `m' constraint. Likewise for unnamed movb comparison
1594 patterns using reg_before_reload_operand predicate.
1595 * config/pa/predicates.md (reg_before_reload_operand): Tighten
1596 predicate to reject register index and LO_SUM DLT memory forms
1599 2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
1601 Backport from mainline:
1602 2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
1605 * config/i386/i386.c (ix86_function_type_abi): Issue an error
1606 when ms_abi attribute is used with x32.
1608 2014-12-27 Uros Bizjak <ubizjak@gmail.com>
1610 * config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
1611 Emit movshdup for SSE3 and shufps otherwise.
1612 (*vec_extractv2si_1): Do not emit punpckhdq and unpckhps.
1613 Emit pshufd for SSE2 and shufps otherwise.
1615 2014-12-24 Nick Clifton <nickc@redhat.com>
1617 Backport from mainline:
1618 2014-06-13 Nick Clifton <nickc@redhat.com>
1620 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
1621 requested alignment is active.
1622 (LABEL_ALIGN): Likewise.
1623 (LOOP_ALIGN): Likewise.
1625 2014-03-25 Nick Clifton <nickc@redhat.com>
1627 * config/rx/rx.c (rx_print_operand): Allow R operator to accept
1630 2014-12-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1632 Backport from mainline
1633 2014-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1635 PR rtl-optimization/64010
1636 * reload.c (push_reload): Before reusing a register contained
1637 in an operand as input reload register, ensure that it is not
1638 used in CALL_INSN_FUNCTION_USAGE.
1640 2014-12-15 Jakub Jelinek <jakub@redhat.com>
1643 * tsan.c (instrument_func_entry): Insert __tsan_func_entry
1644 call on edge from entry block to single succ instead
1645 of after labels of single succ of entry block.
1647 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
1649 Backported from mainline
1650 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
1652 PR rtl-optimization/64037
1653 * combine.c (setup_incoming_promotions): Pass the argument
1654 before any promotions happen to promote_function_mode.
1656 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
1658 Backported from mainline
1659 2014-12-06 H.J. Lu <hongjiu.lu@intel.com>
1662 * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
1663 for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
1665 2014-12-13 Jakub Jelinek <jakub@redhat.com>
1667 Backported from mainline
1668 2014-12-12 Jakub Jelinek <jakub@redhat.com>
1670 PR tree-optimization/64269
1671 * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
1672 len2 or diff are too large.
1674 2014-12-11 Eric Botcazou <ebotcazou@adacore.com>
1676 * doc/md.texi (Insn Lengths): Fix description of (pc).
1678 2014-12-11 Renlin Li <renlin.li@arm.com>
1680 Backport from mainline
1681 2014-12-11 Renlin Li <renlin.li@arm.com>
1683 * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
1685 (aarch64_override_options): Use selected_cpu's tuning.
1687 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1689 Backport from mainline
1690 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1692 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
1693 built-in definition.
1694 (XVCVUXDDP_SCALE): Likewise.
1695 (XVCVDPSXDS_SCALE): Likewise.
1696 (XVCVDPUXDS_SCALE): Likewise.
1697 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1698 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
1699 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
1700 VSX_BUILTIN_XVCVDPUXDS_SCALE.
1701 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
1703 * config/rs6000/rs6000.c (real.h): New include.
1704 (rs6000_scale_v2df): New function.
1705 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
1706 (UNSPEC_VSX_XVCVUXDDP): Likewise.
1707 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
1708 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
1709 (vsx_xvcvsxddp_scale): New define_expand.
1710 (vsx_xvcvsxddp): New define_insn.
1711 (vsx_xvcvuxddp_scale): New define_expand.
1712 (vsx_xvcvuxddp): New define_insn.
1713 (vsx_xvcvdpsxds_scale): New define_expand.
1714 (vsx_xvcvdpsxds): New define_insn.
1715 (vsx_xvcvdpuxds_scale): New define_expand.
1716 (vsx_xvcvdpuxds): New define_insn.
1717 * doc/extend.texi (vec_ctf): Add new prototypes.
1718 (vec_cts): Likewise.
1719 (vec_ctu): Likewise.
1720 (vec_splat): Likewise.
1721 (vec_div): Likewise.
1722 (vec_mul): Likewise.
1724 Backport from mainline
1725 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1727 * config/rs6000/altivec.h (vec_xl): New #define.
1728 (vec_xst): Likewise.
1729 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
1730 (XXSPLTD_V2DI): Likewise.
1731 (DIV_V2DI): Likewise.
1732 (UDIV_V2DI): Likewise.
1733 (MUL_V2DI): Likewise.
1734 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1735 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
1736 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
1737 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
1738 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
1739 (UNSPEC_VSX_DIVSD): Likewise.
1740 (UNSPEC_VSX_DIVUD): Likewise.
1741 (UNSPEC_VSX_MULSD): Likewise.
1742 (vsx_mul_v2di): New insn-and-split.
1743 (vsx_div_v2di): Likewise.
1744 (vsx_udiv_v2di): Likewise.
1745 (vsx_xxspltd_<mode>): New insn.
1747 Backport from mainline
1748 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1750 * config/rs6000/altivec.h (vec_cpsgn): New #define.
1751 (vec_mergee): Likewise.
1752 (vec_mergeo): Likewise.
1753 (vec_cntlz): Likewise.
1754 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
1755 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
1756 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
1758 * doc/extend.texi: Document various forms of vec_cpsgn,
1759 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
1760 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
1761 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
1762 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
1763 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
1765 Backport from mainline
1766 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1768 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
1769 (altivec_vsldoi_<mode>): Likewise.
1772 2014-12-10 Jakub Jelinek <jakub@redhat.com>
1774 PR tree-optimization/62021
1775 * omp-low.c (simd_clone_adjust_return_type): Use
1776 vector of pointer_sized_int_node types instead vector of pointer
1778 (simd_clone_adjust_argument_types): Likewise.
1780 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1782 Backport from mainline:
1783 2014-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1786 * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
1787 for BUILT_IN_POW when flag_errno_math is present.
1789 2014-12-10 Marek Polacek <polacek@redhat.com>
1791 Backport from mainline
1792 2014-12-10 Marek Polacek <polacek@redhat.com>
1794 PR tree-optimization/61686
1795 * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
1798 2014-12-09 David Edelsohn <dje.gcc@gmail.com>
1800 Backport from mainline
1801 2014-12-05 David Edelsohn <dje.gcc@gmail.com>
1803 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
1804 alignment to section name. Increase default alignment to
1807 2014-12-09 Uros Bizjak <ubizjak@gmail.com>
1811 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
1813 PR rtl-optimization/64037
1814 * combine.c (setup_incoming_promotions): Pass the argument
1815 before any promotions happen to promote_function_mode.
1817 2014-12-09 Richard Biener <rguenther@suse.de>
1819 PR tree-optimization/64191
1820 * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
1821 not relevant (nor are their uses).
1823 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
1825 Backport from mainline
1826 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
1829 * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
1831 2014-12-05 H.J. Lu <hongjiu.lu@intel.com>
1833 Backport from mainline
1834 2014-12-02 H.J. Lu <hongjiu.lu@intel.com>
1837 * config/i386/i386.c (decide_alg): Stop only if there aren't
1838 any usable algorithms.
1840 2014-12-05 H.J. Lu <hongjiu.lu@intel.com>
1842 Backport from mainline
1843 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
1845 PR rtl-optimization/64037
1846 * combine.c (setup_incoming_promotions): Pass the argument
1847 before any promotions happen to promote_function_mode.
1849 2014-12-04 Tobias Burnus <burnus@net-b.de>
1852 (ac_has_isl_schedule_constraints_compute_schedule):
1854 * graphite-clast-to-gimple.c: For ISL 0.14, include deprecate headers.
1855 * graphite-interchange.c: Ditto.
1856 * graphite-poly.c: Ditto.
1857 * graphite-sese-to-poly.c: Ditto.
1858 * graphite-optimize-isl.c (getScheduleForBandList): Ditto.
1859 Conditionally use ISL 0.13+ functions.
1860 * config.in: Regenerate.
1861 * configure: Regenerate.
1863 2014-12-04 Jakub Jelinek <jakub@redhat.com>
1866 * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1867 Handle COMPOUND_EXPR.
1869 2014-12-03 Jakub Jelinek <jakub@redhat.com>
1872 * expmed.c (expand_widening_mult): Return const0_rtx if
1875 2014-12-03 Martin Jambor <mjambor@suse.cz>
1878 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1879 type sizes before view_converting.
1881 2014-12-03 Shanyao Chen <chenshanyao@huawei.com>
1883 Backport from mainline
1884 2014-11-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1887 * config/arm/arm.md (*movhi_insn): Use right formatting
1890 2014-11-19 Felix Yang <felix.yang@huawei.com>
1891 Shanyao Chen <chenshanyao@huawei.com>
1894 * config/arm/arm.md (define_attr "arch"): Add v6t2.
1895 (define_attr "arch_enabled"): Add test for the above.
1896 (*movhi_insn_arch4): Add new alternative.
1898 2014-12-03 Renlin Li <Renlin.Li@arm.com>
1900 Backported from mainline
1901 2014-12-03 Renlin Li <Renlin.Li@arm.com>
1905 * ira.c (ira): Update preferred class.
1907 2014-12-02 Uros Bizjak <ubizjak@gmail.com>
1910 * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
1911 using post-reload splitter. Use peephole2 pass instead.
1912 (call_value_osf_tlsldm): Ditto.
1913 (TLS_CALL): New int iterator.
1914 (tls): New int attribute.
1915 (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
1916 and call_value_tlsldm using TLS_CALL int iterator.
1918 2014-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1921 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
1922 invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
1924 2014-12-01 Richard Biener <rguenther@suse.de>
1927 * tree.c (int_cst_hash_hash): Use TYPE_UID instead of
1928 htab_hash_pointer to not break PCH.
1930 2014-12-01 Martin Jambor <mjambor@suse.cz>
1933 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
1934 value of the argument to the type of the value in the condition.
1936 2014-11-28 Jakub Jelinek <jakub@redhat.com>
1938 Backported from mainline
1939 2014-11-27 Jakub Jelinek <jakub@redhat.com>
1942 * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
1943 Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
1944 not only if modifier is EXPAND_INITIALIZER, but whenever
1945 COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
1947 2014-11-19 Jakub Jelinek <jakub@redhat.com>
1949 PR tree-optimization/63915
1950 * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
1951 true instead of false as last argument to gsi_replace.
1954 * ubsan.c: Include tree-eh.h.
1955 (instrument_bool_enum_load): Handle loads that can throw.
1957 2014-10-31 Jakub Jelinek <jakub@redhat.com>
1959 PR rtl-optimization/63659
1960 * ree.c (update_reg_equal_equiv_notes): New function.
1961 (combine_set_extension, transform_ifelse): Use it.
1963 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1965 Backport from mainline.
1966 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1968 * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
1971 2014-11-26 Richard Biener <rguenther@suse.de>
1974 * tree-data-ref.c (split_constant_offset_1): Do not follow
1975 SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1977 2014-11-26 Richard Biener <rguenther@suse.de>
1979 Backport from mainline
1980 2014-11-26 Richard Biener <rguenther@suse.de>
1982 PR tree-optimization/62238
1983 * tree-predcom.c (ref_at_iteration): Unshare the expression
1984 before gimplifying it.
1986 2014-11-25 Richard Biener <rguenther@suse.de>
1988 PR tree-optimization/61927
1989 * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
1990 of group and pattern analysis to the one in GCC 4.8.
1992 2014-11-07 Richard Biener <rguenther@suse.de>
1994 PR tree-optimization/63605
1995 * fold-const.c (fold_binary_loc): Properly use element_precision
1996 for types that may not be scalar.
1998 2014-10-28 Richard Biener <rguenther@suse.de>
2001 * fold-const.c (fold_comparison): Properly guard simplifying
2002 against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
2004 2014-11-25 Rohit <rohitarulraj@freescale.com>
2007 * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
2008 added GCC hard register numbers for SPE high registers.
2010 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
2012 Backport from mainline
2013 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
2016 * config/sh/sh_optimize_sett_clrt.cc
2017 (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
2018 of void. Abort at complex edges.
2019 (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
2022 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
2024 Backport from mainline
2025 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
2029 * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
2030 Do not emit bitwise not insn. Emit logical not insn sequence instead.
2031 Adjust related comments throughout the file.
2033 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
2035 Backport from mainline
2036 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
2039 * config/sh/sh.c: Use signed char for signed field.
2041 2014-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2044 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
2045 the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
2048 2014-11-21 Richard Biener <rguenther@suse.de>
2050 PR tree-optimization/61750
2051 * tree-ssa-forwprop.c (simplify_vce): Verify type sizes
2052 match for the resulting VIEW_CONVERT_EXPR.
2054 2014-11-19 Uros Bizjak <ubizjak@gmail.com>
2057 * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
2058 Output "b" and "nb" suffix for FP mode.
2060 2014-11-19 Tom de Vries <tom@codesourcery.com>
2062 Backport from mainline
2063 PR tree-optimization/62167
2064 * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
2066 (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
2069 2014-11-16 Eric Botcazou <ebotcazou@adacore.com>
2071 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
2072 * doc/tm.texi: Regenerate.
2074 2014-11-14 Felix Yang <felix.yang@huawei.com>
2076 Backport from mainline
2077 2014-11-14 Felix Yang <felix.yang@huawei.com>
2078 Jiji Jiang <jiangjiji@huawei.com>
2080 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
2081 VALL mode iterator instead of VALLDI.
2083 2014-11-13 Teresa Johnson <tejohnson@google.com>
2085 PR tree-optimization/63841
2086 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
2088 2014-11-13 Christophe Lyon <christophe.lyon@linaro.org>
2090 Backport from mainline
2091 2014-11-02 Michael Collison <michael.collison@linaro.org>
2093 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
2094 to support vector modes.
2095 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
2097 2014-11-13 Eric Botcazou <ebotcazou@adacore.com>
2099 * doc/tm.texi.in (SELECT_CC_MODE): Update example.
2100 (REVERSIBLE_CC_MODE): Fix example.
2101 (REVERSE_CONDITION): Fix typo.
2102 * doc/tm.texi: Regenerate.
2104 2014-11-12 Jakub Jelinek <jakub@redhat.com>
2107 * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
2108 chain instead of node->indirect_calls.
2110 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
2113 * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
2114 smaller than 8 bytes.
2115 (sparc_function_arg_1): Tweak.
2116 (sparc_function_value_1): Tweak.
2118 2014-11-08 Eric Botcazou <ebotcazou@adacore.com>
2120 * config/arm/arm.c (arm_set_return_address): Mark the store as frame
2122 (thumb_set_return_address): Likewise.
2124 2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
2126 * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
2127 * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
2129 2014-11-07 Marek Polacek <polacek@redhat.com>
2131 Backported from mainline
2132 2014-10-23 Marek Polacek <polacek@redhat.com>
2134 * c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
2137 2014-11-06 John David Anglin <danglin@gcc.gnu.org>
2139 * config/pa/pa.md (trap): New insn. Add "trap" to attribute type.
2140 Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
2143 2014-11-06 Daniel Hellstrom <daniel@gaisler.com>
2145 * config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
2146 * doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
2147 * config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
2149 * config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
2150 * config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
2151 * config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
2152 * config/sparc/sparc.md (cpu): Add leon3v7.
2153 * config/sparc/sparc.opt (enum processor_type): Add leon3v7.
2155 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
2158 * config/i386/i386.c (in_large_data_p): Reject automatic variables.
2159 (ix86_encode_section_info): Do not check for non-automatic varibles
2160 when setting SYMBOL_FLAG_FAR_ADDR flag.
2161 (x86_64_elf_select_section): Do not check ix86_cmodel here.
2162 (x86_64_elf_unique_section): Ditto.
2163 (x86_elf_aligned_common): Emit tab before .largecomm.
2165 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
2167 Backport from mainline:
2168 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
2170 * varasm.c (const_alias_set): Remove.
2171 (init_varasm_once): Remove initialization of const_alias_set.
2172 (build_constant_desc): Do not set alias set to const_alias_set.
2174 Backport from mainline:
2175 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
2177 PR rtl-optimization/63475
2178 * alias.c (true_dependence_1): Always use get_addr to extract
2179 true address operands from x_addr and mem_addr. Use extracted
2180 address operands to check for references with alignment ANDs.
2181 Use extracted address operands with find_base_term and
2182 base_alias_check. For noncanonicalized operands call canon_rtx with
2183 extracted address operand.
2184 (write_dependence_1): Ditto.
2185 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
2187 Backport from mainline:
2188 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
2190 PR rtl-optimization/63483
2191 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2192 references when alignment ANDs are involved.
2193 (write_dependence_p): Ditto.
2194 (may_alias_p): Ditto.
2196 2014-10-31 DJ Delorie <dj@redhat.com>
2198 * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
2200 2014-10-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2202 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
2203 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
2204 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
2205 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
2207 2014-10-31 Jakub Jelinek <jakub@redhat.com>
2210 * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
2211 MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
2212 instead of vr0.min - vr1.min and vr0.max - vr1.max.
2214 2014-10-30 Georg-Johann Lay <avr@gjlay.de>
2217 * config/avr/avr-protos.h (regmask): New inline function.
2218 (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
2219 * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
2220 (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
2221 * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
2222 (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
2223 (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
2224 * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
2225 (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
2226 (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
2227 * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
2228 (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
2229 (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
2230 (fmul, fmuls, fmulsu): Fix operands. Turn insn into expander as
2233 2014-10-30 Jakub Jelinek <jakub@redhat.com>
2235 * BASE-VER: Set to 4.9.3.
2236 * DEV-PHASE: Set to prerelease.
2238 2014-10-30 Release Manager
2240 * GCC 4.9.2 released.
2242 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2244 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
2245 recog state after aarch64_prev_real_insn call.
2247 2014-10-27 Guozhi Wei <carrot@google.com>
2249 PR tree-optimization/63530
2250 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
2251 pointer alignment according to DR_MISALIGNMENT.
2253 2014-10-25 Yury Gribov <y.gribov@samsung.com>
2256 * asan.c (enum asan_check_flags): Fixed ASAN_CHECK_LAST.
2258 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
2261 * collect2.c (main): Filter out -fno-lto.
2263 2014-10-22 Richard Biener <rguenther@suse.de>
2264 Tobias Burnus <burnus@net-b.de>
2267 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
2269 2014-10-21 Jakub Jelinek <jakub@redhat.com>
2271 PR tree-optimization/63563
2272 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
2273 if either dra or drb stmts are not normal loads/stores.
2275 2014-10-17 Jakub Jelinek <jakub@redhat.com>
2277 * asan.c (instrument_derefs): Allow instrumentation of odd-sized
2278 accesses even for -fsanitize=address.
2279 (execute_sanopt): Only allow use_calls for -fsanitize=kernel-address.
2281 PR tree-optimization/63302
2282 * tree-ssa-reassoc.c (optimize_range_tests_xor,
2283 optimize_range_tests_diff): Use !integer_pow2p () instead of
2286 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2288 * asan.c (instrument_derefs): Enable unaligned path for KASan.
2290 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2292 Backport from mainline
2293 2014-10-03 Yury Gribov <y.gribov@samsung.com>
2295 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
2296 don't emit empty ctors.
2298 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2300 Backport from mainline
2301 2014-09-01 Yury Gribov <y.gribov@samsung.com>
2306 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
2307 (build_check_stmt): Likewise.
2308 (instrument_strlen_call): Likewise.
2309 (asan_expand_check_ifn): Likewise and fix types.
2310 (maybe_cast_to_ptrmode): New function.
2312 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2314 Backport from mainline
2315 2014-08-18 Yury Gribov <y.gribov@samsung.com>
2319 * asan.c (instrument_derefs): Fix bitfield check.
2321 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2323 Backport from mainline
2324 2014-08-11 Yury Gribov <y.gribov@samsung.com>
2326 * asan.c (asan_check_flags): New enum.
2327 (build_check_stmt_with_calls): Removed function.
2328 (build_check_stmt): Split inlining logic to
2329 asan_expand_check_ifn.
2330 (instrument_derefs): Rename parameter.
2331 (instrument_mem_region_access): Rename parameter.
2332 (instrument_strlen_call): Likewise.
2333 (asan_expand_check_ifn): New function.
2334 (asan_instrument): Remove old code.
2335 (pass_sanopt::execute): Change handling of
2336 asan-instrumentation-with-call-threshold.
2337 (asan_clear_shadow): Fix formatting.
2338 (asan_function_start): Likewise.
2339 (asan_emit_stack_protection): Likewise.
2340 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
2342 * internal-fn.c (expand_ASAN_CHECK): New function.
2343 * internal-fn.def (ASAN_CHECK): New internal function.
2344 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
2346 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
2347 * tree.c: Small comment fix.
2349 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2351 Backport from mainline
2352 2014-08-11 Yury Gribov <y.gribov@samsung.com>
2354 * gimple.c (gimple_call_fnspec): Support internal functions.
2355 (gimple_call_return_flags): Use const.
2356 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
2357 * internal-fn.def: Add fnspec information.
2358 * internal-fn.h (internal_fn_fnspec): New function.
2359 (init_internal_fns): Declare new function.
2360 * internal-fn.c (internal_fn_fnspec_array): New global variable.
2361 (init_internal_fns): New function.
2362 * tree-core.h: Update macro call.
2363 * tree.c (build_common_builtin_nodes): Initialize internal fns.
2365 Backport from mainline
2366 2014-08-12 Yury Gribov <y.gribov@samsung.com>
2368 * internal-fn.c (init_internal_fns): Fix off-by-one.
2370 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2372 Backport from mainline
2373 2014-07-31 Yury Gribov <y.gribov@samsung.com>
2375 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
2376 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
2377 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
2379 * gcc.c (sanitize_spec_function): Support new option.
2380 (SANITIZER_SPEC): Remove now redundant check.
2381 * opts.c (common_handle_option): Support new option.
2382 (finish_options): Check for incompatibilities.
2383 * toplev.c (process_options): Split userspace-specific checks.
2385 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2387 Backport from mainline
2388 2014-06-24 Max Ostapenko <m.ostapenko@partner.samsung.com>
2390 * asan.c (instrument_strlen_call): Do not instrument first byte in
2391 strlen if already instrumented.
2393 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2395 Backport from mainline
2396 2014-06-16 Yury Gribov <y.gribov@samsung.com>
2398 * asan.c (check_func): New function.
2399 (maybe_create_ssa_name): Likewise.
2400 (build_check_stmt_with_calls): Likewise.
2401 (use_calls_p): Likewise.
2402 (report_error_func): Change interface.
2403 (build_check_stmt): Allow non-integer lengths; add support
2405 (asan_instrument): Likewise.
2406 (instrument_mem_region_access): Moved code to
2408 (instrument_derefs): Likewise.
2409 (instrument_strlen_call): Likewise.
2410 * cfgcleanup.c (old_insns_match_p): Add support for new
2412 * doc/invoke.texi: Describe new parameter.
2413 * params.def: Define new parameter.
2414 * params.h: Likewise.
2415 * sanitizer.def: Describe new builtins.
2417 Backport from mainline
2418 2014-06-16 Yury Gribov <y.gribov@samsung.com>
2420 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
2422 Backport from mainline
2423 2014-06-18 Yury Gribov <y.gribov@samsung.com>
2427 * asan.c (build_check_stmt): Add condition.
2429 Backport from mainline
2430 2014-06-18 Yury Gribov <y.gribov@samsung.com>
2434 * asan.c (instrument_strlen_call): Fixed instrumentation of
2437 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2439 Backport from mainline
2440 2014-05-30 Jakub Jelinek <jakub@redhat.com>
2442 * asan.c (report_error_func): Add SLOW_P argument, use
2443 BUILT_IN_ASAN_*_N if set.
2444 (build_check_stmt): Likewise.
2445 (instrument_derefs): If T has insufficient alignment,
2446 force same handling as for odd sizes.
2448 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2450 Backport from mainline
2451 2014-05-30 Jakub Jelinek <jakub@redhat.com>
2453 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
2454 BUILT_IN_ASAN_REPORT_STORE_N): New.
2455 * asan.c (struct asan_mem_ref): Change access_size type to
2457 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
2458 update_mem_ref_hash_table): Likewise.
2459 (asan_mem_ref_hasher::hash): Hash in a HWI.
2460 (report_error_func): Change size_in_bytes argument to HWI.
2461 Use *_N builtins if size_in_bytes is larger than 16 or not power of
2463 (build_shadow_mem_access): New function.
2464 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
2465 Handle size_in_bytes not power of two or larger than 16.
2466 (instrument_derefs): Don't give up if size_in_bytes is not
2467 power of two or is larger than 16.
2469 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
2471 PR rtl-optimization/63448
2472 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
2473 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
2474 (LRA_MAX_INHERITANCE_PASSES): Use it.
2475 (lra_constraint_iter_after_spill): Remove.
2476 (lra_assignment_iter): New.
2477 (lra_assignment_iter_after_spill): New.
2478 * lra-assigns.c (lra_assignment_iter): New.
2479 (lra_assignment_iter_after_spill): New.
2480 (former_reload_pseudo_spill_p): New.
2481 (spill_for): Set up former_reload_pseudo_spill_p.
2482 (setup_live_pseudos_and_spill_after_risky): Ditto.
2483 (assign_by_spills): Ditto.
2484 (lra_assign): Increment lra_assignment_iter. Print the iteration
2485 number. Reset former_reload_pseudo_spill_p. Check
2486 lra_assignment_iter_after_spill.
2487 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
2488 lra_assignment_iter and lra_assignment_iter_after_spill.
2489 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
2490 (lra_constraints): Remove code with
2491 lra_assignment_iter_after_spill.
2493 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
2495 * stor-layout.c (self_referential_size): Do not promote arguments.
2497 2014-10-15 Richard Biener <rguenther@suse.de>
2499 Backport from mainline
2500 2014-08-15 Richard Biener <rguenther@suse.de>
2502 PR tree-optimization/62031
2503 * tree-data-ref.c (dr_analyze_indices): Do not set
2504 DR_UNCONSTRAINED_BASE.
2505 (dr_may_alias_p): All indirect accesses have to go the
2506 formerly DR_UNCONSTRAINED_BASE path.
2507 * tree-data-ref.h (struct indices): Remove
2508 unconstrained_base member.
2509 (DR_UNCONSTRAINED_BASE): Remove.
2511 2014-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2513 Backport from mainline r215880
2514 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2516 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2517 Issue a warning message when vec_lvsl or vec_lvsr is used with a
2518 little endian target.
2520 Backport from mainline r215882
2521 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2523 * altivec.md (altivec_lvsl): New define_expand.
2524 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
2525 (altivec_lvsr): New define_expand.
2526 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
2527 * rs6000.c (rs6000_expand_builtin): Change to use
2528 altivec_lvs[lr]_direct; remove commented-out code.
2530 2014-10-10 Richard Biener <rguenther@suse.de>
2532 PR tree-optimization/63379
2533 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
2534 a neutral operand for min/max when it is not a reduction chain.
2536 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2538 Backport from mainline
2539 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2541 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
2542 * configure: Regenerate.
2543 * config/aarch64/aarch64.c (aarch64_override_options): Handle
2544 TARGET_FIX_ERR_A53_835769_DEFAULT.
2545 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
2547 * doc/install.texi (aarch64*-*-*): Document new
2548 --enable-fix-cortex-a53-835769 option.
2550 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2552 Backport from mainline
2553 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2554 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2556 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
2557 (ADJUST_INSN_LENGTH): Define.
2558 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
2559 * config/aarch64/aarch64.c (is_mem_p): New function.
2560 (is_memory_op): Likewise.
2561 (aarch64_prev_real_insn): Likewise.
2562 (is_madd_op): Likewise.
2563 (dep_between_memop_and_curr): Likewise.
2564 (aarch64_madd_needs_nop): Likewise.
2565 (aarch64_final_prescan_insn): Likewise.
2566 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
2567 and -mno-fix-cortex-a53-835769 options.
2569 2014-10-10 Richard Biener <rguenther@suse.de>
2571 PR tree-optimization/63380
2572 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
2575 2014-10-09 Richard Biener <rguenther@suse.de>
2577 PR tree-optimization/61969
2578 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
2581 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
2583 Backport from mainline
2584 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
2586 PR rtl-optimization/57003
2587 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
2588 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
2589 killing regs_invalidated_by_call.
2591 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
2593 Backport from mainline
2594 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
2597 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
2598 atomic_fetch_<fetchop_name>si_hard,
2599 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
2600 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
2601 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
2602 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
2604 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
2607 * varpool.c (ctor_for_folding): Do not fold WEAK symbols.
2609 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
2612 * ipa-devirt.c (restrict_to_inner_class): Do not ICE when type is
2615 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
2618 * lto-streamer-out.c (lto_output): Handle thunks correctly.
2619 * cgraphclones.c (duplicate_thunk_for_node): Get thunk's arguments.
2621 2014-10-03 Jakub Jelinek <jakub@redhat.com>
2624 * omp-low.c (taskreg_contexts): New variable.
2625 (scan_omp_parallel): Push newly created context into taskreg_contexts
2626 vector and move record layout code to finish_taskreg_scan.
2627 (scan_omp_task): Likewise.
2628 (finish_taskreg_scan): New function.
2629 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
2630 vector elements and release it.
2632 2014-10-02 Martin Jambor <mjambor@suse.cz>
2634 PR tree-optimization/63375
2635 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
2638 2014-10-01 Jakub Jelinek <jakub@redhat.com>
2641 * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and
2645 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
2646 argument to avx2_permv2ti.
2649 Backported from mainline
2650 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
2653 * cgraphunit.c (analyze_functions): Use get_create rather than get
2654 for decls which are clones of abstract functions.
2656 2014-10-01 Jakub Jelinek <jakub@redhat.com>
2658 Backported from mainline
2659 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
2662 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
2665 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
2667 PR tree-optimization/63186
2668 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
2669 (mark_nonssa_use): Likewise.
2670 (verify_non_ssa_vars): Verify all header blocks for label
2673 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2675 Backport from mainline
2676 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2678 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
2680 2014-10-01 Uros Bizjak <ubizjak@gmail.com>
2682 Backport from mainline
2683 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
2685 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
2686 (fmod<mode>3): Ditto.
2687 (fpremxf4_i387): Ditto.
2688 (reminderxf3): Ditto.
2689 (reminder<mode>3): Ditto.
2690 (fprem1xf4_i387): Ditto.
2692 2014-09-30 David Malcolm <dmalcolm@redhat.com>
2695 * Makefile.in (PLUGIN_HEADERS): Add pass-instances.def.
2697 2014-09-30 Jakub Jelinek <jakub@redhat.com>
2700 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
2701 or invert_jump_1 if jump isn't any_condjump_p.
2703 2014-09-29 James Clarke <jrtc27@jrtc27.com>
2704 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2707 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
2709 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
2710 kernel version check to avoid incrementing it after every major OS X
2712 (darwin_default_min_version): Avoid static memory buffer.
2714 2014-09-29 Charles Baylis <charles.baylis@linaro.org>
2716 Backport from mainline r212303
2718 * config/arm/arm-protos.h (arm_legitimate_address_p,
2719 arm_is_constant_pool_ref): Add prototypes.
2720 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
2721 (arm_is_constant_pool_ref) New function.
2722 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
2723 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
2724 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
2725 operand and remove pool_range and neg_pool_range attributes.
2726 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
2727 pool_range and neg_pool_range attributes.
2728 * config/arm/constraints.md (Uh): New constraint. (Uq): Don't allow
2729 constant pool references.
2731 2014-09-29 Jakub Jelinek <jakub@redhat.com>
2734 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
2735 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
2736 use the alignment of avar rather than ovar.
2738 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
2740 * config/pa/pa.c (pa_output_function_epilogue): Only update
2741 last_address when a nonnote insn is found.
2743 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
2745 Backport from mainline
2746 2014-09-25 Nick Clifton <nickc@redhat.com>
2747 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
2750 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask,
2751 atomic_test_and_set_soft_imask): Fix typo in instruction sequence.
2753 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2755 Backport from mainline r215559
2756 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2759 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
2760 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
2762 2014-09-25 Jakub Jelinek <jakub@redhat.com>
2764 PR tree-optimization/63341
2765 * tree-vectorizer.h (vect_create_data_ref_ptr,
2766 vect_create_addr_base_for_vector_ref): Add another tree argument
2767 defaulting to NULL_TREE.
2768 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
2769 argument, pass it down to vect_create_addr_base_for_vector_ref.
2770 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
2771 add that to base_offset too if non-NULL.
2772 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
2773 for dr_explicit_realign_optimized set it to vector byte size
2774 - 1 instead of setting offset, pass byte_offset down to
2775 vect_create_data_ref_ptr.
2777 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2779 Backport from mainline
2780 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2782 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
2783 refine the constraints used on 32/64-bit floating point moves.
2785 (f64_vsx): Likewise.
2788 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
2789 (BOOL_REGS_OP1): Likewise.
2790 (BOOL_REGS_OP2): Likewise.
2791 (BOOL_REGS_UNARY): Likewise.
2792 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
2793 32/64-bit floating point moves. Do not use wa, instead use ww/ws
2794 for moves involving VSX registers. Do not use constraints that
2795 target VSX registers for decimal types.
2796 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
2797 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
2799 2014-09-22 Marek Polacek <polacek@redhat.com>
2801 Backport from mainline
2802 2014-05-21 Marek Polacek <polacek@redhat.com>
2805 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
2807 2014-09-22 Jakub Jelinek <jakub@redhat.com>
2810 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
2811 insert a debug source bind stmt setting DEBUG_EXPR_DECL
2812 instead of a normal gimple assignment stmt.
2814 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
2816 Back port from trunk:
2817 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
2819 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
2820 for base_reg_operand to be common between LO_SUM and PLUS.
2821 (fusion_gpr_mem_combo): New predicate to match a fused address
2822 that combines the addis and memory offset address.
2824 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
2826 (emit_fusion_gpr_load): Likewise.
2828 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
2829 signature to pass each argument separately, rather than
2830 using an operands array. Rewrite the insns found by peephole2 to
2831 be a single insn, rather than hoping the insns will still be
2832 together when the peephole pass is done. Drop being called via a
2834 (emit_fusion_gpr_load): Change calling signature to be called from
2835 the fusion_gpr_load_<mode> insns with a combined memory address
2836 instead of the peephole pass passing the addis and offset
2839 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
2841 (power8 fusion peephole): Drop support for doing power8 via a
2842 normal peephole that was created by the peephole2 pass.
2843 (power8 fusion peephole2): Create a new insn with the fused
2844 address, so that the fused operation is kept together after
2845 register allocation is done.
2846 (fusion_gpr_load_<mode>): Likewise.
2848 2014-09-18 Jakub Jelinek <jakub@redhat.com>
2851 * asan.c (transform_statements): Don't instrument clobber statements.
2853 2014-09-17 Jakub Jelinek <jakub@redhat.com>
2856 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
2857 if there are only debug stmts after the noreturn call, instead
2858 remove the debug stmts.
2860 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
2862 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
2863 Enable selection of 'posix' or no thread model.
2865 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
2868 * config/pa/pa.c (pa_function_value): Directly handle aggregates
2869 that fit exactly in a word or double word.
2871 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
2873 * doc/install.texi (Options specification): add
2874 --disable-libsanitizer item.
2876 2014-09-12 DJ Delorie <dj@redhat.com>
2878 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
2879 (extend_and_shift1_hipsi2): Likewise.
2880 (extend_and_shift2_hipsi2): Likewise.
2882 2014-09-12 Martin Jambor <mjambor@suse.cz>
2885 * cgraph.h (cgraph_analyze_function): Declare.
2886 * cgraphunit.c: (analyze_function): Remove forward declaration,
2887 rename to cgraph_analyze_function, made external.
2888 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
2889 new decl properly. Analyze the new thunk if it is expanded.
2891 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
2893 Backport from mainline
2894 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
2897 * config/i386/i386.c (ix86_option_override_internal): Also turn
2898 off OPTION_MASK_ABI_X32 for -m16.
2900 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
2902 Backport from mainline.
2903 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
2905 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
2907 (vmull_high_lane_s32): Likewise.
2908 (vmull_high_lane_u16): Likewise.
2909 (vmull_high_lane_u32): Likewise.
2911 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
2913 Backport r214946 from mainline
2914 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
2916 * config/aarch64/aarch64.md (adddi3_aarch64): Set type to neon_add.
2918 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
2920 Backport r214953 from mainline
2921 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
2923 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
2924 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
2926 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
2927 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
2928 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
2929 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
2930 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
2931 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
2932 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
2933 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
2934 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
2935 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
2936 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
2937 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
2938 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
2939 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
2940 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
2941 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
2942 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
2943 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
2944 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
2945 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
2946 with int{32,16,8}_t.
2948 2014-09-11 Jason Merrill <jason@redhat.com>
2951 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
2953 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
2955 Backport from 2014-09-11 trunk r215152.
2958 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
2959 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
2960 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
2962 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2964 Backport from mainline
2965 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2967 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
2968 V2DF, V4SF, DF, and DI modes.
2969 (vsx_fmav2df2): Likewise.
2970 (vsx_float_fix_<mode>2): Likewise.
2971 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
2973 2014-09-10 Xinliang David Li <davidxl@google.com>
2975 Backport from mainline
2977 * config/arm/arm.md (movcond_addsi): Handle case where source
2978 and target operands are the same.
2980 2014-09-10 Alan Modra <amodra@gmail.com>
2983 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
2986 2014-09-09 Bill Schmidt <wschmidt@us.ibm.com>
2988 Backported from mainline
2989 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2991 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
2992 selection of 0th memory doubleword, regardless of endianness.
2994 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
2996 Backport from mainline
2997 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
2999 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
3003 2014-09-09 Jason Merrill <jason@redhat.com>
3007 * gimple-fold.c (can_refer_decl_in_current_unit_p): Don't allow
3008 reference to a DECL_EXTERNAL COMDAT.
3010 2014-09-09 Richard Biener <rguenther@suse.de>
3012 Backport from mainline
3013 2014-08-05 Richard Biener <rguenther@suse.de>
3015 PR rtl-optimization/61672
3016 * emit-rtl.h (mem_attrs_eq_p): Declare.
3017 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
3018 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
3019 * cfgcleanup.c (merge_memattrs): Likewise.
3022 2014-08-11 Richard Biener <rguenther@suse.de>
3024 PR tree-optimization/62075
3025 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
3026 handle uses in patterns.
3028 2014-08-14 Richard Biener <rguenther@suse.de>
3030 PR rtl-optimization/62079
3031 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
3034 2014-08-26 Richard Biener <rguenther@suse.de>
3036 PR tree-optimization/62175
3037 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
3038 expand possibly trapping operations.
3040 2014-09-08 DJ Delorie <dj@redhat.com>
3042 * doc/invoke.texi (MSP430 Options): Add -minrt.
3044 2014-09-05 Easwaran Raman <eraman@google.com>
3046 Backport from mainline
3047 PR rtl-optimization/62146
3048 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
3049 hoisted instruction unconditional.
3051 2014-09-04 Guozhi Wei <carrot@google.com>
3054 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
3055 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
3056 it into two patterns.
3057 (move_lo_quad_internal_be_<mode>): Likewise.
3059 2014-09-03 Martin Jambor <mjambor@suse.cz>
3062 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
3063 pass-trough jump functions correctly.
3065 2014-09-03 Martin Jambor <mjambor@suse.cz>
3068 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
3069 created replacements in ascending order of offsets.
3070 (known_aggs_to_agg_replacement_list): Likewise.
3072 2014-09-02 Kaz Kojima <kkojima@gcc.gnu.org>
3074 Backport from mainline
3075 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
3078 * config/sh/sh.md (ashlsi3): Handle negative shift count for
3080 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
3082 2014-09-02 Kaz Kojima <kkojima@gcc.gnu.org>
3084 Backport from mainline
3085 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
3088 * config/sh/predicates.md (general_extend_operand): Disable
3089 TRUNCATE before reload completes.
3091 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
3093 Backport from mainline
3094 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
3097 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
3099 2014-09-01 Jakub Jelinek <jakub@redhat.com>
3102 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
3103 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
3104 (find_inc): Revert 2014-08-12 change.
3106 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
3107 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
3108 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
3110 2014-09-01 Marek Polacek <polacek@redhat.com>
3112 Backport from mainline
3113 2014-08-21 Marek Polacek <polacek@redhat.com>
3116 * expr.c (is_aligning_offset): Remove logical not.
3118 2014-09-01 Marek Polacek <polacek@redhat.com>
3120 Backport from mainline
3121 2014-08-19 Marek Polacek <polacek@redhat.com>
3124 * cgraphunit.c (handle_alias_pairs): Fix condition.
3126 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
3128 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
3129 prefix to function labels when generating fast indirect calls.
3131 2014-08-29 Yvan Roux <yvan.roux@linaro.org>
3133 Backport from mainline
3134 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
3137 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
3139 2014-08-27 Guozhi Wei <carrot@google.com>
3142 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
3143 amount before using it.
3145 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
3147 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
3149 2014-08-26 Marek Polacek <polacek@redhat.com>
3151 Backport from mainline
3152 2014-08-26 Marek Polacek <polacek@redhat.com>
3155 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
3156 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
3158 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
3160 Backport from mainline
3161 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
3164 * config/sh/sh.opt (musermode): Allow negative form.
3165 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
3166 targets that don't support it.
3167 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
3168 Document -mno-usermode option.
3170 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
3173 * config/pa/pa.c (pa_output_function_epilogue): Don't set
3174 last_address when the current function is a thunk.
3175 (pa_asm_output_mi_thunk): When we don't have named sections or they
3176 are not being used, check that thunk can reach the stub table with a
3179 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
3181 Backport from mainline
3182 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
3185 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
3186 documentation to state it is only for VSX operations.
3188 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
3189 constraint only active if VSX.
3191 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
3192 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
3195 2014-08-21 Uros Bizjak <ubizjak@gmail.com>
3197 Backport from mainline
3198 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
3200 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
3201 destination if it is used in source.
3202 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
3203 (*popcount<mode>2_falsedep_1): Likewise.
3205 Backport from mainline
3206 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
3209 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
3211 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
3212 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
3213 (ffs<mode>2): Do not expand with tzcnt for
3214 TARGET_AVOID_FALSE_DEP_FOR_BMI.
3215 (ffssi2_no_cmove): Ditto.
3216 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
3217 (ctz<mode>2): New expander.
3218 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
3219 (*ctz<mode>2_falsedep): New insn.
3220 (*ctz<mode>2): Rename from ctz<mode>2.
3221 (clz<mode>2_lzcnt): New expander.
3222 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
3223 (*clz<mode>2_lzcnt_falsedep): New insn.
3224 (*clz<mode>2): Rename from ctz<mode>2.
3225 (popcount<mode>2): New expander.
3226 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
3227 (*popcount<mode>2_falsedep): New insn.
3228 (*popcount<mode>2): Rename from ctz<mode>2.
3229 (*popcount<mode>2_cmp): Remove.
3230 (*popcountsi2_cmp_zext): Ditto.
3232 2014-08-20 Martin Jambor <mjambor@suse.cz>
3233 Wei Mi <wmi@google.com>
3237 * tree-ssa-operands.c (update_stmt_operands): Remove
3238 MODIFIED_NORETURN_CALLS.
3239 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
3240 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
3241 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
3242 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
3243 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
3244 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
3245 (gimple_call_set_ctrl_altering): New func.
3246 (gimple_call_ctrl_altering_p): Ditto.
3247 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
3248 (make_blocks): Use gimple_call_initialize_ctrl_altering.
3249 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
3250 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
3251 remove MODIFIED_NORETURN_CALLS.
3253 2014-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3255 Backport from mainline.
3256 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3258 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
3259 Remove unnecessary attributes.
3261 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
3264 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
3266 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
3267 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
3268 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
3270 * config/pa/pa.md (begin_brtab): Delete insn.
3271 (end_brtab): Likewise.
3273 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
3275 Backport from mainline:
3276 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
3278 * doc/invoke.texi (SH options): Document missing processor variant
3279 options. Remove references to Hitachi. Undocument deprecated mspace
3282 2014-08-15 Tom de Vries <tom@codesourcery.com>
3284 Backport from mainline:
3285 2014-08-14 Tom de Vries <tom@codesourcery.com>
3287 PR rtl-optimization/62004
3288 PR rtl-optimization/62030
3289 * ifcvt.c (rtx_interchangeable_p): New function.
3290 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
3292 2014-08-05 Richard Biener <rguenther@suse.de>
3294 * emit-rtl.h (mem_attrs_eq_p): Declare.
3295 * emit-rtl.c (mem_attrs_eq_p): Export.
3297 2014-08-15 Jakub Jelinek <jakub@redhat.com>
3300 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
3301 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
3302 in OMP_CLAUSE_MAP in some outer target region.
3304 2014-08-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3306 Backport from mainline
3307 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3310 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
3311 move to subtarget in serial version if result is ignored.
3313 2014-08-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
3315 Backport from mainline
3316 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
3319 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
3320 bitfields, that is when size doesn't match the size of type or the
3321 size of the constructor.
3323 2014-08-12 Felix Yang <fei.yang0953@gmail.com>
3325 PR tree-optimization/62073
3326 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
3329 2014-08-12 Jakub Jelinek <jakub@redhat.com>
3332 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
3333 any registers that are used in mem_insn.
3335 2014-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3337 Backport patch from mainline
3338 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
3340 * config/rs6000/constraints.md (wh constraint): New constraint,
3341 for FP registers if direct move is available.
3342 (wi constraint): New constraint, for VSX/FP registers that can
3343 handle 64-bit integers.
3344 (wj constraint): New constraint for VSX/FP registers that can
3345 handle 64-bit integers for direct moves.
3346 (wk constraint): New constraint for VSX/FP registers that can
3347 handle 64-bit doubles for direct moves.
3348 (wy constraint): Make documentation match implementation.
3350 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
3351 scalar_in_vmx_p field to simplify tests of whether SFmode or
3352 DFmode can go in the Altivec registers.
3353 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
3354 (rs6000_setup_reg_addr_masks): Likewise.
3355 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
3356 field, and wh/wi/wj/wk constraints.
3357 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
3358 the wh/wi/wj/wk constraints.
3359 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
3360 upper registers, prefer VSX registers unless the operation is a
3361 memory operation with REG+OFFSET addressing.
3363 * config/rs6000/vsx.md (VSr mode attribute): Add support for
3364 DImode. Change SFmode to use ww constraint instead of d to allow
3365 SF registers in the upper registers.
3368 (VSr5): Fix thinko in comment.
3369 (VSa): New mode attribute that is an alternative to wa, that
3370 returns the VSX register class that a mode can go in, but may not
3371 be the preferred register class.
3372 (VS_64dm): New mode attribute for appropriate register classes for
3373 referencing 64-bit elements of vectors for direct moves and normal
3375 (VS_64reg): Likewise.
3376 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
3377 register allocator to only registers the data type can handle.
3378 (vsx_le_perm_load_<mode>): Likewise.
3379 (vsx_le_perm_store_<mode>): Likewise.
3380 (vsx_xxpermdi2_le_<mode>): Likewise.
3381 (vsx_xxpermdi4_le_<mode>): Likewise.
3382 (vsx_lxvd2x2_le_<mode>): Likewise.
3383 (vsx_lxvd2x4_le_<mode>): Likewise.
3384 (vsx_stxvd2x2_le_<mode>): Likewise.
3385 (vsx_add<mode>3): Likewise.
3386 (vsx_sub<mode>3): Likewise.
3387 (vsx_mul<mode>3): Likewise.
3388 (vsx_div<mode>3): Likewise.
3389 (vsx_tdiv<mode>3_internal): Likewise.
3390 (vsx_fre<mode>2): Likewise.
3391 (vsx_neg<mode>2): Likewise.
3392 (vsx_abs<mode>2): Likewise.
3393 (vsx_nabs<mode>2): Likewise.
3394 (vsx_smax<mode>3): Likewise.
3395 (vsx_smin<mode>3): Likewise.
3396 (vsx_sqrt<mode>2): Likewise.
3397 (vsx_rsqrte<mode>2): Likewise.
3398 (vsx_tsqrt<mode>2_internal): Likewise.
3399 (vsx_fms<mode>4): Likewise.
3400 (vsx_nfma<mode>4): Likewise.
3401 (vsx_eq<mode>): Likewise.
3402 (vsx_gt<mode>): Likewise.
3403 (vsx_ge<mode>): Likewise.
3404 (vsx_eq<mode>_p): Likewise.
3405 (vsx_gt<mode>_p): Likewise.
3406 (vsx_ge<mode>_p): Likewise.
3407 (vsx_xxsel<mode>): Likewise.
3408 (vsx_xxsel<mode>_uns): Likewise.
3409 (vsx_copysign<mode>3): Likewise.
3410 (vsx_float<VSi><mode>2): Likewise.
3411 (vsx_floatuns<VSi><mode>2): Likewise.
3412 (vsx_fix_trunc<mode><VSi>2): Likewise.
3413 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
3414 (vsx_x<VSv>r<VSs>i): Likewise.
3415 (vsx_x<VSv>r<VSs>ic): Likewise.
3416 (vsx_btrunc<mode>2): Likewise.
3417 (vsx_b2trunc<mode>2): Likewise.
3418 (vsx_floor<mode>2): Likewise.
3419 (vsx_ceil<mode>2): Likewise.
3420 (vsx_<VS_spdp_insn>): Likewise.
3421 (vsx_xscvspdp): Likewise.
3422 (vsx_xvcvspuxds): Likewise.
3423 (vsx_float_fix_<mode>2): Likewise.
3424 (vsx_set_<mode>): Likewise.
3425 (vsx_extract_<mode>_internal1): Likewise.
3426 (vsx_extract_<mode>_internal2): Likewise.
3427 (vsx_extract_<mode>_load): Likewise.
3428 (vsx_extract_<mode>_store): Likewise.
3429 (vsx_splat_<mode>): Likewise.
3430 (vsx_xxspltw_<mode>): Likewise.
3431 (vsx_xxspltw_<mode>_direct): Likewise.
3432 (vsx_xxmrghw_<mode>): Likewise.
3433 (vsx_xxmrglw_<mode>): Likewise.
3434 (vsx_xxsldwi_<mode>): Likewise.
3435 (vsx_xscvdpspn): Tighten constraints to only use register classes
3437 (vsx_xscvspdpn): Likewise.
3438 (vsx_xscvdpspn_scalar): Likewise.
3440 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
3441 wj, and wk constraints.
3442 (GPR_REG_CLASS_P): New helper macro for register classes targeting
3443 general purpose registers.
3445 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
3447 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
3448 DImode instead of wm. Use wk constraint for direct move of DFmode
3450 (extendsidi2_lfiwax): Likewise.
3453 (movdi_internal64): Likewise.
3455 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
3456 wk constraints. Make the wy constraint documentation match them
3459 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3461 Backport from mainline
3462 2014-08-04 Ganesh Gopalasubramanian
3463 <Ganesh.Gopalasubramanian@amd.com>
3465 * config/i386/i386.c (ix86_option_override_internal): Add
3466 PTA_RDRND and PTA_MOVBE for bdver4.
3468 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3470 Backport from mainline
3471 2014-08-04 Ganesh Gopalasubramanian
3472 <Ganesh.Gopalasubramanian@amd.com>
3474 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's
3475 extended family information. Handle BTVER2 cpu with cpuid family value.
3477 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3479 Backport from mainline
3480 2014-06-16 Ganesh Gopalasubramanian
3481 <Ganesh.Gopalasubramanian@amd.com>
3483 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
3484 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
3485 handling 32-bit multiplication.
3487 2014-08-08 Guozhi Wei <carrot@google.com>
3489 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
3491 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
3493 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
3496 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
3499 * haifa-sched.c (advance_one_cycle): Fix dump.
3500 (schedule_block): Don't advance cycle if we are already at the
3501 beginning of the cycle.
3503 2014-08-06 Richard Biener <rguenther@suse.de>
3505 PR tree-optimization/61320
3506 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
3507 handle misaligned loads.
3509 2014-08-04 Rohit <rohitarulraj@freescale.com>
3512 * config/rs6000/rs6000.c
3513 (rs6000_reg_names): Add SPE high register names.
3514 (alt_reg_names): Likewise.
3515 (rs6000_dwarf_register_span): For SPE high registers, replace
3516 dwarf register numbers with GCC hard register numbers.
3517 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
3518 (rs6000_dbx_register_number): For SPE high registers, return dwarf
3519 register number for the corresponding GCC hard register number.
3520 * config/rs6000/rs6000.h
3521 (FIRST_PSEUDO_REGISTER): Update based on 32 newly added GCC hard
3522 register numbers for SPE high registers.
3523 (DWARF_FRAME_REGISTERS): Likewise.
3524 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
3525 (DWARF_FRAME_REGNUM): Likewise.
3526 (FIXED_REGISTERS): Likewise.
3527 (CALL_USED_REGISTERS): Likewise.
3528 (CALL_REALLY_USED_REGISTERS): Likewise.
3529 (REG_ALLOC_ORDER): Likewise.
3530 (enum reg_class): Likewise.
3531 (REG_CLASS_NAMES): Likewise.
3532 (REG_CLASS_CONTENTS): Likewise.
3533 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
3535 2014-08-01 Vladimir Makarov <vmakarov@redhat.com>
3537 * lra-constraints.c (remove_inheritance_pseudos): Process
3538 destination pseudo too.
3540 2014-08-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
3542 Backport from mainline
3543 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
3545 PR tree-optimization/61375
3546 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Cancel optimization if
3547 symbolic number cannot be represented in an unsigned HOST_WIDE_INT.
3548 (execute_optimize_bswap): Cancel optimization if CHAR_BIT != 8.
3550 2014-08-01 Richard Biener <rguenther@suse.de>
3552 PR tree-optimization/61964
3553 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
3554 by structural equality.
3556 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
3558 Backport from mainline
3559 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
3562 * config/sh/sh.c (sh_legitimate_address_p,
3563 sh_legitimize_reload_address): Handle reg+reg address modes when
3564 ALLOW_INDEXED_ADDRESS is false.
3565 * config/sh/predicates.md (general_movsrc_operand,
3566 general_movdst_operand): Likewise.
3568 2014-07-25 Uros Bizjak <ubizjak@gmail.com>
3570 Backport from mainline
3571 2014-07-14 Jakub Jelinek <jakub@redhat.com>
3574 * config/i386/i386.c (classify_argument): Don't merge classes above
3577 2014-07-25 Uros Bizjak <ubizjak@gmail.com>
3579 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
3581 2014-07-24 Kyle McMartin <kyle@redhat.com>
3583 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
3585 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3587 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
3589 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
3590 function. Issue -Wpsabi warning if future GCC releases will use
3591 different field alignment rules for this type.
3592 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
3593 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
3594 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
3596 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3598 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): Issue
3599 -Wpsabi note when encountering a type where future GCC releases
3600 will apply different alignment requirements.
3602 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3604 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
3605 does not fit fully into floating-point registers, and there is still
3606 space in the register parameter area, issue -Wpsabi note that the ABI
3607 will change in a future GCC release.
3609 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
3611 * config/arm/t-rtems-eabi: Add
3612 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
3613 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
3614 mbig-endian/mthumb/march=armv7-r, and
3615 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
3618 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
3619 Chris Johns <chrisj@rtems.org>
3620 Joel Sherrill <joel.sherrill@oarcorp.com>
3622 * config.gcc: Add nios2-*-rtems*.
3623 * config/nios2/rtems.h: New file.
3624 * gcc/config/nios2/t-rtems: New file.
3626 2014-07-21 Peter Bergner <bergner@vnet.ibm.com>
3628 * config/rs6000/sysv4.h (LIBASAN_EARLY_SPEC): Define.
3629 (LIBTSAN_EARLY_SPEC): Likewise.
3631 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
3633 Backport from mainline
3634 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
3637 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
3638 out of #ifdef __OPTIMIZE__.
3640 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
3642 * expr.c (store_field): Handle VOIDmode for calls that return values
3643 in multiple locations.
3645 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
3647 * toplev.c (output_stack_usage): Adjust the location of the warning.
3649 2014-07-19 Daniel Cederman <cederman@gaisler.com>
3651 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
3652 (*membar_storeload): Disable for LEON3.
3654 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
3656 Backport from mainline
3657 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
3660 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
3662 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
3664 Backport from mainline
3665 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
3668 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
3669 Fix instruction constraint.
3670 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
3672 2014-07-17 Richard Biener <rguenther@suse.de>
3674 Backport from mainline
3675 2014-07-14 Richard Biener <rguenther@suse.de>
3677 PR tree-optimization/61779
3678 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
3679 simplifying a condition.
3681 2014-07-17 Richard Biener <rguenther@suse.de>
3683 PR rtl-optimization/61801
3684 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
3685 don't set reg_pending_barrier if it appears in a debug-insn.
3687 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
3689 Backport from trunk.
3691 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
3692 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
3693 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
3695 (cris_print_index, cris_print_operand, cris_constant_index_p)
3696 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
3697 (cris_address_cost): Ditto last CONSTANT_P.
3698 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
3699 callers changed. Yield cris_offsettable_symbol for non-PIC
3700 constant symbolic expressions including labels. Yield cris_unspec
3702 (cris_expand_pic_call_address): New parameter MARKERP. Set its
3703 target to pic_offset_table_rtx for calls that will likely go
3704 through PLT, const0_rtx when they can't. All callers changed.
3705 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
3706 symbolic expressions to be PICified. Remove second, redundant,
3707 assert on can_create_pseudo_p returning non-zero. Use
3708 replace_equiv_address_nv, not replace_equiv_address, for final
3710 * config/cris/cris.md ("movsi"): Move variable t to pattern
3711 toplevel. Adjust assert for new cris_symbol_type member. Use
3712 CONSTANT_P instead of CONSTANT_ADDRESS_P.
3713 ("*movsi_internal") <case 9>: Make check for valid unspec operands
3715 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
3716 ("call", "call_value"): Use second incoming operand as a marker
3717 for pic-offset-table-register being used.
3718 ("*expanded_call_non_v32", "*expanded_call_v32")
3719 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
3720 second incoming operand to CALL, match cris_call_type_marker.
3721 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
3722 ("*expanded_call_side"): Ditto. Fix typo in comment.
3723 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
3725 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
3726 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
3727 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
3728 users changed. Add members cris_offsettable_symbol and cris_unspec.
3729 (cris_symbol_type): Rename from cris_pic_symbol_type.
3730 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
3732 * config/cris/cris-protos.h (cris_symbol_type_of,
3733 cris_expand_pic_call_address): Adjust prototypes.
3734 (cris_legitimate_constant_p): New prototype.
3736 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
3737 an existing tmake_file. Don't add t-slibgcc and t-linux.
3739 2014-07-16 Jakub Jelinek <jakub@redhat.com>
3741 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
3742 on the FUNCTION_DECL.
3744 * BASE-VER: Set to 4.9.2.
3745 * DEV-PHASE: Set to prerelease.
3747 2014-07-16 Release Manager
3749 * GCC 4.9.1 released.
3751 2014-07-10 Cary Coutant <ccoutant@google.com>
3753 Backport from trunk at r212211.
3755 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
3757 (resolve_addr_in_expr): When replacing the rtx in a location list
3758 entry, get a new address table entry.
3759 (dwarf2out_finish): Call index_location_lists even if there are no
3760 addr_index_table entries yet.
3762 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
3764 * doc/install.texi: Remove links to defunct package providers for
3767 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
3770 * function.c (allocate_struct_function): Revert r188667 change.
3772 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
3774 2014-07-09 Alan Lawrence <alan.lawrence@arm.com>
3776 Backport r211369 from trunk.
3777 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
3780 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
3781 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
3782 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
3783 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
3784 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
3785 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
3786 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
3787 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
3788 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
3791 2014-07-09 Alan Lawrence <alan.lawrence@arm.com>
3793 Backport r210219 from trunk.
3794 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3796 * config/arm/arm_neon.h: Update comment.
3797 * config/arm/neon-docgen.ml: Delete.
3798 * config/arm/neon-gen.ml: Delete.
3799 * doc/arm-neon-intrinsics.texi: Update comment.
3801 2014-07-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3803 Backport r211775 from trunk.
3804 2014-06-18 Terry Guo <terry.guo@arm.com>
3807 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
3810 2014-07-08 Jakub Jelinek <jakub@redhat.com>
3812 PR rtl-optimization/61673
3813 * combine.c (simplify_comparison): Test just mode's sign bit
3814 in tmode rather than the sign bit and any bits above it.
3816 2014-07-08 James Greenhalgh <james.greenhalgh@arm.com>
3818 Backport r212298 from trunk.
3819 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
3821 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
3822 (move_lo_quad_internal_be_<mode>): Likewise.
3823 (move_lo_quad_<mode>): Convert to define_expand.
3824 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
3825 (aarch64_simd_move_hi_quad_be_<mode>): New.
3826 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
3827 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
3828 (aarch64_combinez_be<mode>): New.
3829 (aarch64_combine<mode>): Convert to define_expand.
3830 (aarch64_combine_internal<mode>): New.
3831 (aarch64_simd_combine<mode>): Remove bogus RTL description.
3833 2014-07-08 Richard Biener <rguenther@suse.de>
3835 PR tree-optimization/61680
3836 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3837 Handle properly all read-write dependences with group accesses.
3839 PR tree-optimization/61681
3840 * tree-ssa-structalias.c (find_what_var_points_to): Expand
3841 NONLOCAL inside ESCAPED.
3843 2014-07-08 Alan Lawrence <alan.lawrence@arm.com>
3845 Backport r211502 from mainline.
3846 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
3849 * config/aarch64/aarch64-modes.def: Add V1DFmode.
3850 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
3853 2014-07-08 Jakub Jelinek <jakub@redhat.com>
3855 PR tree-optimization/61725
3856 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
3857 range, use range_includes_zerop_p instead of integer_zerop on
3858 vr0->min, only use log2 of max if min is not negative.
3860 2014-07-06 Gerald Pfeifer <gerald@pfeifer.com>
3862 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
3864 2014-07-04 Jakub Jelinek <jakub@redhat.com>
3867 * cgraphunit.c (expand_thunk): Call free_dominance_info.
3869 PR tree-optimization/61684
3870 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
3871 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
3873 2014-06-30 Jakub Jelinek <jakub@redhat.com>
3875 Backported from mainline
3876 2014-06-27 Jakub Jelinek <jakub@redhat.com>
3878 PR tree-optimization/57233
3879 PR tree-optimization/61299
3880 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
3882 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
3883 would be lowered to scalar shifts, check if corresponding
3884 shifts and vector BIT_IOR_EXPR are supported and don't lower
3885 or lower just to narrower vector type in that case.
3886 * expmed.c (expand_shift_1): Fix up handling of vector
3889 2014-06-25 Jakub Jelinek <jakub@redhat.com>
3891 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
3892 (LANG_HOOKS_DECLS): Add it.
3893 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
3895 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
3896 * langhooks.h (struct lang_hooks_for_decls): Add
3897 omp_clause_linear_ctor hook.
3898 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
3899 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
3900 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
3901 combined simd loop use omp_clause_linear_ctor hook.
3903 2014-06-24 Jakub Jelinek <jakub@redhat.com>
3905 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
3906 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is non-NULL.
3907 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
3908 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is non-NULL.
3909 (gimplify_adjust_omp_clauses): Likewise.
3910 * omp-low.c (lower_rec_simd_input_clauses,
3911 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
3912 safelen the same as safelen(1).
3913 * tree-nested.c (convert_nonlocal_omp_clauses,
3914 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
3915 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
3916 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
3917 Fixup handling of GIMPLE_OMP_TARGET.
3918 (convert_tramp_reference_stmt, convert_gimple_call): Handle
3921 2014-06-18 Jakub Jelinek <jakub@redhat.com>
3923 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
3924 change in ORT_TARGET region, don't jump to do_outer.
3925 (struct gimplify_adjust_omp_clauses_data): New type.
3926 (gimplify_adjust_omp_clauses_1): Adjust for data being
3927 a struct gimplify_adjust_omp_clauses_data pointer instead
3928 of tree *. Pass pre_p as a new argument to
3929 lang_hooks.decls.omp_finish_clause hook.
3930 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
3931 splay_tree_foreach to pass both list_p and pre_p.
3932 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
3933 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
3934 gimplify_adjust_omp_clauses callers.
3935 * langhooks.c (lhd_omp_finish_clause): New function.
3936 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
3937 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
3938 * langhooks.h (struct lang_hooks_for_decls): Add a new
3939 gimple_seq * argument to omp_finish_clause hook.
3940 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
3941 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
3942 (scan_omp_parallel, lower_omp_for): When adding _LOOPTEMP_ clause var,
3943 add it to outer ctx's decl_map as identity.
3944 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
3945 * tree-nested.c (convert_nonlocal_omp_clauses,
3946 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
3947 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
3949 2014-06-10 Jakub Jelinek <jakub@redhat.com>
3952 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
3953 Set lastprivate_firstprivate even if omp_private_outer_ref
3954 langhook returns true.
3955 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
3956 langhook, call unshare_expr on new_var and call
3957 build_outer_var_ref to get the last argument.
3959 2014-05-11 Jakub Jelinek <jakub@redhat.com>
3961 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
3962 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
3963 number of operands to 3.
3964 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
3965 * tree-nested.c (convert_nonlocal_omp_clauses,
3966 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
3967 * gimplify.c (gimplify_scan_omp_clauses): Handle
3968 OMP_CLAUSE_LINEAR_STMT.
3969 * omp-low.c (lower_rec_input_clauses): Fix typo.
3970 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
3971 cast between Fortran boolean_type_node and C _Bool if needed.
3973 2014-06-30 Jason Merrill <jason@redhat.com>
3977 * gimplify.c (gimplify_arg): Non-static.
3978 * gimplify.h: Declare it.
3980 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
3982 Backport from Mainline
3983 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
3986 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
3987 Add alternative; make early clobber. Adjust both split patterns
3988 to use operand 0 as the working register.
3990 2014-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3992 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
3994 (VCONQ): Make comment more helpful.
3996 * config/aarch64/aarch64-simd.md
3997 (aarch64_sqdmulh_lane<mode>):
3998 Use VCOND for operands 2. Update lane checking and flipping logic.
3999 (aarch64_sqrdmulh_lane<mode>): Likewise.
4000 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
4001 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
4002 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
4003 attribute of operand 3 to VCOND.
4004 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
4005 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
4006 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
4007 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
4008 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
4009 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
4011 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
4012 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
4013 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
4014 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
4015 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
4016 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
4017 operand to VCOND. Update lane flipping and bounds checking logic.
4018 (aarch64_sqdmlal2_lane<mode>): Likewise.
4019 (aarch64_sqdmlsl_lane<mode>): Likewise.
4020 (aarch64_sqdmull_lane<mode>): Likewise.
4021 (aarch64_sqdmull2_lane<mode>): Likewise.
4022 (aarch64_sqdmlal_laneq<mode>): Replace VCON usage with VCONQ.
4023 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
4024 (aarch64_sqdmlal2_laneq<mode>): Emit
4025 aarch64_sqdmlal2_laneq<mode>_internal insn.
4026 Replace VCON with VCONQ.
4027 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
4028 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
4029 (aarch64_sqdmull_laneq<mode>): Emit
4030 aarch64_sqdmull_laneq<mode>_internal insn.
4031 Replace VCON with VCONQ.
4032 (aarch64_sqdmull2_laneq<mode>): Emit
4033 aarch64_sqdmull2_laneq<mode>_internal insn.
4034 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
4035 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
4036 of 3rd argument to int16x4_t.
4037 (vqdmlalh_lane_s16): Likewise.
4038 (vqdmlslh_lane_s16): Likewise.
4039 (vqdmull_high_lane_s16): Likewise.
4040 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
4041 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
4042 (vqdmlsl_lane_s16): Likewise.
4043 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
4044 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
4045 (vqdmlals_lane_s32): Likewise.
4046 (vqdmlsls_lane_s32): Likewise.
4047 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
4048 (vqdmulls_lane_s32): Likewise.
4049 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
4050 (vqdmlsl_lane_s32): Likewise.
4051 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
4052 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
4053 (vqrdmulhh_lane_s16): Likewise.
4054 (vqdmlsl_high_lane_s16): Likewise.
4055 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
4056 (vqdmlsl_high_lane_s32): Likewise.
4057 (vqrdmulhs_lane_s32): Likewise.
4059 2014-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
4061 Backport from Mainline
4062 2014-06-20 Jakub Jelinek <jakub@redhat.com>
4063 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
4065 PR tree-optimization/61306
4066 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
4067 expression instead of its size.
4068 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
4069 false to prevent optimization when the result is unpredictable due to
4070 arithmetic right shift of signed type with highest byte is set.
4071 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
4072 (find_bswap_1): Likewise. Return NULL to prevent optimization when the
4073 result is unpredictable due to sign extension.
4074 (find_bswap): Adapt to change in struct symbolic_number.
4076 2014-06-27 Martin Jambor <mjambor@suse.cz>
4079 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
4080 args_to_skip, use those from node instead. Copy args_to_skip and
4081 combined_args_to_skip from node to the new thunk.
4082 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
4083 (cgraph_create_virtual_clone): Moved computation of
4084 combined_args_to_skip...
4085 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
4087 2014-06-27 Uros Bizjak <ubizjak@gmail.com>
4089 Backport from mainline
4090 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
4093 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
4095 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4098 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
4099 extraction other than index 3.
4101 2014-06-26 Marc Glisse <marc.glisse@inria.fr>
4104 * config/i386/i386.md (x86_64_shrd, x86_shrd,
4105 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
4107 2014-06-26 Martin Jambor <mjambor@suse.cz>
4109 Backport from mainline
4110 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
4111 renamed to ipa_impossible_devirt_target. Fix typo.
4112 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
4113 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
4114 ipa_impossible_devirt_target.
4116 2014-06-24 Jakub Jelinek <jakub@redhat.com>
4119 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
4120 model family 6 CPU with has_longmode never use a CPU without
4123 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
4124 not mentioned in clauses use private clause if the iterator is
4125 declared in #pragma omp for simd, and when adding lastprivate
4126 instead, add it to the outer #pragma omp for too. Diagnose
4127 if the variable is private in outer context. For simd collapse > 1
4128 loops, replace all iterators with temporaries.
4129 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
4130 same even in collapse > 1 loops.
4132 2014-06-23 Alan Modra <amodra@gmail.com>
4135 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
4136 to zero on debug statements.
4138 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4140 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
4142 (aarch64_sqrdmulh_lane<mode>): Likewise.
4143 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
4144 (aarch64_sq<r>dmulh_lane<mode>_interna): ...this.
4145 (aarch64_sqdmulh_laneq<mode>): New expander.
4146 (aarch64_sqrdmulh_laneq<mode>): Likewise.
4147 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
4148 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
4149 (aarch64_sqdmulh_lane<mode>): New expander.
4150 (aarch64_sqrdmulh_lane<mode>): Likewise.
4151 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
4152 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
4153 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
4154 (aarch64_sqdmlal_laneq<mode>): Likewise.
4155 (aarch64_sqdmlsl_lane<mode>): Likewise.
4156 (aarch64_sqdmlsl_laneq<mode>): Likewise.
4157 (aarch64_sqdmlal2_lane<mode>): Likewise.
4158 (aarch64_sqdmlal2_laneq<mode>): Likewise.
4159 (aarch64_sqdmlsl2_lane<mode>): Likewise.
4160 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
4161 (aarch64_sqdmull_lane<mode>): Likewise.
4162 (aarch64_sqdmull_laneq<mode>): Likewise.
4163 (aarch64_sqdmull2_lane<mode>): Likewise.
4164 (aarch64_sqdmull2_laneq<mode>): Likewise.
4166 2014-06-20 Martin Jambor <mjambor@suse.cz>
4169 * ipa-prop.c (impossible_devirt_target): New function.
4170 (try_make_edge_direct_virtual_call): Use it, also instead of
4173 2014-06-20 Martin Jambor <mjambor@suse.cz>
4176 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
4179 2014-06-20 Chung-Lin Tang <cltang@codesourcery.com>
4181 Backport from mainline
4183 2014-06-20 Julian Brown <julian@codesourcery.com>
4184 Chung-Lin Tang <cltang@codesourcery.com>
4186 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
4187 TARGET_THUMB1_ONLY. Add comments.
4189 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
4191 Backport from mainline
4192 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
4194 * config/i386/i386.c (decide_alg): Correctly handle
4195 maximum size of stringop algorithm.
4197 2014-06-18 Richard Henderson <rth@redhat.com>
4200 * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM.
4202 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
4205 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
4206 variable 'size'; calculate 'size' right in the front; use
4207 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
4208 pcum->aapcs_stack_words.
4210 2014-06-17 Nick Clifton <nickc@redhat.com>
4212 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
4213 (umulhi3, mulsidi3, umulsidi3): Likewise.
4215 2014-06-17 Uros Bizjak <ubizjak@gmail.com>
4217 Backport from mainline
4218 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
4221 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
4222 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
4223 and corresponding splitters. Zero extend general register
4224 or memory input operand to XMM temporary. Enable for
4225 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
4226 (floatunssi<mode>2): Update expander predicate.
4228 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
4230 PR rtl-optimization/61325
4231 * lra-constraints.c (valid_address_p): Add forward declaration.
4232 (simplify_operand_subreg): Check address validity before and after
4233 alter_reg of memory subreg.
4235 2014-06-18 Jakub Jelinek <jakub@redhat.com>
4238 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
4240 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
4242 Backport from mainline
4244 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
4246 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
4247 (BU_MISC_2): Rename to ...
4248 (BU_LDBL128_2): ... this.
4249 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
4250 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
4251 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
4253 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
4254 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
4255 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
4256 (unpacktf_1): Likewise.
4257 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
4258 (__builtin_longdouble_dw1): Likewise.
4259 * doc/sourcebuild.texi (longdouble128): Document.
4261 2014-06-13 Jeff Law <law@redhat.com>
4263 Backports from mainline:
4264 2014-06-13 Jeff Law <law@redhat.com>
4266 PR rtl-optimization/61094
4267 PR rtl-optimization/61446
4268 * ree.c (combine_reaching_defs): Get the mode for the copy from
4269 the extension insn rather than the defining insn.
4271 2014-06-02 Jeff Law <law@redhat.com>
4273 PR rtl-optimization/61094
4274 * ree.c (combine_reaching_defs): Do not reextend an insn if it
4275 was marked as do_no_reextend. If a copy is needed to eliminate
4276 an extension, then mark it as do_not_reextend.
4278 2014-06-13 Martin Jambor <mjambor@suse.cz>
4281 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
4282 cache_token if returning early.
4284 2014-06-12 Jakub Jelinek <jakub@redhat.com>
4287 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
4288 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
4289 if outer combined construct is distribute.
4290 (gimplify_omp_for): For OMP_DISTRIBUTE set
4291 gimplify_omp_ctxp->distribute.
4292 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
4293 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
4294 mapping into decl map.
4296 2014-06-12 Jeff Law <law@redhat.com>
4298 Backports from mainline:
4300 2014-06-12 Jeff Law <law@redhat.com>
4302 PR tree-optimization/61009
4303 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
4304 value when we stop processing a block due to problematic PHIs.
4306 2014-06-05 Jeff Law <law@redhat.com>
4308 PR tree-optimization/61289
4309 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
4310 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
4311 looking for those which match LHS. All callers changed.
4312 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
4313 parameters and code which manipulated them. All callers changed.
4314 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
4315 and DST_MAP parameters. Simplify invalidation code by just calling
4316 invalidate_equivalences. All callers changed.
4317 (thread_across_edge): Simplify now that we don't need to maintain
4318 the map of equivalences to invalidate.
4320 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
4322 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
4324 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
4326 Backport from 2014-05-14 trunk r210418
4327 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
4328 shifted values to avoid build warning.
4330 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
4332 Backport from 2014-05-09 trunk r210272
4334 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
4335 unsigned int initializers for regno_in, regno_out.
4337 Backport from 2014-06-12 trunk r211491
4340 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
4341 loading from address spaces.
4343 2014-06-12 Alan Modra <amodra@gmail.com>
4346 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
4347 * doc/tm.texi: Regenerate.
4348 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
4349 Use throughout in place of REG_PARM_STACK_SPACE.
4350 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
4351 "incoming" param. Pass to rs6000_function_parms_need_stack.
4352 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
4353 prototype_p when incoming. Use function decl when incoming
4354 to handle K&R style functions.
4355 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
4356 (INCOMING_REG_PARM_STACK_SPACE): Define.
4358 2014-06-11 Richard Biener <rguenther@suse.de>
4360 PR tree-optimization/61452
4361 * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
4362 expr and has_constants in case we found a leader.
4363 (simplify_binary_expression): Always valueize operands first.
4364 (simplify_unary_expression): Likewise.
4366 2014-06-11 Richard Biener <rguenther@suse.de>
4369 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
4370 Do not use the main variant for the type comparison.
4372 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4374 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
4376 Simplify description of __crc32d and __crc32cd intrinsics.
4377 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
4380 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
4382 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
4383 call statement, if any.
4384 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
4385 statements, if any. Tidy up.
4387 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
4389 Back port from trunk
4390 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
4393 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
4394 iterators, VSX_D that handles 64-bit types, and VSX_LE that
4395 handles swapping the two 64-bit double words on little endian
4396 systems. Include V1TImode and optionally TImode in VSX_LE so that
4397 these types are properly swapped. Change all of the insns and
4398 splits that do the 64-bit swaps to use VSX_LE.
4399 (vsx_le_perm_load_<mode>): Likewise.
4400 (vsx_le_perm_store_<mode>): Likewise.
4401 (splitters for little endian memory operations): Likewise.
4402 (vsx_xxpermdi2_le_<mode>): Likewise.
4403 (vsx_lxvd2x2_le_<mode>): Likewise.
4404 (vsx_stxvd2x2_le_<mode>): Likewise.
4406 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
4408 PR rtl-optimization/61325
4409 * lra-constraints.c (process_address_1): Check scale equal to one
4410 to prevent transformation: base + scale * index => base + new_reg.
4412 2014-06-05 Martin Jambor <mjambor@suse.cz>
4415 * ipa-cp.c (determine_versionability): Pretend that tm_clones are
4418 2014-06-04 Richard Biener <rguenther@suse.de>
4420 PR tree-optimization/61383
4421 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
4424 2014-06-02 Jason Merrill <jason@redhat.com>
4427 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
4429 2014-06-03 Martin Jambor <mjambor@suse.cz>
4432 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
4435 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
4437 Backport from mainline
4438 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
4440 PR rtl-optimization/60866
4441 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
4442 Default it to -1. Pass it down to init_simplejump_data.
4443 (init_simplejump_data): New parameter old_seqno. Pass it down
4444 to get_seqno_for_a_jump.
4445 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
4446 initializing new jump seqno as a last resort. Add comment.
4447 (sel_redirect_edge_and_branch): Save old seqno of the conditional
4448 jump and pass it down to sel_init_new_insn.
4449 (sel_redirect_edge_and_branch_force): Likewise.
4451 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
4453 Backport from mainline
4454 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
4456 PR rtl-optimization/60901
4457 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
4458 bb predecessor belongs to the same scheduling region. Adjust comment.
4460 2014-06-03 Uros Bizjak <ubizjak@gmail.com>
4462 Backport from mainline
4463 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
4466 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
4467 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
4469 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
4471 PR rtl-optimization/61325
4472 * lra-constraints.c (process_address): Rename to
4474 (process_address): New function.
4476 2014-05-29 Uros Bizjak <ubizjak@gmail.com>
4478 Backport from mainline
4479 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
4482 * config/i386/i386.c (ix86_rtx_costs)
4483 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
4486 2014-05-28 Eric Botcazou <ebotcazou@adacore.com>
4488 Backport from mainline
4489 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
4491 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
4492 predicate to detect a negative quotient.
4494 2014-05-28 Richard Biener <rguenther@suse.de>
4496 Backport from mainline
4497 2014-05-28 Richard Biener <rguenther@suse.de>
4500 * fold-const.c (fold_comparison): When folding
4501 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
4502 the sign of the remaining constant operand stays the same.
4504 2014-05-05 Richard Biener <rguenther@suse.de>
4507 * fold-const.c (fold_binary_loc): Consistently avoid
4508 canonicalizing X & CST away from a CST that is the mask
4511 2014-04-28 Richard Biener <rguenther@suse.de>
4513 PR tree-optimization/60979
4514 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
4515 SCOPs that end in a block with a successor with abnormal
4518 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4520 * configure.ac ($gcc_cv_ld_clearcap): New test.
4521 * configure: Regenerate.
4522 * config.in: Regenerate.
4523 * config/sol2.opt (mclear-hwcap): New option.
4524 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
4525 * config/sol2-clearcap.map: Moved here from
4526 testsuite/gcc.target/i386/clearcap.map.
4527 * config/sol2-clearcapv2.map: Move here from
4528 gcc.target/i386/clearcapv2.map.
4529 * config/t-sol2 (install): Depend on install-clearcap-map.
4530 (install-clearcap-map): New target.
4531 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
4534 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
4537 * config/dbx.h (License): Add Runtime Library Exception.
4538 * config/newlib-stdint.h (License): Same.
4539 * config/rtems.h (License): Same
4540 * config/initfini-array.h (License): Same
4541 * config/v850/v850.h (License): Same.
4542 * config/v850/v850-opts.h (License): Same
4543 * config/v850/rtems.h (License): Same.
4545 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
4548 * doc/extend.texi (Local Labels): Note that label differences are
4549 not supported for AVR.
4551 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
4553 Backport from 2014-05-12 mainline r210322.
4554 Backport from 2014-05-27 mainline r210959, r210969.
4557 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
4558 * config/arm/arm-cores.def (License): Same.
4559 * config/arm/arm-opts.h (License): Same.
4560 * config/arm/aout.h (License): Same.
4561 * config/arm/bpabi.h (License): Same.
4562 * config/arm/elf.h (License): Same.
4563 * config/arm/linux-elf.h (License): Same.
4564 * config/arm/linux-gas.h (License): Same.
4565 * config/arm/netbsd-elf.h (License): Same.
4566 * config/arm/uclinux-eabi.h (License): Same.
4567 * config/arm/uclinux-elf.h (License): Same.
4568 * config/arm/vxworks.h (License): Same.
4570 2014-05-26 Michael Tautschnig <mt@debian.org>
4573 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
4574 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
4576 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
4578 PR rtl-optimization/61215
4579 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
4580 simplify_gen_subreg until final substitution.
4582 2014-05-23 Alan Modra <amodra@gmail.com>
4585 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
4586 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
4587 Use "Y" constraint rather than "m".
4589 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
4591 PR rtl-optimization/60969
4592 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
4593 constraints. Set up mem cost for NO_REGS case.
4595 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
4597 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
4599 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
4602 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
4604 2014-05-22 Nick Clifton <nickc@redhat.com>
4606 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
4608 2014-05-22 Jakub Jelinek <jakub@redhat.com>
4610 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
4611 all padding bits in REAL_VALUE_TYPE are cleared.
4613 2014-05-21 Guozhi Wei <carrot@google.com>
4616 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
4618 (vqdmulhq_n_s16): Likewise.
4620 2014-05-21 Martin Jambor <mjambor@suse.cz>
4622 * doc/invoke.texi (Optimize Options): Document parameters
4623 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
4624 ipa-cp-array-index-hint-bonus.
4626 2014-05-21 Jakub Jelinek <jakub@redhat.com>
4629 * omp-low.c (handle_simd_reference): New function.
4630 (lower_rec_input_clauses): Use it. Defer adding reference
4631 initialization even for reduction without placeholder if in simd,
4632 handle it properly later on.
4634 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
4637 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
4639 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
4640 (ipa_inline): Loop inline_to_all_callers until no more aliases
4643 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
4646 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
4648 2014-05-20 DJ Delorie <dj@redhat.com>
4650 * config/msp430/msp430.md (split): Don't allow subregs when
4651 splitting SImode adds.
4652 (andneghi): Fix subtraction logic.
4653 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
4655 2014-05-20 Nick Clifton <nickc@redhat.com>
4657 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
4658 (msp430_gimplify_va_arg_expr): New function.
4659 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
4661 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
4662 operand 0 in order to prevent confusion about the number of
4665 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4667 * config/arm/arm.md (arith_shiftsi): Do not predicate for
4670 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
4672 * arm.c (thumb1_reorg): When scanning backwards skip anything
4673 that's not a proper insn.
4675 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4677 * ipa.c (symtab_remove_unreachable_nodes): Remove
4678 symbol from comdat group if its body was eliminated.
4679 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
4680 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
4681 (symtab_unregister_node): ... this one.
4682 (verify_symtab_base): More strict checking of comdats.
4683 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
4685 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4687 * opts.c (common_handle_option): Disable -fipa-reference coorectly
4690 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4693 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
4694 external aliases alive, too.
4696 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
4698 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
4700 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
4702 Backport from mainline
4703 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
4706 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
4709 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
4711 PR rtl-optimization/60969
4712 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
4713 Calculate costs for this case.
4715 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
4718 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
4719 (__TM_simple_begin): Use it.
4720 (__TM_begin): Likewise.
4722 2014-05-15 Martin Jambor <mjambor@suse.cz>
4725 * ipa-prop.c (update_indirect_edges_after_inlining): Check
4726 type_preserved flag when the indirect edge is polymorphic.
4728 2014-05-15 Martin Jambor <mjambor@suse.cz>
4731 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
4733 2014-05-15 Jakub Jelinek <jakub@redhat.com>
4735 PR tree-optimization/61158
4736 * fold-const.c (fold_binary_loc): If X is zero-extended and
4737 shiftc >= prec, make sure zerobits is all ones instead of
4738 invoking undefined behavior.
4740 2014-05-14 Cary Coutant <ccoutant@google.com>
4743 * opts.c (common_handle_option): Don't special-case "-g".
4744 (set_debug_level): Default to at least level 2 with "-g".
4746 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
4748 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
4750 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
4751 * config/sparc/sparc.md (fptype_ut699): New attribute.
4752 (in_branch_delay): Return false if -mfix-ut699 is specified and
4753 fptype_ut699 is set to single.
4754 (truncdfsf2): Add fptype_ut699 attribute.
4755 (fix_truncdfsi2): Likewise.
4756 (floatsisf2): Change fptype attribute.
4757 (fix_truncsfsi2): Likewise.
4758 (negtf2_notv9): Delete.
4759 (negtf2_v9): Likewise.
4760 (negtf2_hq): New instruction.
4761 (negtf2): New instruction and splitter.
4762 (negdf2_notv9): Rewrite.
4763 (abstf2_notv9): Delete.
4764 (abstf2_hq_v9): Likewise.
4765 (abstf2_v9): Likewise.
4766 (abstf2_hq): New instruction.
4767 (abstf2): New instruction and splitter.
4768 (absdf2_notv9): Rewrite.
4770 2014-05-14 Matthias Klose <doko@ubuntu.com>
4773 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
4774 Matthias Klose <doko@ubuntu.com>
4777 * optc-gen.awk: Fix option handling for -Wunused-parameter.
4779 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
4781 * doc/sourcebuild.texi: (dfp_hw): Document.
4782 (p8vector_hw): Likewise.
4783 (powerpc_eabi_ok): Likewise.
4784 (powerpc_elfv2): Likewise.
4785 (powerpc_htm_ok): Likewise.
4786 (ppc_recip_hw): Likewise.
4789 2014-05-13 Jeff Law <law@redhat.com>
4791 Backports fromm mainline:
4793 2014-05-08 Jeff Law <law@redhat.com>
4795 PR tree-optimization/61009
4796 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
4797 tri-state rather than a boolean. When a block is too big to
4798 thread through, inform caller via negative return value.
4799 (thread_across_edge): If a block was too big for normal threading,
4800 then it's too big for a joiner too, so remove temporary equivalences
4801 and return immediately.
4803 2014-04-28 Jeff Law <law@redhat.com>
4805 PR tree-optimization/60902
4806 * tree-ssa-threadedge.c
4807 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
4808 over real defs when invalidating outputs from statements that do not
4809 produce useful outputs for threading.
4811 2014-04-23 Jeff Law <law@redhat.com>
4813 PR tree-optimization/60902
4814 * tree-ssa-threadedge.c
4815 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
4816 invalidate outputs from statements that do not produce useful
4817 outputs for threading.
4819 2014-05-13 Richard Biener <rguenther@suse.de>
4822 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
4823 it needs revisiting whether the call still may be tail-called.
4825 2014-05-13 Jakub Jelinek <jakub@redhat.com>
4828 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
4829 is const0_rtx, return immediately. Don't test count == 0 when
4832 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4834 Backport from mainline
4835 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4838 * config/avr/avr.c (avr_out_store_psi): Use correct constant
4841 2014-05-09 Uros Bizjak <ubizjak@gmail.com>
4843 Backport from mainline
4844 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
4847 * config/alpha/alpha.c: Include gimple-iterator.h.
4848 (alpha_gimple_fold_builtin): New function. Move
4849 ALPHA_BUILTIN_UMULH folding from ...
4850 (alpha_fold_builtin): ... here.
4851 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
4853 2014-05-09 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
4855 Backport from 2014-04-16 trunk r209446
4856 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
4858 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
4860 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
4862 Backport from 2014-05-09 trunk r210267
4865 * config/avr/avr.md (cc): Add new attribute set_vzn.
4866 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
4867 Set cc insn attribute to set_vzn instead of set_zn for alternatives
4868 with INC, DEC or NEG.
4869 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
4870 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
4871 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
4873 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
4874 Matthias Klose <doko@ubuntu.com>
4877 * optc-gen.awk: Fix option handling for -Wunused-parameter.
4879 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
4882 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
4884 2014-05-05 Marek Polacek <polacek@redhat.com>
4886 Back port from mainline
4887 2014-05-05 Marek Polacek <polacek@redhat.com>
4890 * opts.c (common_handle_option): Call error_at instead of warning_at.
4892 2014-05-04 Jan Hubicka <hubicka@ucw.cz>
4895 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
4897 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
4899 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
4900 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
4901 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
4902 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
4903 Use RS6000_BTM_HARD_FLOAT.
4904 (BU_MISC_2): Likewise.
4905 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
4906 RS6000_BTM_HARD_FLOAT.
4907 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
4909 (rs6000_invalid_builtin): Add hard floating builtin support.
4910 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
4911 hard float builtins.
4912 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
4914 2014-05-03 Joey Ye <joey.ye@arm.com>
4916 Backport from mainline r209463
4917 2014-04-17 Joey Ye <joey.ye@arm.com>
4919 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
4921 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
4923 Back port from mainline
4925 * config/sh/sh.c: Include stdlib headers before everything else.
4927 2014-05-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4929 PR tree-optimization/60930
4930 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
4931 creating a multiply candidate by folding two constant
4932 multiplicands when the result overflows.
4934 2014-05-02 Jakub Jelinek <jakub@redhat.com>
4936 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
4937 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
4938 (gimplify_adjust_omp_clauses): Simd region is never
4939 directly nested in combined parallel. Instead, for linear
4940 with copyin/copyout, if in combined for simd loop, make decl
4941 firstprivate/lastprivate on OMP_FOR.
4942 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
4943 expand_omp_for_static_chunk): When setting endvar, also set
4944 fd->loop.v to the same value.
4946 2014-05-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4948 Back port from mainline
4949 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4951 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
4952 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
4953 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
4954 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
4955 (TARGET_CRYPTO): Take TARGET_SIMD into account.
4957 2014-04-30 Michael Meissner <meissner@linux.vnet.ibm.com>
4959 Back port from mainline
4960 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
4962 * doc/extend.texi (PowerPC Built-in Functions): Document new
4963 powerpc extended divide, bcd, pack/unpack 128-bit, builtin
4965 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
4967 * config/rs6000/predicates.md (const_0_to_3_operand): New
4968 predicate to match 0..3 integer constants.
4970 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
4971 to support adding miscellaneous builtin functions.
4972 (BU_DFP_MISC_2): Likewise.
4973 (BU_P7_MISC_1): Likewise.
4974 (BU_P7_MISC_2): Likewise.
4975 (BU_P8V_MISC_3): Likewise.
4976 (BU_MISC_1): Likewise.
4977 (BU_MISC_2): Likewise.
4978 (DIVWE): Add extended divide builtin functions.
4981 (DIVWEUO): Likewise.
4985 (DIVDEUO): Likewise.
4986 (DXEX): Add decimal floating-point builtin functions.
4989 (DDEDPDQ): Likewise.
4991 (DENBCDQ): Likewise.
4998 (CDTBCD): Add new BCD builtin functions.
5002 (BCDADD_LT): Likewise.
5003 (BCDADD_EQ): Likewise.
5004 (BCDADD_GT): Likewise.
5005 (BCDADD_OV): Likewise.
5007 (BCDSUB_LT): Likewise.
5008 (BCDSUB_EQ): Likewise.
5009 (BCDSUB_GT): Likewise.
5010 (BCDSUB_OV): Likewise.
5011 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
5012 (UNPACK_TD): Likewise.
5013 (PACK_TF): Likewise.
5014 (UNPACK_TF): Likewise.
5015 (UNPACK_TF_0): Likewise.
5016 (UNPACK_TF_1): Likewise.
5017 (PACK_V1TI): Likewise.
5018 (UNPACK_V1TI): Likewise.
5020 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
5021 support for decimal floating point builtin functions.
5022 (rs6000_expand_ternop_builtin): Add checks for the new builtin
5023 functions that take constant arguments.
5024 (rs6000_invalid_builtin): Add decimal floating point builtin
5026 (rs6000_init_builtins): Setup long double, _Decimal64, and
5027 _Decimal128 types for new builtin functions.
5028 (builtin_function_type): Set the unsigned flags appropriately for
5029 the new builtin functions.
5030 (rs6000_opt_masks): Add support for decimal floating point builtin
5033 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
5034 floating point builtin functions.
5035 (RS6000_BTM_COMMON): Likewise.
5036 (RS6000_BTI_long_double): Likewise.
5037 (RS6000_BTI_dfloat64): Likewise.
5038 (RS6000_BTI_dfloat128): Likewise.
5039 (long_double_type_internal_node): Likewise.
5040 (dfloat64_type_internal_node): Likewise.
5041 (dfloat128_type_internal_node): Likewise.
5043 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
5044 2.07 bcd arithmetic instructions.
5045 (UNSPEC_BCDSUB): Likewise.
5046 (UNSPEC_BCD_OVERFLOW): Likewise.
5047 (UNSPEC_BCD_ADD_SUB): Likewise.
5048 (bcd_add_sub): Likewise.
5049 (BCD_TEST): Likewise.
5050 (bcd<bcd_add_sub>): Likewise.
5051 (bcd<bcd_add_sub>_test): Likewise.
5052 (bcd<bcd_add_sub>_test2): Likewise.
5053 (bcd<bcd_add_sub>_<code>): Likewise.
5054 (peephole2 for combined bcd ops): Likewise.
5056 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
5057 decimal floating point builtin functions.
5058 (UNSPEC_DENBCD): Likewise.
5059 (UNSPEC_DXEX): Likewise.
5060 (UNSPEC_DIEX): Likewise.
5061 (UNSPEC_DSCLI): Likewise.
5062 (UNSPEC_DSCRI): Likewise.
5063 (D64_D128): Likewise.
5064 (dfp_suffix): Likewise.
5065 (dfp_ddedpd_<mode>): Likewise.
5066 (dfp_denbcd_<mode>): Likewise.
5067 (dfp_dxex_<mode>): Likewise.
5068 (dfp_diex_<mode>): Likewise.
5069 (dfp_dscli_<mode>): Likewise.
5070 (dfp_dscri_<mode>): Likewise.
5072 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
5074 (UNSPEC_CDTBCD): Likewise.
5075 (UNSPEC_CBCDTD): Likewise.
5076 (UNSPEC_DIVE): Add support for new extended divide builtin
5078 (UNSPEC_DIVEO): Likewise.
5079 (UNSPEC_DIVEU): Likewise.
5080 (UNSPEC_DIVEUO): Likewise.
5081 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
5082 pack/unpack 128-bit types.
5083 (UNSPEC_PACK_128BIT): Likewise.
5084 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
5085 (udiv<mode>3): Use idiv_ldiv mode attribute.
5086 (div<mode>3): Likewise.
5087 (addg6s): Add new BCD builtin functions.
5090 (UNSPEC_DIV_EXTEND): Add support for new extended divide
5092 (div_extend): Likewise.
5093 (div<div_extend>_<mode>"): Likewise.
5094 (FP128_64): Add support for new builtin functions to pack/unpack
5096 (unpack<mode>): Likewise.
5097 (unpacktf_0): Likewise.
5098 (unpacktf_1): Likewise.
5099 (unpack<mode>_dm): Likewise.
5100 (unpack<mode>_nodm): Likewise.
5101 (pack<mode>): Likewise.
5102 (unpackv1ti): Likewise.
5103 (packv1ti): Likewise.
5105 2014-04-29 Pat Haugen <pthaugen@us.ibm.com>
5107 Backport from mainline
5108 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
5110 * config/rs6000/rs6000.md (addti3, subti3): New.
5112 2014-04-29 Jakub Jelinek <jakub@redhat.com>
5114 PR tree-optimization/60971
5115 * tree-tailcall.c (process_assignment): Reject conversions which
5118 2014-04-29 Nick Clifton <nickc@redhat.com>
5120 * config/msp430/msp430.md (umulsidi): Fix typo.
5121 (mulhisi3): Enable even inside interrupt handlers.
5122 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
5123 bigger return address pushed in large mode.
5125 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
5127 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
5128 (loadsync_<mode>): Change mode.
5129 (load_quadpti, store_quadpti): New.
5130 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
5131 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
5133 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
5135 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
5136 * configure: Regenerate.
5137 * config/sparc/sparc.opt (muser-mode): New option.
5138 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
5140 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
5141 * doc/invoke.texi (SPARC options): Document -muser-mode.
5143 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
5145 * doc/install.texi (Building with profile feedback): Remove
5148 2014-04-26 Tom de Vries <tom@codesourcery.com>
5150 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
5153 2014-04-25 Jakub Jelinek <jakub@redhat.com>
5155 PR tree-optimization/60960
5156 * tree-vect-generic.c (expand_vector_operation): Only call
5157 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
5159 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
5162 * config/sparc/sparc.md (ashlsi3_extend): Delete.
5164 2014-04-25 Richard Biener <rguenther@suse.de>
5167 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
5168 call stmt use/clobber sets during stmt walk instead of
5169 walking the possibly incomplete set of caller edges.
5171 2014-04-25 Richard Biener <rguenther@suse.de>
5174 * passes.c (apply_ipa_transforms): Inline into only caller ...
5175 (execute_one_pass): ... here. Properly bring in function
5176 bodies for nodes we want to apply IPA transforms to.
5178 2014-04-24 Jakub Jelinek <jakub@redhat.com>
5180 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
5181 * gimplify.c (omp_is_private): Change last argument's type to int.
5182 Only diagnose lastprivate if the simd argument is 1, only diagnose
5183 linear if the simd argument is 2.
5184 (gimplify_omp_for): Adjust omp_is_private callers. When adding
5185 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
5186 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
5187 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
5188 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
5189 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
5190 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
5191 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
5192 * tree-nested.c (convert_nonlocal_omp_clauses,
5193 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
5195 2014-04-23 Uros Bizjak <ubizjak@gmail.com>
5197 Backport from mainline
5198 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
5201 * config/i386/i386.c (ix86_expand_builtin)
5202 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
5203 register for target RTX.
5204 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
5206 2014-04-23 Richard Biener <rguenther@suse.de>
5208 PR tree-optimization/60903
5209 * tree-ssa-loop-im.c (analyze_memory_references): Remove
5210 commented code block.
5211 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
5212 loop flags to newly created BBs and edges.
5214 2014-04-23 Nick Clifton <nickc@redhat.com>
5216 * config/msp430/msp430.c (msp430_handle_option): Move function
5218 (msp430_option_override): Simplify mcu and mcpu option handling.
5219 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
5220 support for -mhwmult command line option.
5221 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
5222 -mhwmult command line option.
5223 (msp430_hwmult_enabled): Delete.
5224 (msp43o_output_labelref): Add support for -mhwmult command line
5226 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
5227 (umulsidi3): Likewise.
5228 * config/msp430/msp430.opt (mmcu): Add Report attribute.
5229 (mcpu, mlarge, msmall): Likewise.
5230 (mhwmult): New option.
5231 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
5233 (msp430_is_f5_mcu): Remove prototype.
5234 (msp430_use_f5_series_hwmult): Add prototype.
5235 * config/msp430/msp430-opts.h: New file.
5236 * common/config/msp430: New directory.
5237 * common/config/msp430/msp430-common.c: New file.
5238 * config.gcc (msp430): Remove target_has_targetm_common.
5239 * doc/invoke.texi: Document -mhwmult command line option.
5241 2014-04-23 Nick Clifton <nickc@redhat.com>
5243 * config/i386/cygwin.h (ENDFILE_SPEC): Include
5244 default-manifest.o if it can be found in the search path.
5245 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
5247 2014-04-23 Richard Biener <rguenther@suse.de>
5249 Backport from mainline
5250 2014-04-14 Richard Biener <rguenther@suse.de>
5253 * lto-streamer-out.c (wrap_refs): New function.
5254 (lto_output): Wrap symbol references in global initializes in
5255 type-preserving MEM_REFs.
5257 2014-04-23 Richard Biener <rguenther@suse.de>
5260 * tree-inline.c (declare_return_variable): Use mark_addressable.
5262 2014-04-23 Richard Biener <rguenther@suse.de>
5265 * loop-init.c (loop_optimizer_init): Make sure to apply
5266 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
5268 2014-04-22 Michael Meissner <meissner@linux.vnet.ibm.com>
5270 Backport from mainline
5271 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
5274 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
5275 If mode is DDmode and TARGET_E500_DOUBLE allow move.
5277 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
5278 more debug information for E500 if -mdebug=reg.
5280 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
5282 Backport from mainline
5283 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
5286 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
5287 on count_exp to get mode.
5289 2014-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5291 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
5293 (vsx_xxmrglw_<mode>): Likewise.
5295 2014-04-22 Richard Biener <rguenther@suse.de>
5297 Backport from mainline
5298 2014-04-14 Richard Biener <rguenther@suse.de>
5301 * fold-const.c (negate_expr_p): Don't negate directional rounding
5303 (fold_negate_expr): Likewise.
5305 2014-04-22 Richard Biener <rguenther@suse.de>
5307 Backport from mainline
5308 2014-04-17 Richard Biener <rguenther@suse.de>
5311 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
5312 boolean results for comparisons.
5314 2014-04-22 Richard Biener <rguenther@suse.de>
5316 Backport from mainline
5317 2014-04-17 Richard Biener <rguenther@suse.de>
5319 PR tree-optimization/60841
5320 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
5321 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
5322 of stmts to SLP build.
5323 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
5324 (vect_analyze_slp): Likewise.
5325 (vect_analyze_slp_instance): Likewise.
5326 (vect_build_slp_tree): Limit overall SLP tree growth.
5327 * tree-vectorizer.h (vect_analyze_data_refs,
5328 vect_analyze_slp): Adjust prototypes.
5330 2014-04-22 Richard Biener <rguenther@suse.de>
5332 Backport from mainline
5333 2014-04-17 Richard Biener <rguenther@suse.de>
5335 PR tree-optimization/60836
5336 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
5337 initial PHI args to be gimple values.
5339 2014-04-22 Richard Biener <rguenther@suse.de>
5341 Backport from mainline
5342 2014-04-14 Richard Biener <rguenther@suse.de>
5344 PR tree-optimization/59817
5345 PR tree-optimization/60453
5346 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
5347 recursion to catch all CHRECs in the scalar evolution and restrict
5348 the predicate for the remains appropriately.
5350 2014-04-22 Jakub Jelinek <jakub@redhat.com>
5352 PR tree-optimization/60823
5353 * omp-low.c (ipa_simd_modify_function_body): Go through
5354 all SSA_NAMEs and for those refering to vector arguments
5355 which are going to be replaced adjust SSA_NAME_VAR and,
5356 if it is a default definition, change it into a non-default
5357 definition assigned at the beginning of function from new_decl.
5358 (ipa_simd_modify_stmt_ops): Rewritten.
5359 * tree-dfa.c (set_ssa_default_def): When removing default def,
5360 check for NULL loc instead of NULL *loc.
5362 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
5365 * asan.c (asan_emit_stack_protection): Force the base to align to
5366 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
5367 appropriate bits if STRICT_ALIGNMENT.
5368 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
5370 (expand_used_vars): Leave a space in the stack frame for alignment
5371 if STRICT_ALIGNMENT.
5373 2014-04-22 Jakub Jelinek <jakub@redhat.com>
5375 Backported from mainline
5376 2014-04-16 Jakub Jelinek <jakub@redhat.com>
5378 PR tree-optimization/60844
5379 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
5380 (propagate_op_to_single_use, remove_visited_stmt_chain,
5381 linearize_expr, repropagate_negates, reassociate_bb): Use it
5382 instead of gsi_remove.
5384 2014-04-22 Jakub Jelinek <jakub@redhat.com>
5386 * BASE-VER: Set to 4.9.1.
5387 * DEV-PHASE: Set to prerelease.
5389 2014-04-22 Release Manager
5391 * GCC 4.9.0 released.
5393 2014-04-18 Richard Henderson <rth@redhat.com>
5395 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
5396 to GET_MODE_SIZE, not a reg_class_t.
5398 2014-04-17 Jakub Jelinek <jakub@redhat.com>
5401 Forward port from 4.8 branch
5402 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
5404 * config/i386/bmiintrin.h (_blsi_u32): New.
5408 (_blsmsk_u32): Ditto.
5409 (_blsmsk_u64): Ditto.
5410 (_tzcnt_u32): Ditto.
5411 (_tzcnt_u64): Ditto.
5413 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5416 Revert the following patch
5418 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
5421 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
5422 software floating point or no floating point registers, do not
5423 allow any type in the FPRs. Eliminate a test for SPE SIMD types
5424 in GPRs that occurs after we tested for GPRs that would never be
5427 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
5428 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
5429 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
5430 specifically allow DDmode, since that does not use the SPE SIMD
5433 2014-04-15 Jakub Jelinek <jakub@redhat.com>
5436 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
5439 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
5441 * doc/invoke.texi (free): Document AArch64.
5443 2013-04-11 Jakub Jelinek <jakub@redhat.com>
5445 * DEV-PHASE: Set to prerelease.
5447 2014-04-11 Tobias Burnus <burnus@net-b.de>
5450 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
5451 * doc/gcc.texi (Service): Update description in the @menu
5452 * doc/invoke.texi (Option Summary): Remove misplaced and
5455 2014-04-11 Steve Ellcey <sellcey@mips.com>
5456 Jakub Jelinek <jakub@redhat.com>
5459 * expr.c (convert_move): Use emit_store_flag_force instead of
5460 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
5463 2014-04-11 Richard Biener <rguenther@suse.de>
5466 * varasm.c (assemble_alias): Avoid endless error reporting
5467 recursion by setting TREE_ASM_WRITTEN.
5469 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5471 * config/s390/s390.md: Add a splitter for NOT rtx.
5473 2014-04-11 Jakub Jelinek <jakub@redhat.com>
5475 PR rtl-optimization/60663
5476 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
5478 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
5479 Jakub Jelinek <jakub@redhat.com>
5482 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
5483 flag from decl_node to node.
5485 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5488 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
5489 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
5490 ameliorating the cases where it can be.
5492 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
5495 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
5497 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
5498 (loadsync_<mode>): Change mode.
5499 (load_quadpti, store_quadpti): New.
5500 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
5501 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
5502 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
5504 2014-04-09 Cong Hou <congh@google.com>
5507 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
5510 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5512 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
5513 instead of vnor to exploit possible fusion opportunity in the
5515 (altivec_expand_vec_perm_const_le): Likewise.
5517 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
5519 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
5520 (loadsync_<mode>): Change mode.
5521 (load_quadpti, store_quadpti): New.
5522 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
5523 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
5525 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
5528 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
5529 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
5530 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
5532 2014-04-08 Richard Biener <rguenther@suse.de>
5535 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
5536 a 64bit widest int print double-int similar to on HWI64 hosts.
5538 2014-04-08 Richard Biener <rguenther@suse.de>
5540 PR tree-optimization/60785
5541 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
5542 default defs properly.
5544 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
5546 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
5547 (Weffc++): Likewise.
5549 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
5551 * ipa-devirt.c (maybe_record_node): When node is not recorded,
5552 set completep to false rather than true.
5554 2014-04-07 Douglas B Rupp <rupp@adacore.com>
5557 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
5558 ARM_TARGET2_DWARF_FORMAT.
5560 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
5563 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
5564 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
5567 2014-04-07 Richard Biener <rguenther@suse.de>
5569 PR tree-optimization/60766
5570 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
5571 (may_eliminate_iv): Convert cand_value_at result to desired type.
5573 2014-04-07 Jason Merrill <jason@redhat.com>
5576 * common.opt (-fno-gnu-unique): Add.
5577 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
5579 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5581 * haifa-sched.c: Fix outdated function reference and minor
5582 grammar errors in introductory comment.
5584 2014-04-07 Richard Biener <rguenther@suse.de>
5587 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
5589 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
5591 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
5594 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
5595 size accounting for thunks.
5596 (pa_asm_output_mi_thunk): Use final_start_function() and
5597 final_end_function() to output function start and end directives.
5599 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
5601 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
5602 device specific ISA/ feature information. Remove short_sp and
5603 errata_skip ds. Add avr_device_specific_features enum to have device
5605 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
5606 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
5607 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
5608 updated device specific info.
5609 * config/avr/avr-mcus.def: Merge device specific details to
5610 dev_attribute field.
5611 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
5613 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
5614 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
5615 assembler if RMW isa supported by current device.
5616 * config/avr/genmultilib.awk: Update as device info structure changed.
5617 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
5619 2014-04-04 Cong Hou <congh@google.com>
5621 PR tree-optimization/60656
5622 * tree-vect-stmts.c (supportable_widening_operation):
5623 Fix a bug that elements in a vector with vect_used_by_reduction
5624 property are incorrectly reordered when the operation on it is not
5625 consistant with the one in reduction operation.
5627 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
5629 PR rtl-optimization/60155
5630 * gcse.c (record_set_data): New function.
5631 (single_set_gcse): New function.
5632 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
5633 (hoist_code): Likewise.
5634 (get_pressure_class_and_nregs): Likewise.
5636 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
5638 * explow.c (probe_stack_range): Emit a final optimization blockage.
5640 2014-04-04 Anthony Green <green@moxielogic.com>
5642 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
5645 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
5648 * lto-cgraph.c (input_overwrite_node): Check that partitioning
5649 flags are set only during streaming.
5650 * ipa.c (process_references, walk_polymorphic_call_targets,
5651 symtab_remove_unreachable_nodes): Drop bodies of always inline
5652 after early inlining.
5653 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
5655 2014-04-04 Jakub Jelinek <jakub@redhat.com>
5656 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5659 * dwarf2out.c (const_ok_for_output_1): Reject expressions
5662 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5665 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
5667 (cortex_a53_fdivd): Likewise.
5669 2014-04-04 Martin Jambor <mjambor@suse.cz>
5672 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
5674 * cgraph.c (clone_of_p): Also return true if thunks match.
5675 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
5676 cgraph_function_or_thunk_node and an obsolete comment.
5677 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
5679 (build_function_decl_skip_args): Likewise.
5680 (set_new_clone_decl_and_node_flags): New function.
5681 (duplicate_thunk_for_node): Likewise.
5682 (redirect_edge_duplicating_thunks): Likewise.
5683 (cgraph_clone_node): New parameter args_to_skip, pass it to
5684 redirect_edge_duplicating_thunks which is called instead of
5685 cgraph_redirect_edge_callee.
5686 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
5687 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
5689 2014-04-04 Jeff Law <law@redhat.com>
5692 * config/arm/predicates.md (const_int_I_operand): New predicate.
5693 (const_int_M_operand): Similarly.
5694 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
5696 (insv_t2, extv_reg, extzv_t2): Likewise.
5697 (load_multiple_with_writeback): Similarly for const_int_I_operand.
5698 (pop_multiple_with_writeback_and_return): Likewise.
5699 (vfp_pop_multiple_with_writeback): Likewise
5701 2014-04-04 Richard Biener <rguenther@suse.de>
5704 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
5705 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
5707 * gimplify.h (gimple_add_tmp_var_fn): Declare.
5708 * gimplify.c (gimple_add_tmp_var_fn): New function.
5709 * gimple-expr.h (create_tmp_reg_fn): Declare.
5710 * gimple-expr.c (create_tmp_reg_fn): New function.
5711 * gimple-low.c (record_vars_into): Don't change cfun.
5712 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
5713 code generation without cfun.
5715 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
5718 * Makefile.in (install-driver): Fix shell scripting.
5720 2014-04-03 Cong Hou <congh@google.com>
5722 PR tree-optimization/60505
5723 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
5724 threshold of number of iterations below which no vectorization
5726 * tree-vect-loop.c (new_loop_vec_info):
5727 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
5728 * tree-vect-loop.c (vect_analyze_loop_operations):
5729 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
5730 * tree-vect-loop.c (vect_transform_loop):
5731 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
5732 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
5733 of iterations of the loop and see if we should build the epilogue.
5735 2014-04-03 Richard Biener <rguenther@suse.de>
5737 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
5738 (streamer_tree_cache_create): Adjust.
5739 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
5740 to allow optional nodes array.
5741 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
5742 (streamer_tree_cache_append): Likewise.
5743 (streamer_tree_cache_create): Create nodes array optionally
5744 as specified by parameter.
5745 * lto-streamer-out.c (create_output_block): Avoid maintaining
5746 the node array in the writer cache.
5747 (DFS_write_tree): Remove assertion.
5748 (produce_asm_for_decls): Free the out decl state hash table early.
5749 * lto-streamer-in.c (lto_data_in_create): Adjust for
5750 streamer_tree_cache_create prototype change.
5752 2014-04-03 Richard Biener <rguenther@suse.de>
5754 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
5755 set TREE_CHAIN to NULL_TREE.
5757 2014-04-03 Richard Biener <rguenther@suse.de>
5759 PR tree-optimization/60740
5760 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
5761 over all GIMPLE_COND operands.
5763 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
5765 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
5766 (Weffc++): Remove Scott's numbering, merge lists and reference
5769 2014-04-03 Nick Clifton <nickc@redhat.com>
5771 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
5774 2014-04-03 Martin Jambor <mjambor@suse.cz>
5776 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
5777 mention gcc_unreachable before failing.
5778 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
5781 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
5784 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
5785 inconsistent code and instead mark the context inconsistent.
5786 (possible_polymorphic_call_targets): For inconsistent contexts
5787 return empty complete list.
5789 2014-04-02 Anthony Green <green@moxielogic.com>
5791 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
5792 (extendqisi2, extendhisi2): Define.
5793 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
5794 (WCHAR_TYPE): Change to unsigned int.
5796 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5798 PR tree-optimization/60733
5799 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
5800 insertion point for PHI candidates to be the end of the feeding
5801 block for the PHI argument.
5803 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
5805 PR rtl-optimization/60650
5806 * lra-constraints.c (process_alt_operands): Decrease reject for
5807 earlyclobber matching.
5809 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5811 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
5813 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5815 * config/spu/spu.c (pad_bb): Do not crash when the last
5816 insn is CODE_FOR_blockage.
5818 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5820 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
5821 lies outside the target mode.
5823 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
5826 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
5827 software floating point or no floating point registers, do not
5828 allow any type in the FPRs. Eliminate a test for SPE SIMD types
5829 in GPRs that occurs after we tested for GPRs that would never be
5832 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
5833 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
5834 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
5835 specifically allow DDmode, since that does not use the SPE SIMD
5838 2014-04-02 Richard Biener <rguenther@suse.de>
5841 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
5842 MODE_INTs. Properly use negv_optab.
5843 (expand_abs): Likewise.
5845 2014-04-02 Richard Biener <rguenther@suse.de>
5848 * Makefile.in (install-driver): Guard extra installs with special
5851 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
5853 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5856 2014-04-01 Richard Henderson <rth@redhat.com>
5859 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
5860 alternative enabled before register allocation.
5862 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
5864 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
5865 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
5867 (nios2_large_got_address): Remove unneeded 'sym' parameter.
5868 (nios2_got_address): Update nios2_large_got_address call site.
5869 (nios2_delegitimize_address): New function.
5870 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
5871 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5872 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
5874 2014-04-01 Martin Husemann <martin@duskware.de>
5876 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
5879 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
5881 PR rtl-optimization/60604
5882 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
5883 check from register_operand.
5884 (register_operand): Redefine in terms of general_operand.
5885 (nonmemory_operand): Use register_operand for the non-constant cases.
5887 2014-04-01 Richard Biener <rguenther@suse.de>
5889 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
5891 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
5893 * doc/invoke.texi (mapp-regs): Clarify.
5895 2014-03-31 Ulrich Drepper <drepper@gmail.com>
5897 * config/i386/avx512fintrin.h (__v32hi): Define type.
5898 (__v64qi): Likewise.
5899 (_mm512_set1_epi8): Define.
5900 (_mm512_set1_epi16): Define.
5901 (_mm512_set4_epi32): Define.
5902 (_mm512_set4_epi64): Define.
5903 (_mm512_set4_pd): Define.
5904 (_mm512_set4_ps): Define.
5905 (_mm512_setr4_epi64): Define.
5906 (_mm512_setr4_epi32): Define.
5907 (_mm512_setr4_pd): Define.
5908 (_mm512_setr4_ps): Define.
5909 (_mm512_setzero_epi32): Define.
5911 2014-03-31 Martin Jambor <mjambor@suse.cz>
5914 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
5915 callsite_arguments_match_p. Updated all callers. Also check types of
5916 corresponding formal parameters and actual arguments.
5917 (not_all_callers_have_enough_arguments_p) Renamed to
5918 some_callers_have_mismatched_arguments_p.
5920 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
5922 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
5924 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
5927 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
5930 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
5932 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
5933 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
5935 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
5936 Use FMAMODE_NOVF512 mode iterator.
5937 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
5938 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
5939 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
5940 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
5942 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
5943 Use VF_128_256 mode iterator.
5944 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
5947 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
5949 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
5950 static chain if needed.
5952 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
5955 * lra-constraints.c (index_part_to_reg): New.
5956 (process_address): Use it.
5958 2014-03-27 Jeff Law <law@redhat.com>
5959 Jakub Jelinek <jakub@redhat.com>
5962 * expr.c (do_tablejump): Use simplify_gen_binary rather than
5963 gen_rtx_{PLUS,MULT} to build up the address expression.
5965 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
5966 creating non-canonical RTL.
5968 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
5971 * ipa-inline.c (want_inline_small_function_p): Short circuit large
5972 functions; reorganize to make cheap checks first.
5973 (inline_small_functions): Do not estimate growth when dumping;
5975 * ipa-inline.h (inline_summary): Add min_size.
5976 (growth_likely_positive): New function.
5977 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
5978 (set_cond_stmt_execution_predicate): Cleanup.
5979 (estimate_edge_size_and_time): Compute min_size.
5980 (estimate_calls_size_and_time): Likewise.
5981 (estimate_node_size_and_time): Likewise.
5982 (inline_update_overall_summary): Update min_size.
5983 (do_estimate_edge_time): Likewise.
5984 (do_estimate_edge_size): Update.
5985 (do_estimate_edge_hints): Update.
5986 (growth_likely_positive): New function.
5988 2014-03-28 Jakub Jelinek <jakub@redhat.com>
5991 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
5992 also if addr has VOIDmode.
5994 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5996 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
5997 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
5999 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
6000 instructions as well as AdvancedSIMD loads.
6002 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6004 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
6005 Use crypto_aese type.
6006 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
6007 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
6008 crypto_aese, crypto_aesmc. Move to types.md.
6009 * config/arm/types.md (crypto_aes): Split into crypto_aese,
6011 * config/arm/iterators.md (crypto_type): Likewise.
6013 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
6015 * cgraph.c: Include expr.h and tree-dfa.h.
6016 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
6019 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
6022 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
6023 regs from checking multi-reg pseudos.
6025 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6027 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
6029 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6031 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
6032 if it would clobber the stack pointer, even temporarily.
6034 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
6036 * mode-switching.c: Make small adjustments to the top comment.
6038 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
6040 * config/rs6000/constraints.md (wD constraint): New constraint to
6041 match the constant integer to get the top DImode/DFmode out of a
6042 vector in a VSX register.
6044 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
6045 match the constant integer to get the top DImode/DFmode out of a
6046 vector in a VSX register.
6048 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
6051 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6054 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
6055 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
6057 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
6058 Optimize vec_extract of 64-bit values, where the value being
6059 extracted is in the top word, where we can use scalar
6060 instructions. Add direct move and store support. Combine the big
6061 endian/little endian vector select load support into a single insn.
6062 (vsx_extract_<mode>_internal1): Likewise.
6063 (vsx_extract_<mode>_internal2): Likewise.
6064 (vsx_extract_<mode>_load): Likewise.
6065 (vsx_extract_<mode>_store): Likewise.
6066 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
6067 combined into vsx_extract_<mode>_load.
6068 (vsx_extract_<mode>_one_le): Likewise.
6070 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
6071 define the top 64-bit vector element.
6073 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
6076 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6077 Document vec_vbpermq builtin.
6080 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
6081 enable use of xxsldwi and xxpermdi builtin functions.
6082 (vec_xxpermdi): Likewise.
6084 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6085 Document use of vec_xxsldwi and vec_xxpermdi builtins.
6087 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
6089 PR rtl-optimization/60650
6090 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
6092 (find_spills_for): New.
6093 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
6094 Spill all pseudos on the second iteration.
6096 2014-03-27 Marek Polacek <polacek@redhat.com>
6099 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
6102 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6104 * config/s390/s390.c (s390_can_use_return_insn): Check for
6105 call-saved FPRs on 31 bit.
6107 2014-03-27 Jakub Jelinek <jakub@redhat.com>
6110 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
6111 if they need regimplification, just drop them instead of
6112 calling gimple_regimplify_operands on them.
6114 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
6117 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
6118 (aarch64_frame_pointer_required): Adjust logic.
6119 (aarch64_can_eliminate): Adjust logic.
6120 (aarch64_override_options_after_change): Adjust logic.
6122 2014-03-27 Dehao Chen <dehao@google.com>
6124 * ipa-inline.c (early_inliner): Update node's inline info.
6126 2014-03-26 Dehao Chen <dehao@google.com>
6128 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
6129 compiler inserted conditional jumps for NAN float check.
6131 2014-03-26 Jakub Jelinek <jakub@redhat.com>
6133 * ubsan.h (ubsan_create_data): Change second argument's type
6134 to const location_t *.
6135 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
6137 (ubsan_create_data): Change second argument to const location_t *PLOC.
6138 Create Loc field whenever PLOC is non-NULL.
6139 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
6140 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
6144 * real.c (real_to_integer2): Change type of low to UHWI.
6146 2014-03-26 Tobias Burnus <burnus@net-b.de>
6148 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
6149 (CILK_SELF_SPECS): New define.
6150 (driver_self_specs): Use it.
6152 2014-03-26 Richard Biener <rguenther@suse.de>
6154 * tree-pretty-print.c (percent_K_format): Implement special
6155 case for LTO and its stripped down BLOCK tree.
6157 2014-03-26 Jakub Jelinek <jakub@redhat.com>
6160 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
6162 * tree-vrp.c (simplify_internal_call_using_ranges): If only
6163 one range is range_int_cst_p, but not both, at least optimize
6164 addition/subtraction of 0 and multiplication by 0 or 1.
6165 * gimple-fold.c (gimple_fold_call): Fold
6166 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
6167 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
6168 INTEGER_CSTs, try to fold at least x * 0 and y - y.
6170 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
6172 PR rtl-optimization/60452
6173 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
6174 <case REG>: Return 1 for invalid offsets from the frame pointer.
6176 2014-03-26 Marek Polacek <polacek@redhat.com>
6179 * doc/extend.texi (C Extensions): Mention variable-length arrays in
6182 2014-03-26 Marek Polacek <polacek@redhat.com>
6185 * doc/extend.texi (Designated Inits): Describe what happens to omitted
6188 2014-03-26 Marek Polacek <polacek@redhat.com>
6191 * ira-color.c (update_conflict_hard_regno_costs): Perform the
6192 multiplication in unsigned type.
6194 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
6196 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
6198 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
6200 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
6202 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
6205 * cif-code.def (UNREACHABLE) New code.
6206 * ipa-inline.c (inline_small_functions): Skip edges to
6207 __builtlin_unreachable.
6208 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
6209 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
6210 predicate to __bulitin_unreachable.
6211 (set_cond_stmt_execution_predicate): Fix issue when
6212 invert_tree_comparison returns ERROR_MARK.
6213 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
6214 propagate to inline clones.
6215 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
6217 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
6218 * cgraphclones.c (cgraph_clone_node): If call destination is already
6219 ureachable, do not redirect it back.
6220 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
6223 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
6225 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
6226 Do not modify inline clones.
6228 2014-03-25 Jakub Jelinek <jakub@redhat.com>
6230 * config/i386/i386.md (general_sext_operand): New mode attr.
6231 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
6232 don't generate (sign_extend (const_int)).
6233 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
6234 operands[2]. Use We constraint instead of <i> and
6235 <general_sext_operand> predicate instead of <general_operand>.
6236 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
6237 * config/i386/constraints.md (We): New constraint.
6238 * config/i386/predicates.md (x86_64_sext_operand,
6239 sext_operand): New predicates.
6241 2014-03-25 Martin Jambor <mjambor@suse.cz>
6244 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
6245 inconsistent devirtualizations to __builtin_unreachable.
6247 2014-03-25 Marek Polacek <polacek@redhat.com>
6250 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
6252 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
6254 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
6255 order of elements for big-endian.
6257 2014-03-25 Richard Biener <rguenther@suse.de>
6260 * gimplify-me.c (gimple_regimplify_operands): Update the
6263 2014-03-25 Martin Jambor <mjambor@suse.cz>
6266 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
6267 (lto_output_varpool_node): Likewise.
6268 (input_overwrite_node): Likewise.
6269 (input_varpool_node): Likewise.
6271 2014-03-25 Richard Biener <rguenther@suse.de>
6273 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
6274 (run_gcc): Likewise.
6276 2014-03-25 Jakub Jelinek <jakub@redhat.com>
6278 * combine.c (simplify_compare_const): Add MODE argument.
6279 Handle mode_width 0 as very large mode_width.
6280 (try_combine, simplify_comparison): Adjust callers.
6282 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
6283 type to avoid signed integer overflow.
6284 * explow.c (plus_constant): Likewise.
6286 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
6288 * doc/generic.texi: Correct typos.
6290 2014-03-24 Tobias Burnus <burnus@net-b.de>
6292 * doc/invoke.texi (-flto): Expand section about
6293 using static libraries with LTO.
6295 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6297 PR rtl-optimization/60501
6298 * optabs.def (addptr3_optab): New optab.
6299 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
6300 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
6301 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
6303 * lra.c (emit_add3_insn): Use the addptr pattern if available.
6305 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
6307 2014-03-24 Ulrich Drepper <drepper@gmail.com>
6309 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
6312 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
6313 (_mm256_undefined_ps): Define.
6314 (_mm256_undefined_pd): Define.
6315 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
6316 (_mm_undefined_pd): Define.
6317 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
6318 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
6319 (_mm512_undefined_ps): Define.
6320 (_mm512_undefined_pd): Define.
6321 Use _mm*_undefined_*.
6322 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
6324 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
6326 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
6327 (lshr_simd): DI mode added.
6328 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
6329 (aarch64_ushr_simddi): Likewise.
6330 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
6331 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
6332 (vshrd_n_u64): Likewise.
6334 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6336 * Makefile.in (s-macro_list): Depend on cc1.
6338 2014-03-23 Teresa Johnson <tejohnson@google.com>
6340 * ipa-utils.c (ipa_print_order): Use specified dump file.
6342 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
6344 PR rtl-optimization/60601
6345 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
6347 * gcc.c (eval_spec_function): Initialize save_growing_value.
6349 2014-03-22 Jakub Jelinek <jakub@redhat.com>
6352 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
6353 code == MINUS_EXPR, never swap op0 with op1.
6355 * toplev.c (init_local_tick): Avoid signed integer multiplication
6357 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
6358 shift by first operand's bitsize.
6360 2014-03-21 Jakub Jelinek <jakub@redhat.com>
6363 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
6365 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
6366 TARGET_ISA_64BIT_P(x).
6368 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6370 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
6371 pattern for vector nor instead of subtract from splat(-1).
6372 (altivec_expand_vec_perm_const_le): Likewise.
6374 2014-03-21 Richard Henderson <rth@twiddle.net>
6377 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
6378 related insns after epilogue_completed.
6380 2014-03-21 Martin Jambor <mjambor@suse.cz>
6383 * cgraph.h (symtab_node): New flag body_removed.
6384 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
6385 when removing bodies.
6386 * symtab.c (dump_symtab_base): Dump body_removed flag.
6387 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
6388 had their bodies removed.
6390 2014-03-21 Martin Jambor <mjambor@suse.cz>
6393 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
6396 2014-03-21 Richard Biener <rguenther@suse.de>
6398 PR tree-optimization/60577
6399 * tree-core.h (struct tree_base): Document nothrow_flag use
6401 * tree.h (DECL_NONALIASED): New.
6402 (may_be_aliased): Adjust.
6403 * coverage.c (build_var): Set DECL_NONALIASED.
6405 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
6407 * expr.c (expand_expr_real_1): Remove outdated comment.
6409 2014-03-20 Jakub Jelinek <jakub@redhat.com>
6412 * ira.c (adjust_cleared_regs): Call copy_rtx on
6413 *reg_equiv[REGNO (loc)].src_p before passing it to
6414 simplify_replace_fn_rtx.
6417 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
6418 into CONST, put pic register as first operand of PLUS. Use
6419 gen_const_mem for both 32-bit and 64-bit PIC got loads.
6421 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6423 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
6425 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
6427 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
6428 around for store forwarding issue in the FPU on the UT699.
6429 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
6430 loads and operations if -mfix-ut699 is specified.
6431 (divtf3_hq): Tweak attribute.
6432 (sqrttf2_hq): Likewise.
6434 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
6436 * calls.c (store_one_arg): Remove incorrect const qualification on the
6437 type of the temporary.
6438 * cfgexpand.c (expand_return): Likewise.
6439 * expr.c (expand_constructor): Likewise.
6440 (expand_expr_real_1): Likewise.
6442 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6444 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
6447 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
6450 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
6452 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
6454 * config/arm/aarch-common-protos.h
6455 (alu_cost_table): Fix spelling of "extend".
6456 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
6458 2014-03-19 Richard Biener <rguenther@suse.de>
6461 * tree-core.h (tree_type_common): Re-order pointer members
6462 to reduce recursion depth during GC walks.
6464 2014-03-19 Marek Polacek <polacek@redhat.com>
6467 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
6468 before accessing it.
6470 2014-03-19 Richard Biener <rguenther@suse.de>
6473 * lto-streamer-in.c (input_function): In WPA stage do not drop
6476 2014-03-19 Jakub Jelinek <jakub@redhat.com>
6478 PR tree-optimization/60559
6479 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
6480 with build_zero_cst assignment.
6482 2014-03-18 Kai Tietz <ktietz@redhat.com>
6484 PR rtl-optimization/56356
6485 * sdbout.c (sdbout_parms): Verify that parms'
6486 incoming argument is valid.
6487 (sdbout_reg_parms): Likewise.
6489 2014-03-18 Richard Henderson <rth@redhat.com>
6492 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
6493 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
6494 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
6496 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
6498 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
6499 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
6500 Italicize plugin event names in description. Explain that
6501 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
6502 Remind that no GCC functions should be called after PLUGIN_FINISH.
6503 Explain what pragmas with expansion are.
6505 2014-03-18 Martin Liska <mliska@suse.cz>
6507 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
6508 gimple call statement is update.
6509 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
6510 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
6512 2014-03-18 Jakub Jelinek <jakub@redhat.com>
6515 * ubsan.c (ubsan_instrument_unreachable): Call
6516 initialize_sanitizer_builtins.
6517 (ubsan_pass): Likewise.
6520 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
6521 varpool_finalize_decl instead of rest_of_decl_compilation.
6523 2014-03-18 Richard Biener <rguenther@suse.de>
6525 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
6526 by using bitmap_and_compl instead of bitmap_and_compl_into.
6527 (df_rd_transfer_function): Likewise.
6529 2014-03-18 Richard Biener <rguenther@suse.de>
6531 * doc/lto.texi (fresolution): Fix typo.
6533 2014-03-18 Richard Biener <rguenther@suse.de>
6535 * doc/invoke.texi (flto): Update for changes in 4.9.
6537 2014-03-18 Richard Biener <rguenther@suse.de>
6539 * doc/loop.texi: Remove section on the removed lambda framework.
6540 Update loop docs with recent changes in preserving loop structure.
6542 2014-03-18 Richard Biener <rguenther@suse.de>
6544 * doc/lto.texi (-fresolution): Document.
6546 2014-03-18 Richard Biener <rguenther@suse.de>
6548 * doc/contrib.texi: Adjust my name.
6550 2014-03-18 Jakub Jelinek <jakub@redhat.com>
6553 * internal-fn.c: Include diagnostic-core.h.
6554 (expand_BUILTIN_EXPECT): New function.
6555 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
6556 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
6557 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
6558 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
6560 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
6561 Revert 3 argument __builtin_expect code.
6562 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
6563 * gimple-fold.c (gimple_fold_call): Likewise.
6564 * tree.h (fold_builtin_expect): New prototype.
6565 * builtins.c (build_builtin_expect_predicate): Add predictor
6566 argument, if non-NULL, create 3 argument __builtin_expect.
6567 (fold_builtin_expect): No longer static. Add ARG2 argument,
6568 pass it through to build_builtin_expect_predicate.
6569 (fold_builtin_2): Adjust caller.
6570 (fold_builtin_3): Handle BUILT_IN_EXPECT.
6571 * internal-fn.def (BUILTIN_EXPECT): New.
6573 2014-03-18 Tobias Burnus <burnus@net-b.de>
6576 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
6577 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
6578 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
6580 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
6583 * predict.c (combine_predictions_for_bb): Fix up formatting.
6584 (expr_expected_value_1, expr_expected_value): Add predictor argument,
6585 fill what it points to if non-NULL.
6586 (tree_predict_by_opcode): Adjust caller, use the predictor.
6587 * predict.def (PRED_COMPARE_AND_SWAP): Add.
6589 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
6591 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
6592 proper constant for the store mode.
6594 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
6596 * symtab.c (change_decl_assembler_name): Fix transparent alias
6599 2014-03-16 Renlin Li <Renlin.Li@arm.com>
6601 * config/aarch64/aarch64.c: Correct the comments about the
6602 aarch64 stack layout.
6604 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
6606 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
6607 check for GF_OMP_FOR_KIND_FOR.
6609 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
6611 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
6612 ymm and zmm register names.
6614 2014-03-17 Jakub Jelinek <jakub@redhat.com>
6617 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
6618 note creation for the 2010-08-31 changes.
6620 2014-03-17 Marek Polacek <polacek@redhat.com>
6623 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
6624 as -fno-tree-loop-vectorize.
6625 (expand_omp_simd): Likewise.
6627 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
6629 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
6630 (eligible_for_call_delay): New prototype.
6631 * config/sparc/sparc.c (tls_call_delay): Rename into...
6632 (eligible_for_call_delay): ...this. Return false if the instruction
6633 cannot be put in the delay slot of a branch.
6634 (eligible_for_restore_insn): Simplify.
6635 (eligible_for_return_delay): Return false if the instruction cannot be
6636 put in the delay slot of a branch and simplify.
6637 (eligible_for_sibcall_delay): Return false if the instruction cannot be
6638 put in the delay slot of a branch.
6639 * config/sparc/sparc.md (fix_ut699): New attribute.
6640 (tls_call_delay): Delete.
6641 (in_call_delay): Reimplement.
6642 (eligible_for_sibcall_delay): Rename into...
6643 (in_sibcall_delay): ...this.
6644 (eligible_for_return_delay): Rename into...
6645 (in_return_delay): ...this.
6646 (in_branch_delay): Reimplement.
6647 (in_uncond_branch_delay): Delete.
6648 (in_annul_branch_delay): Delete.
6650 2014-03-14 Richard Henderson <rth@redhat.com>
6653 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
6654 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
6655 (*floathi<X87MODEF>2_i387_with_temp): Remove.
6656 (floathi splitters): Remove.
6657 (float<SWI48x>xf2): New pattern.
6658 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
6659 code that tried to handle DImode for 32-bit, but which was excluded
6660 by the pattern's condition. Drop allocation of stack temporary.
6661 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
6662 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
6663 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
6664 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
6665 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
6666 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
6667 (*float<SWI48><MODEF>2_sse_interunit): Remove.
6668 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
6669 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
6670 (*float<SWI48x><X87MODEF>2_i387): Remove.
6671 (all float _with_temp splitters): Remove.
6672 (*float<SWI48x><MODEF>2_i387): New pattern.
6673 (*float<SWI48><MODEF>2_sse): New pattern.
6674 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
6675 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
6677 2014-03-14 Jakub Jelinek <jakub@redhat.com>
6678 Marek Polacek <polacek@redhat.com>
6681 * common.opt (dump_base_name_prefixed): New Variable.
6682 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
6683 if x_dump_base_name_prefixed is already set, set it at the end.
6685 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
6687 PR rtl-optimization/60508
6688 * lra-constraints.c (get_reload_reg): Add new parameter
6690 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
6691 Pass the new parameter values.
6693 2014-03-14 Richard Biener <rguenther@suse.de>
6695 * common.opt: Revert unintented changes from r205065.
6698 2014-03-14 Richard Biener <rguenther@suse.de>
6701 * cfghooks.c (split_block): Properly adjust all loops the
6702 block was a latch of.
6704 2014-03-14 Martin Jambor <mjambor@suse.cz>
6707 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
6710 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
6713 * config/avr/avr.c (avr_set_current_function): Pass function name
6714 through default_strip_name_encoding before sanity checking instead
6715 of skipping the first char of the assembler name.
6717 2014-03-13 Richard Henderson <rth@redhat.com>
6720 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
6721 (ix86_force_to_memory, ix86_free_from_memory): Remove.
6722 * config/i386/i386-protos.h: Likewise.
6723 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
6724 in the expander instead of a splitter.
6725 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
6726 any possibility of requiring a memory.
6727 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
6728 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
6729 (fp branch splitters): Update for ix86_split_fp_branch.
6730 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
6731 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
6732 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
6733 (*fop_<MODEF>_2_i387): Remove f/r alternative.
6734 (*fop_<MODEF>_3_i387): Likewise.
6735 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
6736 (splitters for the fop_* register patterns): Remove.
6737 (fscalexf4_i387): Rename from *fscalexf4_i387.
6738 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
6740 2014-03-13 Jakub Jelinek <jakub@redhat.com>
6742 PR tree-optimization/59779
6743 * tree-dfa.c (get_ref_base_and_extent): Use double_int
6744 type for bitsize and maxsize instead of HOST_WIDE_INT.
6746 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
6748 PR rtl-optimization/57320
6749 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
6750 the CFG after thread_prologue_and_epilogue_insns.
6752 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
6754 PR rtl-optimization/57189
6755 * lra-constraints.c (process_alt_operands): Disfavor spilling
6758 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
6760 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
6762 2014-03-13 Jakub Jelinek <jakub@redhat.com>
6764 PR tree-optimization/59025
6766 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
6767 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
6769 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
6772 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
6773 calls of avr_out_plus_1.
6775 2014-03-13 Bin Cheng <bin.cheng@arm.com>
6777 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
6778 BB's single pred and update the father loop's latch info later.
6780 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
6782 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
6786 (VEC_base): Likewise.
6787 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
6788 registers, we need to swap double words in little endian mode.
6790 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
6791 to be a container mode for 128-bit integer operations added in ISA
6792 2.07. Unlike TImode and PTImode, the preferred register set is
6793 the Altivec/VMX registers for the 128-bit operations.
6795 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
6797 (rs6000_split_128bit_ok_p): Likewise.
6799 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
6800 macros for creating ISA 2.07 normal and overloaded builtin
6801 functions with 3 arguments.
6802 (BU_P8V_OVERLOAD_3): Likewise.
6803 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
6804 for use as overloaded functions.
6805 (VPERM_1TI_UNS): Likewise.
6806 (VSEL_1TI): Likewise.
6807 (VSEL_1TI_UNS): Likewise.
6808 (ST_INTERNAL_1ti): Likewise.
6809 (LD_INTERNAL_1ti): Likewise.
6810 (XXSEL_1TI): Likewise.
6811 (XXSEL_1TI_UNS): Likewise.
6812 (VPERM_1TI): Likewise.
6813 (VPERM_1TI_UNS): Likewise.
6814 (XXPERMDI_1TI): Likewise.
6815 (SET_1TI): Likewise.
6816 (LXVD2X_V1TI): Likewise.
6817 (STXVD2X_V1TI): Likewise.
6818 (VEC_INIT_V1TI): Likewise.
6819 (VEC_SET_V1TI): Likewise.
6820 (VEC_EXT_V1TI): Likewise.
6821 (EQV_V1TI): Likewise.
6822 (NAND_V1TI): Likewise.
6823 (ORC_V1TI): Likewise.
6824 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
6825 added in ISA 2.07. Add both normal 'altivec' builtins, and the
6827 (VADDUQM): Likewise.
6828 (VSUBCUQ): Likewise.
6829 (VADDEUQM): Likewise.
6830 (VADDECUQ): Likewise.
6831 (VSUBEUQM): Likewise.
6832 (VSUBECUQ): Likewise.
6834 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
6835 __int128_t and __uint128_t types.
6836 (__uint128_type): Likewise.
6837 (altivec_categorize_keyword): Add support for vector __int128_t,
6838 vector __uint128_t, vector __int128, and vector unsigned __int128
6839 as a container type for TImode operations that need to be done in
6840 VSX/Altivec registers.
6841 (rs6000_macro_to_expand): Likewise.
6842 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
6843 to support 128-bit integer instructions vaddcuq, vadduqm,
6844 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
6845 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
6847 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
6848 for V1TImode, and set up preferences to use VSX/Altivec registers.
6849 Setup VSX reload handlers.
6850 (rs6000_debug_reg_global): Likewise.
6851 (rs6000_init_hard_regno_mode_ok): Likewise.
6852 (rs6000_preferred_simd_mode): Likewise.
6853 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
6854 (easy_altivec_constant): Likewise.
6855 (output_vec_const_move): Likewise.
6856 (rs6000_expand_vector_set): Convert V1TImode set and extract to
6858 (rs6000_expand_vector_extract): Likewise.
6859 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
6861 (rs6000_const_vec): Add support for V1TImode.
6862 (rs6000_emit_le_vsx_load): Swap double words when loading or
6863 storing TImode/V1TImode.
6864 (rs6000_emit_le_vsx_store): Likewise.
6865 (rs6000_emit_le_vsx_move): Likewise.
6866 (rs6000_emit_move): Add support for V1TImode.
6867 (altivec_expand_ld_builtin): Likewise.
6868 (altivec_expand_st_builtin): Likewise.
6869 (altivec_expand_vec_init_builtin): Likewise.
6870 (altivec_expand_builtin): Likewise.
6871 (rs6000_init_builtins): Add support for V1TImode type. Add
6872 support for ISA 2.07 128-bit integer builtins. Define type names
6873 for the VSX/Altivec vector types.
6874 (altivec_init_builtins): Add support for overloaded vector
6875 functions with V1TImode type.
6876 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
6877 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
6879 (rs6000_split_128bit_ok_p): Likewise.
6880 (rs6000_handle_altivec_attribute): Create V1TImode from vector
6881 __int128_t and vector __uint128_t.
6883 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
6884 and mode attributes.
6891 (VS_scalar): Likewise.
6892 (VS_double): Likewise.
6893 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
6895 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
6896 we support the ISA 2.07 128-bit integer arithmetic instructions.
6897 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
6898 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
6899 and TImode types for use with the builtin functions.
6900 (V1TI_type_node): Likewise.
6901 (unsigned_V1TI_type_node): Likewise.
6902 (intTI_type_internal_node): Likewise.
6903 (uintTI_type_internal_node): Likewise.
6905 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
6906 128-bit builtin functions.
6907 (UNSPEC_VADDEUQM): Likewise.
6908 (UNSPEC_VADDECUQ): Likewise.
6909 (UNSPEC_VSUBCUQ): Likewise.
6910 (UNSPEC_VSUBEUQM): Likewise.
6911 (UNSPEC_VSUBECUQ): Likewise.
6912 (VM): Add V1TImode to vector mode iterators.
6914 (VI_unit): Likewise.
6915 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
6916 (altivec_vaddcuq): Likewise.
6917 (altivec_vsubuqm): Likewise.
6918 (altivec_vsubcuq): Likewise.
6919 (altivec_vaddeuqm): Likewise.
6920 (altivec_vaddecuq): Likewise.
6921 (altivec_vsubeuqm): Likewise.
6922 (altivec_vsubecuq): Likewise.
6924 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
6926 (BOOL_128): Likewise.
6927 (BOOL_REGS_OUTPUT): Likewise.
6928 (BOOL_REGS_OP1): Likewise.
6929 (BOOL_REGS_OP2): Likewise.
6930 (BOOL_REGS_UNARY): Likewise.
6931 (BOOL_REGS_AND_CR0): Likewise.
6933 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
6934 128-bit integer builtin support.
6935 (vec_vadduqm): Likewise.
6936 (vec_vaddecuq): Likewise.
6937 (vec_vaddeuqm): Likewise.
6938 (vec_vsubecuq): Likewise.
6939 (vec_vsubeuqm): Likewise.
6940 (vec_vsubcuq): Likewise.
6941 (vec_vsubuqm): Likewise.
6943 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6944 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
6945 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
6946 128-bit integer add/subtract to ISA 2.07.
6948 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
6950 * config/arc/arc.c (arc_predicate_delay_insns):
6951 Fix third argument passed to conditionalize_nonjump.
6953 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
6955 * config/aarch64/aarch64-builtins.c
6956 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
6957 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
6958 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
6959 instead of __builtin_lfloor.
6960 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
6962 2014-03-12 Jakub Jelinek <jakub@redhat.com>
6964 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
6965 (tree_ssa_ifcombine_bb_1): New function.
6966 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
6967 is an empty forwarder block to then_bb or vice versa and then_bb
6968 and else_bb are effectively swapped.
6970 2014-03-12 Christian Bruel <christian.bruel@st.com>
6973 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
6974 REG_CFA_DEF_CFA note.
6975 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
6976 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
6978 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
6980 PR tree-optimization/60454
6981 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
6983 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6985 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
6986 Do not define target_cpu_default2 to generic.
6987 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
6988 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
6989 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
6991 2014-03-12 Jakub Jelinek <jakub@redhat.com>
6992 Marc Glisse <marc.glisse@inria.fr>
6994 PR tree-optimization/60502
6995 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
6996 instead of build_low_bits_mask.
6998 2014-03-12 Jakub Jelinek <jakub@redhat.com>
7001 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
7002 if there are multiple uses, but op doesn't live on E edge.
7003 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
7004 clobber stmts before __builtin_unreachable.
7006 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
7008 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
7009 hard_frame_pointer_rtx.
7010 * cse.c (cse_insn): Remove volatile check.
7011 * cselib.c (cselib_process_insn): Likewise.
7012 * dse.c (scan_insn): Likewise.
7014 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
7016 * config/arc/arc.c (conditionalize_nonjump): New function,
7018 (arc_ifcvt): ... this.
7019 (arc_predicate_delay_insns): Use it.
7021 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
7023 * config/arc/predicates.md (extend_operand): During/after reload,
7024 allow const_int_operand.
7025 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
7026 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
7027 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
7029 (umulsi3_highpart_i): Likewise.
7031 2014-03-11 Richard Biener <rguenther@suse.de>
7033 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
7034 Add asserts to guard possible wrong-code bugs.
7036 2014-03-11 Richard Biener <rguenther@suse.de>
7038 PR tree-optimization/60429
7039 PR tree-optimization/60485
7040 * tree-ssa-structalias.c (set_union_with_increment): Properly
7041 take into account all fields that overlap the shifted vars.
7042 (do_sd_constraint): Likewise.
7043 (do_ds_constraint): Likewise.
7044 (get_constraint_for_ptr_offset): Likewise.
7046 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
7048 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
7049 (nios2_compute_frame_layout):
7050 Add calculation of cfun->machine->fp_save_offset.
7051 (nios2_expand_prologue): Correct setting of frame pointer register
7053 (nios2_expand_epilogue): Update recovery of stack pointer from
7054 frame pointer accordingly.
7055 (nios2_initial_elimination_offset): Update calculation of offset
7056 for eliminating to HARD_FRAME_POINTER_REGNUM.
7058 2014-03-10 Jakub Jelinek <jakub@redhat.com>
7061 * ipa.c (symtab_remove_unreachable_nodes): Don't call
7062 cgraph_get_create_node on VAR_DECLs.
7064 2014-03-10 Richard Biener <rguenther@suse.de>
7067 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
7069 2014-03-08 Douglas B Rupp <rupp@gnat.com>
7071 * config/vms/vms.opt (vms_float_format): New variable.
7073 2014-03-08 Tobias Burnus <burnus@net-b.de>
7075 * doc/invoke.texi (-fcilkplus): Update implementation status.
7077 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
7078 Richard Biener <rguenther@suse.de>
7080 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
7081 consistently accross all TUs.
7082 (run_gcc): Enable -fshort-double automatically at link at link-time
7083 and disallow override.
7085 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
7088 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
7089 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
7090 if they can't be used.
7092 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7094 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
7095 for Solaris 11/x86 ld.
7096 * configure: Regenerate.
7098 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7100 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
7101 (LIB_TLS_SPEC): Save as ld_tls_libs.
7102 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
7103 (HAVE_AS_IX86_TLSLDM): New test.
7104 * configure, config.in: Regenerate.
7105 * config/i386/i386.c (legitimize_tls_address): Fall back to
7106 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
7107 cannot support TLS_MODEL_LOCAL_DYNAMIC.
7108 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
7109 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
7111 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
7113 * common.opt (fira-loop-pressure): Mark as optimization.
7115 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
7117 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
7118 an OpenMP mappable type.
7120 2014-03-06 Matthias Klose <doko@ubuntu.com>
7122 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
7123 MULTILIB_OSDIRNAMES is not defined.
7125 2014-03-06 Jakub Jelinek <jakub@redhat.com>
7126 Meador Inge <meadori@codesourcery.com>
7129 * config/arm/arm.c (arm_tls_symbol_p): Remove.
7130 (arm_legitimize_address): Call legitimize_tls_address for any
7131 arm_tls_referenced_p expression, handle constant addend. Call it
7132 before testing for !TARGET_ARM.
7133 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
7135 2014-03-06 Richard Biener <rguenther@suse.de>
7141 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
7143 * tree-streamer.c (record_common_node): Assert we don't record
7144 nodes with type double.
7145 (preload_common_node): Skip type double, complex double and double
7146 pointer since it is now frontend dependent due to fshort-double option.
7148 2014-03-06 Richard Biener <rguenther@suse.de>
7150 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
7151 or -fno-lto is specified and the linker has full plugin support.
7152 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
7153 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
7154 * lto-wrapper.c (merge_and_complain): Merge compile-time
7155 optimization levels.
7156 (run_gcc): And pass it through to the link options.
7158 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
7162 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
7164 * cselib.c (remove_useless_values): Skip to avoid quadratic
7165 behavior if the condition moved from...
7166 (cselib_process_insn): ... here holds.
7168 2014-03-05 Jakub Jelinek <jakub@redhat.com>
7171 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
7172 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
7175 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
7176 (TM_H): Add x86-tune.def.
7178 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7180 * config/aarch64/aarch64.c (generic_tunings):
7181 Use cortexa57_extra_costs.
7183 2014-03-05 Jakub Jelinek <jakub@redhat.com>
7186 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
7187 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
7188 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
7191 2014-03-04 Heiher <r@hev.cc>
7193 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
7194 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
7196 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
7198 * config/i386/predicates.md (const2356_operand): Change to ...
7199 (const2367_operand): ... this.
7200 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
7202 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7203 (*avx512pf_scatterpf<mode>sf): Ditto.
7204 (avx512pf_scatterpf<mode>df): Ditto.
7205 (*avx512pf_scatterpf<mode>df_mask): Ditto.
7206 (*avx512pf_scatterpf<mode>df): Ditto.
7207 * config/i386/i386.c (ix86_expand_builtin): Update
7208 incorrect hint operand error message.
7210 2014-03-04 Richard Biener <rguenther@suse.de>
7212 * lto-section-in.c (lto_get_section_data): Fix const cast.
7214 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
7216 * tree-streamer.c (record_common_node): Assert we don't record
7217 nodes with type double.
7218 (preload_common_node): Skip type double, complex double and double
7219 pointer since it is now frontend dependent due to fshort-double option.
7221 2014-03-04 Richard Biener <rguenther@suse.de>
7224 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
7225 (lto_input_toplevel_asms): Likewise.
7226 * lto-section-in.c (lto_get_section_data): Instead do it here
7229 2014-03-04 Richard Biener <rguenther@suse.de>
7231 PR tree-optimization/60382
7232 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
7233 dead PHIs a reduction.
7235 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
7237 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
7239 (_mm_prefetch): Move out of GCC target("sse") pragma.
7240 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
7241 GCC target("prfchw") pragma.
7242 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
7244 * config/i386/i386.c (ix86_option_override_internal): Enable
7245 -mprfchw with -mprefetchwt1.
7247 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
7249 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
7252 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
7254 * opts.h (CL_PCH_IGNORE): Define.
7255 * targhooks.c (option_affects_pch_p):
7256 Return false for options that have CL_PCH_IGNORE set.
7257 * opt-functions.awk: Process PchIgnore.
7258 * doc/options.texi: Document PchIgnore.
7260 * config/arc/arc.opt (misize): Add PchIgnore property.
7262 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7264 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
7265 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
7266 constraint on constants to permit them being loaded into
7267 GENERAL_REGS or BASE_REGS.
7269 2014-03-03 Nick Clifton <nickc@redhat.com>
7271 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
7272 anti-cacnonical alternatives.
7273 (negandhi3_real): New pattern.
7274 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
7276 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7278 * config/avr/avr-mcus.def: Remove atxmega16x1.
7279 * config/avr/avr-tables.opt: Regenerate.
7280 * config/avr/t-multilib: Regenerate.
7281 * doc/avr-mmcu.texi: Regenerate.
7283 2014-03-03 Tobias Grosser <tobias@grosser.es>
7284 Mircea Namolaru <mircea.namolaru@inria.fr>
7286 PR tree-optimization/58028
7287 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
7290 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7292 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
7293 not handled by recognizers.
7295 2014-03-03 Jakub Jelinek <jakub@redhat.com>
7298 * function.c (expand_function_end): Don't emit
7299 clobber_return_register sequence if clobber_after is a BARRIER.
7300 * cfgexpand.c (construct_exit_block): Append instructions before
7301 return_label to prev_bb.
7303 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7305 * config/rs6000/constraints.md: Document reserved use of "wc".
7307 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
7310 * ipa.c (function_and_variable_visibility): When dissolving comdat
7311 group, also set all symbols to local.
7313 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
7318 2013-12-14 Jan Hubicka <jh@suse.cz>
7320 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
7322 2014-03-02 Jon Beniston <jon@beniston.com>
7328 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
7329 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
7330 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
7331 (simple_return, *simple_return): New patterns
7332 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
7333 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
7335 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
7337 * dwarf2out.c (gen_subprogram_die): Tidy.
7339 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
7342 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
7343 (*mov_t_msb_neg_negc): ... this new insn.
7345 2014-02-28 Jason Merrill <jason@redhat.com>
7348 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
7351 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
7354 * dwarf2out.c (decltype_auto_die): New static.
7355 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
7356 (gen_type_die_with_usage): Handle 'decltype(auto)'.
7357 (is_cxx_auto): Likewise.
7359 2014-02-28 Ian Bolton <ian.bolton@arm.com>
7361 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
7362 we are not using general regs only.
7364 2014-02-28 Richard Biener <rguenther@suse.de>
7367 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
7368 previous fix and only allow to remove trivial pre-headers
7369 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
7370 (remove_forwarder_block): Properly update the latch of a loop.
7372 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
7375 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
7376 (cselib_preserved_hash_table): New.
7377 (preserve_constants_and_equivs): Move preserved vals to it.
7378 (cselib_find_slot): Look it up first.
7379 (cselib_init): Initialize it.
7380 (cselib_finish): Release it.
7381 (dump_cselib_table): Dump it.
7383 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
7386 * cselib.c (remove_useless_values): Skip to avoid quadratic
7387 behavior if the condition moved from...
7388 (cselib_process_insn): ... here holds.
7390 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
7393 * var-tracking.c (vt_initialize): Apply the same condition to
7394 preserve the CFA base value.
7396 2014-02-28 Joey Ye <joey.ye@arm.com>
7399 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
7400 if reload in progress or completed.
7402 2014-02-28 Tobias Burnus <burnus@net-b.de>
7405 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
7408 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
7410 * doc/tm.texi.in (Condition Code Status): Update documention for
7411 relative locations of cc0-setter and cc0-user.
7413 2014-02-27 Jeff Law <law@redhat.com>
7415 PR rtl-optimization/52714
7416 * combine.c (try_combine): When splitting an unrecognized PARALLEL
7417 into two independent simple sets, if I3 is a jump, ensure the
7418 pattern we place into I3 is a (set (pc) ...).
7420 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
7421 Jeff Law <law@redhat.com>
7423 PR rtl-optimization/49847
7424 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
7425 are in different blocks.
7426 * doc/tm.texi (Condition Code Status): Update documention for
7427 relative locations of cc0-setter and cc0-user.
7429 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
7432 * lra.c (lra_emit_add): Check SUBREG too.
7434 2014-02-27 Andreas Schwab <schwab@suse.de>
7436 * config/m68k/m68k.c (m68k_option_override): Disable
7437 -flive-range-shrinkage for classic m68k.
7438 (m68k_override_options_after_change): Likewise.
7440 2014-02-27 Marek Polacek <polacek@redhat.com>
7443 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
7444 -Wmaybe-uninitialized.
7446 2014-02-27 Alan Modra <amodra@gmail.com>
7449 * reload1.c (emit_input_reload_insns): When reload_override_in,
7450 set old to rl->in_reg when rl->in_reg is a subreg.
7452 2014-02-26 Richard Biener <rguenther@suse.de>
7455 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
7457 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
7459 * common/config/i386/predicates.md (const1256_operand): Remove.
7460 (const2356_operand): New.
7461 (const_1_to_2_operand): Remove.
7462 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
7463 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
7464 (*avx512pf_gatherpf<mode>sf): Ditto.
7465 (avx512pf_gatherpf<mode>df): Ditto.
7466 (*avx512pf_gatherpf<mode>df_mask): Ditto.
7467 (*avx512pf_gatherpf<mode>df): Ditto.
7468 (avx512pf_scatterpf<mode>sf): Ditto.
7469 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7470 (*avx512pf_scatterpf<mode>sf): Ditto.
7471 (avx512pf_scatterpf<mode>df): Ditto.
7472 (*avx512pf_scatterpf<mode>df_mask): Ditto.
7473 (*avx512pf_scatterpf<mode>df): Ditto.
7474 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
7476 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
7478 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
7479 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
7480 (_mm512_mask_testn_epi64_mask): Move to ...
7481 * config/i386/avx512cdintrin.h: Here.
7482 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
7483 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
7484 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
7485 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
7486 TARGET_AVX512F from TARGET_AVX512CD.
7488 2014-02-26 Richard Biener <rguenther@suse.de>
7491 * ipa.c (walk_polymorphic_call_targets): Properly guard
7492 call to inline_update_overall_summary.
7494 2014-02-26 Bin Cheng <bin.cheng@arm.com>
7497 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
7498 and latches only if requested. Fix latch if it is removed.
7499 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
7500 LOOPS_HAVE_PREHEADERS.
7502 2014-02-25 Andrew Pinski <apinski@cavium.com>
7504 * builtins.c (expand_builtin_thread_pointer): Create a new target
7505 when the target is NULL.
7507 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
7509 PR rtl-optimization/60317
7510 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
7511 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
7512 * lra-assigns.c: Include params.h.
7513 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
7514 other reload pseudos considerations.
7516 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7518 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
7519 to use canonical form for nor<mode>3.
7521 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7524 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
7527 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
7529 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
7530 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
7531 (ix86_handle_option): Handle OPT_mprefetchwt1.
7532 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
7533 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7535 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7536 OPTION_MASK_ISA_PREFETCHWT1.
7537 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
7538 (PTA_PREFETCHWT1): New.
7539 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
7540 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
7541 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
7542 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
7543 (*prefetch_avx512pf_<mode>_: Change into ...
7544 (*prefetch_prefetchwt1_<mode>: This.
7545 * config/i386/i386.opt (mprefetchwt1): New.
7546 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
7547 (_mm_prefetch): Handle intent to write.
7548 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
7550 2014-02-25 Richard Biener <rguenther@suse.de>
7553 * emit-rtl.c (mem_attrs_htab): Remove.
7554 (mem_attrs_htab_hash): Likewise.
7555 (mem_attrs_htab_eq): Likewise.
7556 (set_mem_attrs): Always allocate new mem-attrs when something changed.
7557 (init_emit_once): Do not allocate mem_attrs_htab.
7559 2014-02-25 Richard Biener <rguenther@suse.de>
7562 * lto-opts.c (lto_write_options): Output non-explicit conservative
7563 -fwrapv, -fno-trapv and -fno-strict-overflow.
7564 * lto-wrapper.c (merge_and_complain): Handle merging those options.
7565 (run_gcc): And pass them through.
7567 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
7569 * sel-sched.c (calculate_new_fences): New parameter ptime.
7570 Calculate it as a maximum over all fence cycles.
7571 (sel_sched_region_2): Adjust the call to calculate_new_fences.
7572 Print the final schedule timing when sched_verbose.
7574 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
7576 PR rtl-optimization/60292
7577 * sel-sched.c (fill_vec_av_set): Do not reset target availability
7578 bit fot the fence instruction.
7580 2014-02-24 Alangi Derick <alangiderick@gmail.com>
7582 * calls.h: Fix typo in comment.
7584 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
7586 * config/pa/pa.c (pa_output_move_double): Don't valididate when
7587 adjusting offsetable addresses.
7589 2014-02-24 Guozhi Wei <carrot@google.com>
7591 * sparseset.h (sparseset_pop): Fix the wrong index.
7593 2014-02-24 Walter Lee <walt@tilera.com>
7595 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
7596 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
7598 * common/config/tilegx/tilegx-common.c
7599 (TARGET_DEFAULT_TARGET_FLAGS): Define.
7600 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
7602 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
7603 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
7604 (tilegx_gimplify_va_arg_expr): Handle big endian.
7605 (tilegx_expand_unaligned_load): Ditto.
7606 (tilegx_expand_unaligned_store): Ditto.
7607 (TARGET_RETURN_IN_MSB): New.
7608 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
7609 (TARGET_ENDIAN_DEFAULT): New.
7610 (TARGET_BIG_ENDIAN): Handle big endian.
7611 (BYTES_BIG_ENDIAN): Ditto.
7612 (WORDS_BIG_ENDIAN): Ditto.
7613 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
7616 * config/tilegx/tilegx.md (extv): Handle big endian.
7618 (insn_st<n>): Ditto.
7619 (insn_st<n>_add<bitsuffix>): Ditto.
7620 (insn_stnt<n>): Ditto.
7621 (insn_stnt<n>_add<bitsuffix>):Ditto.
7622 (vec_interleave_highv8qi): Handle big endian.
7623 (vec_interleave_highv8qi_be): New.
7624 (vec_interleave_highv8qi_le): New.
7625 (insn_v1int_h): Handle big endian.
7626 (vec_interleave_lowv8qi): Handle big endian.
7627 (vec_interleave_lowv8qi_be): New.
7628 (vec_interleave_lowv8qi_le): New.
7629 (insn_v1int_l): Handle big endian.
7630 (vec_interleave_highv4hi): Handle big endian.
7631 (vec_interleave_highv4hi_be): New.
7632 (vec_interleave_highv4hi_le): New.
7633 (insn_v2int_h): Handle big endian.
7634 (vec_interleave_lowv4hi): Handle big endian.
7635 (vec_interleave_lowv4hi_be): New.
7636 (vec_interleave_lowv4hi_le): New.
7637 (insn_v2int_l): Handle big endian.
7638 (vec_interleave_highv2si): Handle big endian.
7639 (vec_interleave_highv2si_be): New.
7640 (vec_interleave_highv2si_le): New.
7641 (insn_v4int_h): Handle big endian.
7642 (vec_interleave_lowv2si): Handle big endian.
7643 (vec_interleave_lowv2si_be): New.
7644 (vec_interleave_lowv2si_le): New.
7645 (insn_v4int_l): Handle big endian.
7646 * config/tilegx/tilegx.opt (mbig-endian): New option.
7647 (mlittle-endian): New option.
7648 * doc/install.texi: Document tilegxbe-linux.
7649 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
7651 2014-02-24 Martin Jambor <mjambor@suse.cz>
7654 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
7655 there are no parameter descriptors.
7657 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
7659 PR rtl-optimization/60268
7660 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
7661 initialization to ...
7662 (sched_rgn_init): ... here.
7663 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
7665 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
7667 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
7670 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
7672 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
7675 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
7677 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
7678 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
7680 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
7682 * config/microblaze/predicates.md: Add cmp_op predicate.
7683 * config/microblaze/microblaze.md: Add branch_compare instruction
7684 which uses cmp_op predicate and emits cmp insn before branch.
7685 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
7686 to microblaze_expand_conditional_branch and consolidate logic.
7687 (microblaze_expand_conditional_branch): emit branch_compare
7688 insn instead of handling cmp op separate from branch insn.
7690 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7692 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
7695 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7697 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
7698 define_insn with define_expand and new define_insn
7699 *altivec_lve<VI_char>x_internal.
7700 (altivec_stve<VI_char>x): Replace define_insn with define_expand
7701 and new define_insn *altivec_stve<VI_char>x_internal.
7702 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
7704 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
7706 (altivec_expand_stvex_be): New function.
7708 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
7710 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
7711 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
7712 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
7713 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
7715 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
7718 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
7719 instead of emit_move_insn.
7721 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7723 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
7725 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
7726 gen_altivec_vsumsws.
7728 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7730 * config/rs6000/altivec.md (altivec_lvxl): Rename as
7731 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
7732 (altivec_lvxl_<mode>): New define_expand incorporating
7733 -maltivec=be semantics where needed.
7734 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
7735 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
7736 semantics where needed.
7737 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
7738 (altivec_stvx_<mode>): New define_expand incorporating
7739 -maltivec=be semantics where needed.
7740 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
7741 VM2 iterator instead of V4SI.
7742 (altivec_stvxl_<mode>): New define_expand incorporating
7743 -maltivec=be semantics where needed.
7744 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
7745 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
7746 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
7747 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
7748 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
7749 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
7750 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
7751 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
7752 ALTIVEC_BUILTIN_STVXL.
7753 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
7754 (altivec_expand_stvx_be): Likewise.
7755 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
7756 (altivec_expand_lvx_be): Likewise.
7757 (altivec_expand_stvx_be): Likewise.
7758 (altivec_expand_builtin): Add cases for
7759 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
7760 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
7761 (altivec_init_builtins): Add definitions for
7762 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
7763 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
7765 2014-02-21 Catherine Moore <clm@codesourcery.com>
7767 * doc/invoke.texi (mvirt, mno-virt): Document.
7768 * config/mips/mips.opt (mvirt): New option.
7769 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
7771 2014-02-21 Richard Biener <rguenther@suse.de>
7773 PR tree-optimization/60276
7774 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
7775 (STMT_VINFO_MIN_NEG_DIST): New macro.
7776 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
7777 STMT_VINFO_MIN_NEG_DIST.
7778 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
7779 made for negative dependence distances still hold.
7781 2014-02-21 Richard Biener <rguenther@suse.de>
7784 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
7785 DECL_INITIAL for globals not in the current function context.
7787 2014-02-21 Jakub Jelinek <jakub@redhat.com>
7789 PR tree-optimization/56490
7790 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
7791 * tree-ssa-uninit.c: Include params.h.
7792 (compute_control_dep_chain): Add num_calls argument, return false
7793 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
7794 num_calls to recursive call.
7795 (find_predicates): Change dep_chain into normal array,
7796 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
7797 variable and adjust compute_control_dep_chain caller.
7798 (find_def_preds): Likewise.
7800 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
7802 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
7803 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
7805 2014-02-21 Nick Clifton <nickc@redhat.com>
7807 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
7808 (pushhi1): Likewise.
7809 (popqi1): Add mode to pre_dec.
7812 2014-02-21 Jakub Jelinek <jakub@redhat.com>
7814 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
7815 mode for mask of V8SFmode permutation.
7817 2014-02-20 Richard Henderson <rth@redhat.com>
7820 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
7821 a new pseudo for OLDVAL.
7823 2014-02-20 Jakub Jelinek <jakub@redhat.com>
7826 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
7827 gen_reg_rtx if d->testing_p.
7828 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
7829 if d->testing_p and we will certainly return true.
7830 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
7833 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
7835 * emit-rtl.c (gen_reg_rtx): Assert that
7836 crtl->emit.regno_pointer_align_length is non-zero.
7838 2014-02-20 Richard Henderson <rth@redhat.com>
7841 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
7842 on failure the store back into EXPECT.
7844 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
7845 Sandra Loosemore <sandra@codesourcery.com>
7847 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
7848 * config/nios2/nios2.c (nios2_function_profiler): Add
7849 -fPIC (flag_pic == 2) support.
7850 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
7851 (nios2_large_offset_p): New function.
7852 (nios2_unspec_reloc_p): Move up position, update to use
7853 nios2_large_offset_p.
7854 (nios2_unspec_address): Remove function.
7855 (nios2_unspec_offset): New function.
7856 (nios2_large_got_address): New function.
7857 (nios2_got_address): Add large offset support.
7858 (nios2_legitimize_tls_address): Update usage of removed and new
7860 (nios2_symbol_binds_local_p): New function.
7861 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
7862 (nios2_legitimize_address): Update to use nios2_large_offset_p.
7863 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
7864 (nios2_print_operand): Merge H/L processing, add hiadj/lo
7865 processing for (const (unspec ...)).
7866 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
7868 2014-02-20 Richard Biener <rguenther@suse.de>
7870 * tree-cfg.c (replace_uses_by): Mark altered BBs before
7871 doing the substitution.
7872 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
7874 2014-02-20 Martin Jambor <mjambor@suse.cz>
7877 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
7878 info when checking whether lattices are bottom.
7880 2014-02-20 Richard Biener <rguenther@suse.de>
7883 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
7886 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
7889 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
7890 parameter specifying the scaling.
7891 (inline_call): Update.
7892 (want_inline_recursively): Guard division by zero.
7893 (recursive_inlining): Update.
7894 * ipa-inline.h (clone_inlined_nodes): Update.
7896 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
7899 * config/i386/i386.c (classify_argument): Pass structures of size
7900 64 bytes or less in register.
7902 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
7903 Kirill Yukhin <kirill.yukhin@intel.com>
7905 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
7906 (_mm_rcp28_round_ss): Ditto.
7907 (_mm_rsqrt28_round_sd): Ditto.
7908 (_mm_rsqrt28_round_ss): Ditto.
7909 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
7910 (_mm_rcp14_round_ss): Ditto.
7911 (_mm_rsqrt14_round_sd): Ditto.
7912 (_mm_rsqrt14_round_ss): Ditto.
7913 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
7914 the first input operand, get rid of match_dup.
7915 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
7917 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
7919 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
7920 operand as the first input operand, set type attribute.
7921 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
7923 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
7924 operand as the first input operand, set type attribute.
7926 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7928 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
7931 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
7934 * config/i386/i386.c (construct_container): Remove TFmode check
7935 for X86_64_INTEGER_CLASS.
7937 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
7940 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
7941 only when -Wpsabi is enabled.
7943 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
7946 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
7947 passing arrays in registers are the same as for structs, so remove the
7948 special case for them.
7950 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
7952 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
7953 destination type, extract only the valid bits if the source type is not
7954 integral and has a different mode.
7956 2014-02-19 Richard Biener <rguenther@suse.de>
7959 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
7962 2014-02-19 Richard Biener <rguenther@suse.de>
7965 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
7966 (ipa_modify_call_arguments): Emit an argument load explicitely and
7967 preserve virtual SSA form there and for the replacement call.
7968 Do not update SSA form nor free dominance info.
7970 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
7972 * ipa.c (function_and_variable_visibility): Also clear WEAK
7973 flag when disolving COMDAT_GROUP.
7975 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
7977 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
7978 * ipa-prop.c (ipa_set_jf_known_type): Return early when
7980 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
7981 do more sanity checks.
7982 (detect_type_change): Return true when giving up early.
7983 (compute_complex_assign_jump_func): Fix type parameter of
7984 ipa_set_ancestor_jf.
7985 (compute_complex_ancestor_jump_func): Likewise.
7986 (update_jump_functions_after_inlining): Fix updating of
7988 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
7990 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
7992 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
7993 inline clones when edge disappears.
7995 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
7998 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
7999 Split 64-bit moves into 2 patterns. Do not allow the use of
8000 direct move for TDmode in little endian, since the decimal value
8001 has little endian bytes within a word, but the 64-bit pieces are
8002 ordered in a big endian fashion, and normal subreg's of TDmode are
8004 (mov<mode>_64bit_dm): Likewise.
8005 (movtd_64bit_nodm): Likewise.
8007 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
8009 PR tree-optimization/60174
8010 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
8011 statement of an SSA_NAME that occurs in an abnormal PHI node.
8013 2014-02-18 Jakub Jelinek <jakub@redhat.com>
8016 * final.c (SEEN_BB): Remove.
8017 (SEEN_NOTE, SEEN_EMITTED): Renumber.
8018 (final_scan_insn): Don't force_source_line on second
8019 NOTE_INSN_BASIC_BLOCK.
8021 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
8024 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
8025 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
8026 (type_natural_mode): Warn ABI change when %zmm register is not
8027 available for AVX512F vector value passing.
8029 2014-02-18 Kai Tietz <ktietz@redhat.com>
8032 * config/i386/i386.c (ix86_expand_prologue): Use value in
8033 rax register as displacement when restoring %r10 or %rax.
8034 Fix wrong offset when restoring both registers.
8036 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
8038 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
8039 assertion with conditional return.
8041 2014-02-18 Jakub Jelinek <jakub@redhat.com>
8042 Uros Bizjak <ubizjak@gmail.com>
8045 * config/i386/driver-i386.c (host_detect_local_cpu): If
8046 YMM state is not saved by the OS, also clear has_f16c. Move
8047 CPUID 0x80000001 handling before YMM state saving checking.
8049 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
8051 PR rtl-optimization/58960
8052 * haifa-sched.c (alloc_global_sched_pressure_data): New,
8053 factored out from ...
8054 (sched_init): ... here.
8055 (free_global_sched_pressure_data): New, factored out from ...
8056 (sched_finish): ... here.
8057 * sched-int.h (free_global_sched_pressure_data): Declare.
8058 * sched-rgn.c (nr_regions_initial): New static global.
8059 (haifa_find_rgns): Initialize it.
8060 (schedule_region): Disable sched-pressure for the newly
8063 2014-02-17 Richard Biener <rguenther@suse.de>
8065 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
8066 release SSA defs of pattern stmts.
8068 2014-02-17 Richard Biener <rguenther@suse.de>
8070 * tree-inline.c (expand_call_inline): Release the virtual
8071 operand defined by the call we are about to inline.
8073 2014-02-17 Richard Biener <rguenther@suse.de>
8075 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
8077 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
8078 Ilya Tocar <ilya.tocar@intel.com>
8080 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
8081 arguments order in builtin.
8082 (_mm512_permutexvar_epi64): Ditto.
8083 (_mm512_mask_permutexvar_epi64): Ditto
8084 (_mm512_maskz_permutexvar_epi32): Ditto
8085 (_mm512_permutexvar_epi32): Ditto
8086 (_mm512_mask_permutexvar_epi32): Ditto
8088 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8090 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
8091 (p8_vmrgow): Likewise.
8093 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8095 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
8098 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
8101 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
8102 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
8103 into 64-bit and 32-bit moves. On 64-bit moves, add support for
8104 using direct move instructions on ISA 2.07. Also adjust
8105 instruction length for 64-bit.
8106 (mov<mode>_64bit, TFmode/TDmode): Likewise.
8107 (mov<mode>_32bit, TFmode/TDmode): Likewise.
8109 2014-02-15 Alan Modra <amodra@gmail.com>
8113 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
8114 find_replacement on parts of insn rtl that might be reloaded.
8116 2014-02-15 Richard Biener <rguenther@suse.de>
8118 PR tree-optimization/60183
8119 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
8120 (tree_ssa_phiprop): Calculate and free post-dominators.
8122 2014-02-14 Jeff Law <law@redhat.com>
8124 PR rtl-optimization/60131
8125 * ree.c (get_extended_src_reg): New function.
8126 (combine_reaching_defs): Use it rather than assuming location of REG.
8127 (find_and_remove_re): Verify first operand of extension is
8128 a REG before adding the insns to the copy list.
8130 2014-02-14 Roland McGrath <mcgrathr@google.com>
8132 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
8133 * configure: Regenerated.
8134 * config.in: Regenerated.
8135 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
8136 instead of ASM_SHORT.
8138 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
8139 Richard Earnshaw <rearnsha@arm.com>
8141 PR rtl-optimization/59535
8142 * lra-constraints.c (process_alt_operands): Encourage alternative
8143 when unassigned pseudo class is superset of the alternative class.
8144 (inherit_reload_reg): Don't inherit when optimizing for code size.
8145 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
8146 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
8147 modes not less than 4 for Thumb1.
8149 2014-02-14 Kyle McMartin <kyle@redhat.com>
8152 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
8154 2014-02-14 Richard Biener <rguenther@suse.de>
8156 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
8157 (get_frame_arg): Drop the assert with langhook types_compatible_p.
8158 Do not strip INDIRECT_REFs.
8160 2014-02-14 Richard Biener <rguenther@suse.de>
8163 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
8164 DECL_FUNCTION_SPECIFIC_TARGET.
8165 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
8166 * tree-streamer-out.c (pack_ts_target_option): Remove.
8167 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
8168 (write_ts_function_decl_tree_pointers): Do not stream
8169 DECL_FUNCTION_SPECIFIC_TARGET.
8170 * tree-streamer-in.c (unpack_ts_target_option): Remove.
8171 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
8172 (lto_input_ts_function_decl_tree_pointers): Do not stream
8173 DECL_FUNCTION_SPECIFIC_TARGET.
8175 2014-02-14 Jakub Jelinek <jakub@redhat.com>
8177 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
8178 (get_initial_def_for_induction, vectorizable_induction): Ignore
8179 debug stmts when looking for exit_phi.
8180 (vectorizable_live_operation): Fix up condition.
8182 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
8184 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
8185 nreverse() because it changes the content of original tree list.
8187 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
8189 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
8190 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
8192 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
8194 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
8195 GNU coding standards.
8197 2014-02-13 Jakub Jelinek <jakub@redhat.com>
8200 * dwarf2out.c (gen_subprogram_die): Don't call
8201 add_calling_convention_attribute if subr_die is old_die.
8203 2014-02-13 Sharad Singhai <singhai@google.com>
8205 * doc/optinfo.texi: Fix order of nodes.
8207 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
8209 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
8210 operands[2], not operands[3].
8212 2014-02-13 Richard Biener <rguenther@suse.de>
8215 * doc/install.texi (ISL): Update recommended version to 0.12.2,
8216 mention the possibility of an in-tree build.
8217 (CLooG): Update recommended version to 0.18.1, mention the
8218 possibility of an in-tree build and clarify that the ISL
8219 bundled with CLooG does not work.
8221 2014-02-13 Jakub Jelinek <jakub@redhat.com>
8224 * expr.c (compress_float_constant): If x is a hard register,
8225 extend into a pseudo and then move to x.
8227 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
8229 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
8230 caused by bad second argument to warning_at() with -mhotpatch and
8231 nested functions (e.g. with gfortran).
8233 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
8235 * opts.c (option_name): Remove "enabled by default" rider.
8237 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
8239 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
8241 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
8242 Uros Bizjak <ubizjak@gmail.com>
8245 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
8246 * configure: Regenerated.
8248 2014-02-12 Richard Biener <rguenther@suse.de>
8250 * vec.c (vec_prefix::calculate_allocation): Move as
8251 inline variant to vec.h.
8252 (vec_prefix::calculate_allocation_1): New out-of-line version.
8253 * vec.h (vec_prefix::calculate_allocation_1): Declare.
8254 (vec_prefix::m_has_auto_buf): Rename to ...
8255 (vec_prefix::m_using_auto_storage): ... this.
8256 (vec_prefix::calculate_allocation): Inline the easy cases
8257 and dispatch to calculate_allocation_1 which doesn't need the
8259 (va_heap::reserve): Use gcc_checking_assert.
8260 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
8261 m_using_auto_storage.
8262 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
8264 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
8265 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
8266 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
8268 2014-02-12 Richard Biener <rguenther@suse.de>
8270 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
8271 when we found a dependence.
8273 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
8275 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
8277 (maybe_fold_stmt): ... into this new function.
8278 * omp-low.c (lower_omp): Update comment.
8280 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
8283 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
8286 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
8288 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
8289 identifiers in comments.
8290 (cortexa53_extra_costs): Likewise.
8291 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
8292 (cortexa7_extra_costs): Likewise.
8293 (cortexa12_extra_costs): Likewise.
8294 (cortexa15_extra_costs): Likewise.
8295 (v7m_extra_costs): Likewise.
8297 2014-02-12 Richard Biener <rguenther@suse.de>
8300 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
8301 of posix_memalign being successful.
8302 (lower_stmt): Restrict lowering of posix_memalign to when
8303 -ftree-bit-ccp is enabled.
8305 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8307 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
8309 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
8311 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
8313 PR rtl-optimization/60116
8314 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
8315 other_insn once the combination has been validated.
8317 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
8320 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
8322 * ipa-devirt.c: Include demangle.h
8323 (odr_violation_reported): New static variable.
8324 (add_type_duplicate): Update odr_violations.
8325 (maybe_record_node): Add completep parameter; update it.
8326 (record_target_from_binfo): Add COMPLETEP parameter;
8327 update it as needed.
8328 (possible_polymorphic_call_targets_1): Likewise.
8329 (struct polymorphic_call_target_d): Add nonconstruction_targets;
8330 rename FINAL to COMPLETE.
8331 (record_targets_from_bases): Sanity check we found the binfo;
8332 fix COMPLETEP updating.
8333 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
8334 parameter, fix computing of COMPLETEP.
8335 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
8336 at LTO time do demangling.
8337 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
8338 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
8340 (gimple_get_virt_method_for_binfo): Likewise.
8341 * gimple-fold.h (gimple_get_virt_method_for_binfo,
8342 gimple_get_virt_method_for_vtable): Update prototypes.
8344 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
8347 * genautomata.c (add_presence_absence): Fix typo with
8348 {final_}presence_list.
8350 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
8353 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
8354 for VSX/Altivec vectors that land in GPR registers.
8356 2014-02-11 Richard Henderson <rth@redhat.com>
8357 Jakub Jelinek <jakub@redhat.com>
8360 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
8361 around drhs if type conversion to lacc->type is not useless.
8363 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8365 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
8367 (cortex-a57.cortex-a53): Likewise.
8368 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
8370 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8372 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
8375 2014-02-11 Renlin Li <Renlin.Li@arm.com>
8377 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
8378 add_options_for_arm_vfp3.
8380 2014-02-11 Jeff Law <law@redhat.com>
8383 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
8384 object with an undesirable mode.
8386 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8389 * config/i386/sol2-9.h: New file.
8390 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
8391 *-*-solaris2.9*): Use it.
8393 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
8395 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
8396 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
8398 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
8400 * config/microblaze/microblaze.c: Extend mcpu version format
8402 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
8404 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
8406 2014-02-10 Richard Henderson <rth@redhat.com>
8409 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
8410 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
8411 ms-abi vs -mno-accumulate-outgoing-args.
8412 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
8413 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
8416 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
8419 * cfgexpand.c (expand_asm_operands): Attach source location to
8420 ASM_INPUT rtx objects.
8421 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
8423 2014-02-10 Nick Clifton <nickc@redhat.com>
8425 * config/mn10300/mn10300.c (popcount): New function.
8426 (mn10300_expand_prologue): Include saved registers in stack usage
8429 2014-02-10 Jeff Law <law@redhat.com>
8432 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
8433 when changing the SET_DEST of a prior insn to avoid an input reload.
8435 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8437 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
8438 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
8439 -mcall-openbsd, or -mcall-linux.
8440 (CC1_ENDIAN_BIG_SPEC): Remove.
8441 (CC1_ENDIAN_LITTLE_SPEC): Remove.
8442 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
8443 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
8444 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
8445 and %cc1_endian_default.
8446 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
8448 2014-02-10 Richard Biener <rguenther@suse.de>
8450 PR tree-optimization/60115
8451 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
8452 MEM_REF handling. Properly verify that the accesses are not
8453 out of the objects bound.
8455 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8457 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
8460 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
8462 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
8463 proper constants and fix formatting.
8464 (possible_polymorphic_call_targets): Fix formatting.
8466 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
8467 Ilya Tocar <ilya.tocar@intel.com>
8469 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
8470 (_mm512_loadu_epi32): Renamed into...
8471 (_mm512_loadu_si512): This.
8472 (_mm512_storeu_epi32): Renamed into...
8473 (_mm512_storeu_si512): This.
8474 (_mm512_maskz_ceil_ps): Removed.
8475 (_mm512_maskz_ceil_pd): Ditto.
8476 (_mm512_maskz_floor_ps): Ditto.
8477 (_mm512_maskz_floor_pd): Ditto.
8478 (_mm512_floor_round_ps): Ditto.
8479 (_mm512_floor_round_pd): Ditto.
8480 (_mm512_ceil_round_ps): Ditto.
8481 (_mm512_ceil_round_pd): Ditto.
8482 (_mm512_mask_floor_round_ps): Ditto.
8483 (_mm512_mask_floor_round_pd): Ditto.
8484 (_mm512_mask_ceil_round_ps): Ditto.
8485 (_mm512_mask_ceil_round_pd): Ditto.
8486 (_mm512_maskz_floor_round_ps): Ditto.
8487 (_mm512_maskz_floor_round_pd): Ditto.
8488 (_mm512_maskz_ceil_round_ps): Ditto.
8489 (_mm512_maskz_ceil_round_pd): Ditto.
8490 (_mm512_expand_pd): Ditto.
8491 (_mm512_expand_ps): Ditto.
8492 * config/i386/i386.c (ix86_builtins): Remove
8493 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
8494 (bdesc_args): Ditto.
8495 * config/i386/predicates.md (const1256_operand): New.
8496 (const_1_to_2_operand): Ditto.
8497 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
8498 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
8499 (*avx512pf_gatherpf<mode>sf): Ditto.
8500 (avx512pf_gatherpf<mode>df): Ditto.
8501 (*avx512pf_gatherpf<mode>df_mask): Ditto.
8502 (*avx512pf_gatherpf<mode>df): Ditto.
8503 (avx512pf_scatterpf<mode>sf): Ditto.
8504 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
8505 (*avx512pf_scatterpf<mode>sf): Ditto.
8506 (avx512pf_scatterpf<mode>df): Ditto.
8507 (*avx512pf_scatterpf<mode>df_mask): Ditto.
8508 (*avx512pf_scatterpf<mode>df): Ditto.
8509 (avx512f_expand<mode>): Removed.
8510 (<shift_insn><mode>3<mask_name>): Change predicate type.
8512 2014-02-08 Jakub Jelinek <jakub@redhat.com>
8514 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
8515 not at the end of datarefs vector use ordered_remove to avoid
8516 reordering datarefs vector.
8519 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
8520 mark local addressable non-static vars as GOVD_PRIVATE
8521 instead of GOVD_LOCAL.
8522 * omp-low.c (lower_omp_for): Move gimple_bind_vars
8523 and BLOCK_VARS of gimple_bind_block to new_stmt rather
8527 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
8528 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
8529 assume_aligned or alloc_align attributes.
8530 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
8531 arguments. Handle also assume_aligned and alloc_align attributes.
8532 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
8533 calls to functions with assume_aligned or alloc_align attributes.
8534 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
8536 2014-02-08 Terry Guo <terry.guo@arm.com>
8538 * doc/invoke.texi: Document ARM -march=armv7e-m.
8540 2014-02-08 Jakub Jelinek <jakub@redhat.com>
8542 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
8543 flag on __cilkrts_rethrow builtin.
8546 * ipa-cp.c (determine_versionability): Fail at -O0
8547 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
8548 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
8551 2014-02-04 Jakub Jelinek <jakub@redhat.com>
8554 * tree-inline.c (copy_forbidden): Fail for
8555 __attribute__((optimize (0))) functions.
8557 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
8559 * varpool.c: Include pointer-set.h.
8560 (varpool_remove_unreferenced_decls): Variables in other partitions
8561 will not be output; be however careful to not lose information
8564 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
8566 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
8567 lookup in the vtable constructor.
8569 2014-02-07 Jeff Law <law@redhat.com>
8572 * config/m68k/m68k.md (ashldi_extsi): Turn into a
8573 define_insn_and_split.
8575 * ipa-inline.c (inline_small_functions): Fix typos.
8577 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
8579 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
8580 (s390_can_use_return_insn): Declare.
8581 * config/s390/s390.h (EPILOGUE_USES): Define.
8582 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
8584 (s390_chunkify_start): Handle return JUMP_LABELs.
8585 (s390_early_mach): Emit a main_pool instruction on the entry edge.
8586 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
8587 (s390_can_use_return_insn): New functions.
8588 (s390_fix_long_loop_prediction): Handle conditional returns.
8589 (TARGET_SET_UP_BY_PROLOGUE): Define.
8590 * config/s390/s390.md (ANY_RETURN): New code iterator.
8591 (*creturn, *csimple_return, return, simple_return): New patterns.
8593 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
8595 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
8596 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
8597 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
8598 REG_CFA_RESTORE list when deciding not to restore a register.
8600 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
8602 * config/s390/s390.c: Include tree-pass.h and context.h.
8603 (s390_early_mach): New function, split out from...
8604 (s390_emit_prologue): ...here.
8605 (pass_data_s390_early_mach): New pass structure.
8606 (pass_s390_early_mach): New class.
8607 (s390_option_override): Create and register early_mach pass.
8608 Move to end of file.
8610 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
8612 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
8613 to match for the exit block.
8615 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8617 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
8618 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
8619 Reject misaligned operands.
8621 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8623 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
8625 2014-02-07 Richard Biener <rguenther@suse.de>
8628 * gimple-low.c (lower_builtin_posix_memalign): New function.
8629 (lower_stmt): Call it to lower posix_memalign in a way
8630 to make alignment info accessible.
8632 2014-02-07 Jakub Jelinek <jakub@redhat.com>
8635 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
8636 __builtin_setjmp_receiver.
8638 2014-02-07 Richard Biener <rguenther@suse.de>
8641 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
8642 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
8643 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8644 Handle BUILT_IN_POSIX_MEMALIGN.
8645 (find_func_clobbers): Likewise.
8646 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
8647 (call_may_clobber_ref_p_1): Likewise.
8649 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8652 * ipa-devirt.c (record_target_from_binfo): Remove overactive
8655 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8658 * lto-cgraph.c (lto_output_node): Use
8659 symtab_get_symbol_partitioning_class.
8660 (lto_output_varpool_node): likewise.
8661 (symtab_get_symbol_partitioning_class): Move here from
8663 * cgraph.h (symbol_partitioning_class): Likewise.
8664 (symtab_get_symbol_partitioning_class): Declare.
8666 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8668 * ggc.h (ggc_internal_cleared_alloc): New macro.
8669 * vec.h (vec_safe_copy): Handle memory stats.
8670 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
8671 * target-globals.c (save_target_globals): Likewise.
8673 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8676 * expr.c (emit_move_resolve_push): Export; be bit more selective
8677 on when to clear alias set.
8678 * expr.h (emit_move_resolve_push): Declare.
8679 * function.h (struct function): Add tail_call_marked.
8680 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
8681 * config/i386/i386-protos.h (ix86_expand_push): Remove.
8682 * config/i386/i386.md (TImode move expander): De not call
8684 (FP push expanders): Preserve memory attributes.
8685 * config/i386/sse.md (push<mode>1): Remove.
8686 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
8687 (ix86_expand_push): Remove.
8688 * config/i386/mmx.md (push<mode>1): Remove.
8690 2014-02-06 Jakub Jelinek <jakub@redhat.com>
8692 PR rtl-optimization/60030
8693 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
8694 lopart with paradoxical subreg before shifting it up by hprec.
8696 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8698 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
8699 Remove extra newline at end of file.
8700 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
8701 (arm_issue_rate): Handle cortexa57.
8702 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
8703 (cortex-a57.cortex-a53): Likewise.
8705 2014-02-06 Jakub Jelinek <jakub@redhat.com>
8708 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
8709 don't record in REG_FRAME_RELATED_EXPR registers not set in that
8711 (arm_expand_prologue): Adjust all callers.
8712 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
8713 info, registers also at the lowest numbered registers side. Use
8714 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
8718 * var-tracking.c (adjust_mems): Before adding a SET to
8719 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
8721 2014-02-06 Alan Modra <amodra@gmail.com>
8724 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
8725 change SDmode to DDmode when lra_in_progress.
8727 2014-02-06 Jakub Jelinek <jakub@redhat.com>
8730 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
8731 free_data_ref on the dr first, and before goto again also set dr
8732 to the next dr. For simd_lane_access, free old datarefs[i] before
8733 overwriting it. For get_vectype_for_scalar_type failure, don't
8734 free_data_ref if simd_lane_access.
8736 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
8739 * tree.h (opts_for_fn): New inline function.
8740 (opt_for_fn): Define.
8741 * config/i386/i386.c (ix86_function_regparm): Use
8742 opt_for_fn (decl, optimize) instead of optimize.
8744 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
8746 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
8747 for SYMBOL_REF in large memory model.
8749 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8751 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
8753 (cortex-a57): Likewise.
8754 (cortex-a57.cortex-a53): Likewise.
8756 2014-02-06 Yury Gribov <y.gribov@samsung.com>
8757 Kugan Vivekanandarajah <kuganv@linaro.org>
8759 * config/arm/arm.c (arm_vector_alignment_reachable): Check
8761 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
8763 2014-02-06 Richard Biener <rguenther@suse.de>
8765 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
8766 set_loop_copy and initialize_original_copy_tables.
8768 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
8770 * config/aarch64/aarch64-simd.md
8771 (aarch64_ashr_simddi): Change QI to SI.
8773 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
8774 Jakub Jelinek <jakub@redhat.com>
8777 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
8780 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8782 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
8783 CODE_FOR_altivec_vpku[hw]um to
8784 CODE_FOR_altivec_vpku[hw]um_direct.
8785 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
8786 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
8787 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
8788 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
8790 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8792 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
8793 generation for -maltivec=be.
8794 (altivec_vsumsws): Simplify redundant test.
8796 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8798 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
8799 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
8800 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
8801 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
8802 gen_altivec_vpkuwum.
8803 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
8805 (altivec_vpks<VI_char>ss): Likewise.
8806 (altivec_vpks<VI_char>us): Likewise.
8807 (altivec_vpku<VI_char>us): Likewise.
8808 (altivec_vpku<VI_char>um): Likewise.
8809 (altivec_vpku<VI_char>um_direct): New (copy of
8810 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
8812 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
8813 target is little endian and -maltivec=be is not specified.
8814 (*altivec_vupkhs<VU_char>_direct): New (copy of
8815 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
8816 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
8817 target is little endian and -maltivec=be is not specified.
8818 (*altivec_vupkls<VU_char>_direct): New (copy of
8819 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
8820 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
8821 little endian and -maltivec=be is not specified.
8822 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
8823 little endian and -maltivec=be is not specified.
8825 2014-02-05 Richard Henderson <rth@redhat.com>
8828 * combine-stack-adj.c: Revert r206943.
8829 * sched-int.h (struct deps_desc): Add last_args_size.
8830 * sched-deps.c (init_deps): Initialize it.
8831 (sched_analyze_insn): Add OUTPUT dependencies between insns that
8832 contain REG_ARGS_SIZE notes.
8834 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
8836 * lto-cgraph.c (asm_nodes_output): Make global.
8837 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
8838 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
8839 (driver_handle_option): Handle OPT_fwpa.
8841 2014-02-05 Jakub Jelinek <jakub@redhat.com>
8844 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
8845 a comment typo and formatting issue. If odr_hash hasn't been
8846 created, return vNULL and set *completep to false.
8849 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
8850 bb with no successors.
8852 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
8855 * doc/invoke.texi (-march): Clarify documentation for ARM.
8859 2014-02-05 Richard Biener <rguenther@suse.de>
8861 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
8862 when not vectorizing because of too many alias checks.
8863 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8864 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
8866 2014-02-05 Nick Clifton <nickc@redhat.com>
8868 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
8869 accept extended registers in any mode when compiling for the MN10300.
8871 2014-02-05 Yury Gribov <y.gribov@samsung.com>
8873 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
8874 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
8875 sanitization attributes.
8876 (can_inline_edge_p): Likewise.
8877 (sanitize_attrs_match_for_inline_p): New function.
8879 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
8881 * ipa-prop.c (detect_type_change): Shor circuit testing of
8882 type changes on THIS pointer.
8884 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
8887 * config/pa/pa.c (legitimize_tls_address): Return original address
8888 if not passed a SYMBOL_REF rtx.
8889 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
8891 (pa_emit_move_sequence): Simplify TLS source operands.
8892 (pa_legitimate_constant_p): Reject all TLS constants.
8893 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
8894 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
8896 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
8898 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
8899 groups when we know they are controlled by LTO.
8900 * varasm.c (default_binds_local_p_1): If object is in other partition,
8901 it will be resolved locally.
8903 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
8905 * config/host-linux.c (linux_gt_pch_use_address): Don't
8906 use SSIZE_MAX because it is not always defined.
8908 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
8911 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
8912 threshold for pseudo splitting.
8913 (update_ebb_live_info): Process call argument hard registers and
8914 hard registers from insn definition too.
8915 (max_small_class_regs_num): New constant.
8916 (inherit_in_ebb): Update live hard regs through EBBs. Update
8917 reloads_num only for small register classes. Don't split for
8920 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
8923 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
8926 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
8928 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
8931 2014-02-04 Marek Polacek <polacek@redhat.com>
8933 * gdbinit.in (pel): Define.
8935 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
8937 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
8940 2014-02-04 Richard Biener <rguenther@suse.de>
8943 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
8944 in function context local.
8945 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
8946 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
8947 similar to LTO_imported_decl_ref.
8949 2014-02-04 Jakub Jelinek <jakub@redhat.com>
8951 PR tree-optimization/60002
8952 * cgraphclones.c (build_function_decl_skip_args): Clear
8955 PR tree-optimization/60023
8956 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
8957 false to gsi_replace.
8958 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
8959 has been in some EH region and vec_stmt could throw, add
8960 vec_stmt into the same EH region.
8961 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
8962 has no lhs, ignore it.
8963 * internal-fn.c (expand_MASK_LOAD): Likewise.
8966 * tree-inline.c (copy_forbidden): Fail for
8967 __attribute__((optimize (0))) functions.
8970 * omp-low.c (simd_clone_struct_copy): If from->inbranch
8971 is set, copy one less argument.
8972 (expand_simd_clones): Don't subtract clone_info->inbranch
8973 from simd_clone_struct_alloc argument.
8975 PR rtl-optimization/57915
8976 * recog.c (simplify_while_replacing): If all unary/binary/relational
8977 operation arguments are constant, attempt to simplify those.
8980 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
8981 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
8983 2014-02-04 Richard Biener <rguenther@suse.de>
8985 PR tree-optimization/60012
8986 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
8987 TBAA disambiguation to all DDRs.
8989 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8992 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
8993 (LINK_SPEC): Use it for -shared, -shared-libgcc.
8995 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
8998 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
9000 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
9002 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
9003 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
9005 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
9008 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
9009 to figure out targets of polymorphic calls with known decl.
9010 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
9011 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
9012 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
9013 (get_polymorphic_call_info): ... here.
9014 (get_polymorphic_call_info_from_invariant): New function.
9016 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
9018 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
9019 lookup via vtable pointer; check for type consistency
9020 and turn inconsitent facts into UNREACHABLE.
9021 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
9022 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
9023 type inconsistent querries; return UNREACHABLE instead.
9025 2014-02-03 Richard Henderson <rth@twiddle.net>
9028 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
9029 already processed this node.
9030 (normalize_one_pred_1): Pass along mark_set.
9031 (normalize_one_pred): Create and destroy a pointer_set_t.
9032 (normalize_one_pred_chain): Likewise.
9034 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
9036 PR gcov-profile/58602
9037 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
9039 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
9042 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
9043 -fno-devirtualize; try to devirtualize by the knowledge of
9044 virtual table pointer given by aggregate propagation.
9045 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
9046 (ipa_print_node_jump_functions): Dump also offset that
9047 is relevant for polymorphic calls.
9048 (determine_known_aggregate_parts): Add arg_type parameter; use it
9049 instead of determining the type from pointer type.
9050 (ipa_compute_jump_functions_for_edge): Update call of
9051 determine_known_aggregate_parts.
9052 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
9053 (gimple_get_virt_method_for_binfo): ... here; simplify using
9054 vtable_pointer_value_to_vtable.
9055 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
9056 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
9057 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
9058 (vtable_pointer_value_to_vtable): Break out from ...; handle also
9060 (vtable_pointer_value_to_binfo): ... here.
9061 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
9063 2014-02-03 Teresa Johnson <tejohnson@google.com>
9065 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
9066 redef of outer loop index variable.
9068 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
9072 * doc/extend.texi (Function Attributes): Typo.
9074 2014-02-03 Cong Hou <congh@google.com>
9076 PR tree-optimization/60000
9077 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
9078 if the vectorized statement is a store. A store statement can only
9079 appear at the end of pattern statements.
9081 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
9083 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
9084 (ix86_option_override_internal): Default long double to 64-bit for
9085 32-bit Bionic and to 128-bit for 64-bit Bionic.
9087 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
9088 TARGET_LONG_DOUBLE_128 is true.
9089 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
9091 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
9092 (mlong-double-64): Negate -mlong-double-128.
9093 (mlong-double-128): New option.
9095 * config/i386/i386-c.c (ix86_target_macros): Define
9096 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
9098 * doc/invoke.texi: Document -mlong-double-128.
9100 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
9102 PR rtl-optimization/60024
9103 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
9105 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
9107 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
9109 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
9111 PR rtl-optimization/57662
9112 * sel-sched.c (code_motion_path_driver): Do not mark already not
9113 existing blocks in the visiting bitmap.
9115 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
9117 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
9118 on the insn being emitted.
9120 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
9121 Will Deacon <will.deacon@arm.com>
9123 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
9125 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9127 * config/arm/arm-tables.opt: Regenerate.
9129 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9131 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
9132 for vector types other than V16QImode.
9133 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
9134 define_expand, and call altivec_expand_vec_perm_le when producing
9135 code with little endian element order.
9136 (*altivec_vperm_<mode>_internal): New insn having previous
9137 behavior of altivec_vperm_<mode>.
9138 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
9139 altivec_expand_vec_perm_le when producing code with little endian
9141 (*altivec_vperm_<mode>_uns_internal): New insn having previous
9142 behavior of altivec_vperm_<mode>_uns.
9144 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9146 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
9147 (altivec_vsumsws): Add handling for -maltivec=be with a little
9149 (altivec_vsumsws_direct): New.
9150 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
9151 gen_altivec_vsumsws.
9153 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
9155 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
9156 vtable_pointer_value_to_binfo): New functions.
9157 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
9158 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
9160 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
9162 * config/nios2/nios2.md (load_got_register): Initialize GOT
9163 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
9164 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
9166 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
9168 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
9169 preserverd by passthrough, do not propagate the type.
9171 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
9173 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
9174 (mips_atomic_assign_expand_fenv): New function.
9175 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
9177 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
9179 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
9180 (__builtin_mips_set_fcsr): Likewise.
9181 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
9182 MIPS_USI_FTYPE_VOID.
9183 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
9184 (mips16_expand_set_fcsr): Likewise.
9185 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
9186 (mips16_set_fcsr_stub): Likewise.
9187 (mips16_get_fcsr_one_only_stub): New class.
9188 (mips16_set_fcsr_one_only_stub): Likewise.
9189 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
9190 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
9191 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
9192 (hard_float): New availability predicate.
9193 (mips_builtins): Add get_fcsr and set_fcsr.
9194 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
9195 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
9196 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
9197 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
9198 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
9201 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
9203 * config/mips/mips.c (mips_one_only_stub): New class.
9204 (mips_need_mips16_rdhwr_p): Replace with...
9205 (mips16_rdhwr_stub): ...this new variable.
9206 (mips16_stub_call_address): New function.
9207 (mips16_rdhwr_one_only_stub): New class.
9208 (mips_expand_thread_pointer): Use mips16_stub_call_address.
9209 (mips_output_mips16_rdhwr): Delete.
9210 (mips_finish_stub): New function.
9211 (mips_code_end): Use it to handle rdhwr stubs.
9213 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
9216 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
9217 when calculating size of integer atomic types.
9219 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
9221 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
9223 2014-02-01 Jakub Jelinek <jakub@redhat.com>
9225 PR tree-optimization/60003
9226 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
9227 * profile.c (branch_prob): Use gimple_call_builtin_p
9228 to check for BUILT_IN_SETJMP_RECEIVER.
9229 * tree-inline.c (copy_bb): Call notice_special_calls.
9231 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
9234 * lra-constraints.c (process_alt_operands): Update reload_sum only
9237 2014-01-31 Richard Henderson <rth@redhat.com>
9240 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
9241 until after else_eh is processed.
9243 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
9245 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
9246 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
9247 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
9248 in smmintrin.h, remove them.
9249 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
9250 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
9251 * config/i386/i386.md (ROUND_SAE): Fix value.
9252 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
9253 (const48_operand): New.
9254 * config/i386/subst.md (round), (round_expand): Use
9255 const_4_or_8_to_11_operand.
9256 (round_saeonly), (round_saeonly_expand): Use const48_operand.
9258 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
9260 * config/i386/constraints.md (Yk): Swap meaning with k.
9261 * config/i386/i386.md (movhi_internal): Change Yk to k.
9262 (movqi_internal): Ditto.
9263 (*k<logic><mode>): Ditto.
9266 (kandn<mode>): Ditto.
9267 (*<code>hi_1): Ditto.
9268 (*<code>qi_1): Ditto.
9269 (kxnor<mode>): Ditto.
9270 (kortestzhi): Ditto.
9271 (kortestchi): Ditto.
9273 (*one_cmplhi2_1): Ditto.
9274 (*one_cmplqi2_1): Ditto.
9275 * config/i386/sse.md (): Change k to Yk.
9276 (avx512f_load<mode>_mask): Ditto.
9277 (avx512f_blendm<mode>): Ditto.
9278 (avx512f_store<mode>_mask): Ditto.
9279 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
9280 (avx512f_storedqu<mode>_mask): Ditto.
9281 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
9283 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
9284 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
9285 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
9286 (avx512f_maskcmp<mode>3): Ditto.
9287 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
9288 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
9289 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
9290 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
9291 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
9292 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
9293 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
9294 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
9295 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
9296 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
9297 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
9298 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
9299 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
9300 (vec_extract_lo_<mode>_maskm): Ditto.
9301 (vec_extract_hi_<mode>_maskm): Ditto.
9302 (avx512f_vternlog<mode>_mask): Ditto.
9303 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
9304 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
9305 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
9306 (avx512f_<code>v8div16qi2_mask): Ditto.
9307 (avx512f_<code>v8div16qi2_mask_store): Ditto.
9308 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
9309 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
9310 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
9311 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
9312 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
9313 (*avx512pf_gatherpf<mode>df_mask): Ditto.
9314 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
9315 (*avx512pf_scatterpf<mode>df_mask): Ditto.
9316 (avx512cd_maskb_vec_dupv8di): Ditto.
9317 (avx512cd_maskw_vec_dupv16si): Ditto.
9318 (avx512f_vpermi2var<mode>3_maskz): Ditto.
9319 (avx512f_vpermi2var<mode>3_mask): Ditto.
9320 (avx512f_vpermi2var<mode>3_mask): Ditto.
9321 (avx512f_vpermt2var<mode>3_maskz): Ditto.
9322 (*avx512f_gathersi<mode>): Ditto.
9323 (*avx512f_gathersi<mode>_2): Ditto.
9324 (*avx512f_gatherdi<mode>): Ditto.
9325 (*avx512f_gatherdi<mode>_2): Ditto.
9326 (*avx512f_scattersi<mode>): Ditto.
9327 (*avx512f_scatterdi<mode>): Ditto.
9328 (avx512f_compress<mode>_mask): Ditto.
9329 (avx512f_compressstore<mode>_mask): Ditto.
9330 (avx512f_expand<mode>_mask): Ditto.
9331 * config/i386/subst.md (mask): Change k to Yk.
9332 (mask_scalar_merge): Ditto.
9335 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
9337 * doc/extend.texi (Vector Extensions): Document ?: in C++.
9339 2014-01-31 Richard Biener <rguenther@suse.de>
9342 * builtins.c (fold_builtin_memory_op): Make sure to not
9343 use a floating-point mode or a boolean or enumeral type for
9346 2014-01-30 DJ Delorie <dj@redhat.com>
9348 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
9349 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
9350 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
9351 whenever main() has an epilogue.
9353 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9355 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
9356 unused variable "field".
9357 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
9358 (vsx_mergeh_<mode>): Likewise.
9359 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
9360 (altivec_vmrghh): Likewise.
9361 (altivec_vmrghw): Likewise.
9362 (altivec_vmrglb): Likewise.
9363 (altivec_vmrglh): Likewise.
9364 (altivec_vmrglw): Likewise.
9365 (altivec_vspltb): Add missing uses.
9366 (altivec_vsplth): Likewise.
9367 (altivec_vspltw): Likewise.
9368 (altivec_vspltsf): Likewise.
9370 2014-01-30 Jakub Jelinek <jakub@redhat.com>
9373 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
9374 frame related instructions.
9376 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
9378 PR rtl-optimization/59959
9379 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
9380 any reload of register whose subreg is invalid.
9382 2014-01-30 Jakub Jelinek <jakub@redhat.com>
9384 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
9385 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
9386 Add missing return type - void.
9388 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9390 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
9391 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
9392 remove element index adjustment for endian (now handled in vsx.md
9394 (altivec_expand_vec_perm_const): Use
9395 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
9396 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
9397 (vsx_xxspltw_<mode>): Adjust element index for little endian.
9398 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
9399 define_expand and a new define_insn *altivec_vspltb_internal;
9400 adjust for -maltivec=be on a little endian target.
9401 (altivec_vspltb_direct): New.
9402 (altivec_vsplth): Divide into a define_expand and a new
9403 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
9404 little endian target.
9405 (altivec_vsplth_direct): New.
9406 (altivec_vspltw): Divide into a define_expand and a new
9407 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
9408 little endian target.
9409 (altivec_vspltw_direct): New.
9410 (altivec_vspltsf): Divide into a define_expand and a new
9411 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
9412 a little endian target.
9414 2014-01-30 Richard Biener <rguenther@suse.de>
9416 PR tree-optimization/59993
9417 * tree-ssa-forwprop.c (associate_pointerplus): Check we
9418 can propagate form the earlier stmt and avoid the transform
9419 when the intermediate result is needed.
9421 2014-01-30 Alangi Derick <alangiderick@gmail.com>
9423 * README.Portability: Fix typo.
9425 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
9427 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
9428 comparison_operator with ordered_comparison_operator.
9430 2014-01-30 Nick Clifton <nickc@redhat.com>
9432 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
9433 Rename to mn10300_store_multiple_regs.
9434 * config/mn10300/mn10300.c: Likewise.
9435 * config/mn10300/mn10300.md (store_movm): Fix typo: call
9436 store_multiple_regs.
9437 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
9438 Call mn10300_store_multiple_regs.
9440 2014-01-30 Nick Clifton <nickc@redhat.com>
9441 DJ Delorie <dj@redhat.com>
9443 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
9444 %fp 2 to keep registers after it properly word-aligned.
9445 (rl78_alloc_physical_registers_umul): Handle the case where both
9446 input operands are the same.
9448 2014-01-30 Richard Biener <rguenther@suse.de>
9450 PR tree-optimization/59903
9451 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
9454 2014-01-30 Jason Merrill <jason@redhat.com>
9457 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
9460 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
9462 2014-01-30 Richard Biener <rguenther@suse.de>
9464 PR tree-optimization/59951
9465 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
9467 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
9470 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
9471 SFmode to DFmode case.
9473 2014-01-29 DJ Delorie <dj@redhat.com>
9475 * config/msp430/msp430.opt (-minrt): New.
9476 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
9478 (ENDFILE_SPEC): Likewise.
9480 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
9482 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
9483 (estimate_function_body_sizes): Use it.
9485 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
9488 * dwarf2out.c (is_cxx_auto): New.
9489 (is_base_type): Use it.
9490 (gen_type_die_with_usage): Likewise.
9492 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9494 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
9495 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
9496 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
9497 -maltivec=be with LE targets.
9498 (vsx_mergeh_<mode>): Likewise.
9499 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
9500 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
9501 (altivec_vmrghb): Replace with define_expand and new
9502 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
9503 (altivec_vmrghb_direct): New define_insn.
9504 (altivec_vmrghh): Replace with define_expand and new
9505 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
9506 (altivec_vmrghh_direct): New define_insn.
9507 (altivec_vmrghw): Replace with define_expand and new
9508 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
9509 (altivec_vmrghw_direct): New define_insn.
9510 (*altivec_vmrghsf): Adjust for endianness.
9511 (altivec_vmrglb): Replace with define_expand and new
9512 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
9513 (altivec_vmrglb_direct): New define_insn.
9514 (altivec_vmrglh): Replace with define_expand and new
9515 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
9516 (altivec_vmrglh_direct): New define_insn.
9517 (altivec_vmrglw): Replace with define_expand and new
9518 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
9519 (altivec_vmrglw_direct): New define_insn.
9520 (*altivec_vmrglsf): Adjust for endianness.
9521 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
9522 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
9523 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
9524 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
9525 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
9526 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
9527 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
9528 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
9530 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
9532 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
9533 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
9536 2014-01-29 Richard Biener <rguenther@suse.de>
9538 PR tree-optimization/58742
9539 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
9540 associate_pointerplus_align.
9541 (associate_pointerplus_diff): New function.
9542 (associate_pointerplus): Likewise. Call associate_pointerplus_align
9543 and associate_pointerplus_diff.
9545 2014-01-29 Richard Biener <rguenther@suse.de>
9547 * lto-streamer.h (LTO_major_version): Bump to 3.
9548 (LTO_minor_version): Reset to 0.
9550 2014-01-29 Renlin Li <Renlin.Li@arm.com>
9552 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
9553 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
9554 (arm_file_start): Generate correct asm header for armv7ve.
9555 * config/arm/bpabi.h: Add multilib support for armv7ve.
9556 * config/arm/driver-arm.c: Change the architectures of cortex-a7
9557 and cortex-a15 to armv7ve.
9558 * config/arm/t-aprofile: Add multilib support for armv7ve.
9559 * doc/invoke.texi: Document -march=armv7ve.
9561 2014-01-29 Richard Biener <rguenther@suse.de>
9563 PR tree-optimization/58742
9564 * tree-ssa-forwprop.c (associate_plusminus): Return true
9565 if we changed sth, defer EH cleanup to ...
9566 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
9567 (simplify_mult): New function.
9569 2014-01-29 Jakub Jelinek <jakub@redhat.com>
9572 PR tree-optimization/59920
9573 * tree.c (build_common_builtin_nodes): Remove
9574 __builtin_setjmp_dispatcher initialization.
9575 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
9576 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
9577 instead of gsi_after_labels + manually skipping debug stmts.
9578 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
9579 ignore bbs with IFN_ABNORMAL_DISPATCHER.
9580 * tree-inline.c (copy_edges_for_bb): Remove
9581 can_make_abnormal_goto argument, instead add abnormal_goto_dest
9582 argument. Ignore computed_goto_p stmts. Don't call
9583 make_abnormal_goto_edges. If a call might need abnormal edges
9584 for non-local gotos, see if it already has an edge to
9585 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
9586 with true argument, don't do anything then, otherwise add
9587 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
9588 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
9590 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
9591 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
9592 (lower_stmt): Don't set data->calls_builtin_setjmp.
9593 (lower_builtin_setjmp): Adjust comment.
9594 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
9595 * tree-cfg.c (found_computed_goto): Remove.
9596 (factor_computed_gotos): Remove.
9597 (make_goto_expr_edges): Return bool, true for computed gotos.
9598 Don't call make_abnormal_goto_edges.
9599 (build_gimple_cfg): Don't set found_computed_goto, don't call
9600 factor_computed_gotos.
9601 (computed_goto_p): No longer static.
9602 (make_blocks): Don't set found_computed_goto.
9603 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
9604 (make_edges): If make_goto_expr_edges returns true, push bb
9605 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
9606 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
9607 vector. Record mapping between bbs and OpenMP regions if there
9608 are any, adjust make_gimple_omp_edges caller. Call
9609 handle_abnormal_edges.
9610 (make_abnormal_goto_edges): Remove.
9611 * tree-cfg.h (make_abnormal_goto_edges): Remove.
9612 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
9613 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
9614 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
9615 * internal-fn.def (ABNORMAL_DISPATCHER): New.
9616 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
9617 filling *region also set *region_idx to (*region)->entry->index.
9620 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
9621 For REGs set ORIGINAL_REGNO.
9623 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
9625 * doc/md.texi: Mention that a target shouldn't implement
9626 vec_widen_(s|u)mul_even/odd pair if it is less efficient
9629 2014-01-29 Jakub Jelinek <jakub@redhat.com>
9631 PR tree-optimization/59594
9632 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
9633 a copy of the datarefs vector rather than the vector itself.
9635 2014-01-28 Jason Merrill <jason@redhat.com>
9638 * dwarf2out.c (auto_die): New static.
9639 (gen_type_die_with_usage): Handle C++1y 'auto'.
9640 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
9643 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
9646 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
9647 (SPEC_X32): Likewise.
9648 (SPEC_64): Likewise.
9649 * config/i386/i386.c (ix86_option_override_internal): Turn off
9650 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
9652 (x86_file_start): Output .code16gcc for TARGET_16BIT.
9653 * config/i386/i386.h (TARGET_16BIT): New macro.
9654 (TARGET_16BIT_P): Likewise.
9655 * config/i386/i386.opt: Add m16.
9656 * doc/invoke.texi: Document -m16.
9658 2014-01-28 Jakub Jelinek <jakub@redhat.com>
9660 PR preprocessor/59935
9661 * input.c (location_get_source_line): Bail out on when line number
9662 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
9664 2014-01-28 Richard Biener <rguenther@suse.de>
9666 PR tree-optimization/58742
9667 * tree-ssa-forwprop.c (associate_plusminus): Handle
9668 pointer subtraction of the form (T)(P + A) - (T)P.
9670 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9672 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
9675 2014-01-28 Richard Biener <rguenther@suse.de>
9678 2014-01-28 Richard Biener <rguenther@suse.de>
9680 PR rtl-optimization/45364
9681 PR rtl-optimization/59890
9682 * var-tracking.c (local_get_addr_clear_given_value): Handle
9683 already cleared slot.
9684 (val_reset): Handle not allocated local_get_addr_cache.
9685 (vt_find_locations): Use post-order on the inverted CFG.
9687 2014-01-28 Richard Biener <rguenther@suse.de>
9689 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
9691 2014-01-28 Richard Biener <rguenther@suse.de>
9693 PR rtl-optimization/45364
9694 PR rtl-optimization/59890
9695 * var-tracking.c (local_get_addr_clear_given_value): Handle
9696 already cleared slot.
9697 (val_reset): Handle not allocated local_get_addr_cache.
9698 (vt_find_locations): Use post-order on the inverted CFG.
9700 2014-01-28 Alan Modra <amodra@gmail.com>
9702 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
9703 * configure.ac <recursive call for build != host>: Define
9704 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
9705 and LD_FOR_BUILD too.
9706 * configure: Regenerate.
9708 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
9710 * config/i386/i386.c (get_builtin_code_for_version): Separate
9711 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
9712 Broadwell from Haswell.
9714 2014-01-27 Steve Ellcey <sellcey@mips.com>
9716 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
9717 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
9718 * config/mips/mips.c (mips_option_override): Change setting
9720 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
9721 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
9722 Change from Mask to Var.
9724 2014-01-27 Jeff Law <law@redhat.com>
9726 * ipa-inline.c (inline_small_functions): Fix typo.
9728 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
9730 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
9731 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
9732 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
9733 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
9734 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
9735 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
9736 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
9737 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
9738 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
9739 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
9740 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
9741 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
9742 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
9743 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
9744 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
9745 (_mm512_storeu_epi64): Ditto.
9746 (_mm512_cmpge_epi32_mask): Ditto.
9747 (_mm512_cmpge_epu32_mask): Ditto.
9748 (_mm512_cmpge_epi64_mask): Ditto.
9749 (_mm512_cmpge_epu64_mask): Ditto.
9750 (_mm512_cmple_epi32_mask): Ditto.
9751 (_mm512_cmple_epu32_mask): Ditto.
9752 (_mm512_cmple_epi64_mask): Ditto.
9753 (_mm512_cmple_epu64_mask): Ditto.
9754 (_mm512_cmplt_epi32_mask): Ditto.
9755 (_mm512_cmplt_epu32_mask): Ditto.
9756 (_mm512_cmplt_epi64_mask): Ditto.
9757 (_mm512_cmplt_epu64_mask): Ditto.
9758 (_mm512_cmpneq_epi32_mask): Ditto.
9759 (_mm512_cmpneq_epu32_mask): Ditto.
9760 (_mm512_cmpneq_epi64_mask): Ditto.
9761 (_mm512_cmpneq_epu64_mask): Ditto.
9762 (_mm512_expand_pd): Ditto.
9763 (_mm512_expand_ps): Ditto.
9764 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
9765 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
9766 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
9767 * config/i386/i386.c (ix86_builtins): Add
9768 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
9769 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
9770 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
9771 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
9772 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
9773 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
9774 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
9775 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
9776 IX86_BUILTIN_PMOVUSQW512_MEM.
9777 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
9778 __builtin_ia32_pmovsqd512mem_mask,
9779 __builtin_ia32_pmovqd512mem_mask,
9780 __builtin_ia32_pmovusqw512mem_mask,
9781 __builtin_ia32_pmovsqw512mem_mask,
9782 __builtin_ia32_pmovqw512mem_mask,
9783 __builtin_ia32_pmovusdw512mem_mask,
9784 __builtin_ia32_pmovsdw512mem_mask,
9785 __builtin_ia32_pmovdw512mem_mask,
9786 __builtin_ia32_pmovqb512mem_mask,
9787 __builtin_ia32_pmovusqb512mem_mask,
9788 __builtin_ia32_pmovsqb512mem_mask,
9789 __builtin_ia32_pmovusdb512mem_mask,
9790 __builtin_ia32_pmovsdb512mem_mask,
9791 __builtin_ia32_pmovdb512mem_mask.
9792 (bdesc_args): Add __builtin_ia32_expanddf512,
9793 __builtin_ia32_expandsf512.
9794 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
9795 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
9796 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
9797 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
9798 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
9799 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
9800 (avx512f_<code>v8div16qi2_mask_store): This.
9801 (avx512f_expand<mode>): New.
9803 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
9805 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
9807 (_mm512_mask_prefetch_i64gather_pd): Ditto.
9808 (_mm512_prefetch_i32scatter_pd): Ditto.
9809 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
9810 (_mm512_prefetch_i64scatter_pd): Ditto.
9811 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
9812 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
9813 (_mm512_mask_prefetch_i64gather_ps): Ditto.
9814 (_mm512_prefetch_i32scatter_ps): Ditto.
9815 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
9816 (_mm512_prefetch_i64scatter_ps): Ditto.
9817 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
9818 * config/i386/i386-builtin-types.def: Define
9819 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
9820 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
9821 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
9822 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
9823 IX86_BUILTIN_SCATTERPFQPD.
9824 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
9825 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
9826 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
9827 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
9828 __builtin_ia32_scatterpfqps.
9829 (ix86_expand_builtin): Expand new built-ins.
9830 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
9831 fix memory access data type.
9832 (*avx512pf_gatherpf<mode>_mask): Ditto.
9833 (*avx512pf_gatherpf<mode>): Ditto.
9834 (avx512pf_scatterpf<mode>): Ditto.
9835 (*avx512pf_scatterpf<mode>_mask): Ditto.
9836 (*avx512pf_scatterpf<mode>): Ditto.
9837 (GATHER_SCATTER_SF_MEM_MODE): New.
9838 (avx512pf_gatherpf<mode>df): Ditto.
9839 (*avx512pf_gatherpf<mode>df_mask): Ditto.
9840 (*avx512pf_scatterpf<mode>df): Ditto.
9842 2014-01-27 Jakub Jelinek <jakub@redhat.com>
9845 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
9846 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
9849 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
9851 * common/config/arm/arm-common.c
9852 (arm_rewrite_mcpu): Handle multiple names.
9854 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
9856 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
9858 * gimple-builder.h (create_gimple_tmp): Delete.
9860 2014-01-27 Christian Bruel <christian.bruel@st.com>
9862 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
9865 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
9867 * config/pa/pa.md (call): Generate indirect long calls to non-local
9868 functions when outputing 32-bit code.
9869 (call_value): Likewise except for special call to buggy powf function.
9871 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
9872 portable runtime and PIC indirect calls.
9873 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
9874 and PIC call sequences. Use ldo instead of blr to set return register
9875 in PIC call sequence.
9877 2014-01-25 Walter Lee <walt@tilera.com>
9879 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
9880 avoid clobbering a live register.
9882 2014-01-25 Walter Lee <walt@tilera.com>
9884 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
9885 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
9886 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
9887 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
9889 2014-01-25 Walter Lee <walt@tilera.com>
9891 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
9892 arguments on even registers.
9893 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
9895 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
9896 (BIGGEST_ALIGNMENT): Ditto.
9897 (BIGGEST_FIELD_ALIGNMENT): Ditto.
9899 2014-01-25 Walter Lee <walt@tilera.com>
9901 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
9902 insns before bundling.
9903 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
9905 2014-01-25 Walter Lee <walt@tilera.com>
9907 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
9908 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
9909 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
9911 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
9913 * config/mips/constraints.md (kl): Delete.
9914 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
9915 define expands, using...
9916 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
9917 instructions for MIPS16.
9918 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
9919 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
9921 2014-01-25 Walter Lee <walt@tilera.com>
9923 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
9927 2014-01-25 Walter Lee <walt@tilera.com>
9929 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
9930 (TARGET_EXPAND_TO_RTL_HOOK): Define.
9932 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
9934 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
9937 2014-01-25 Jakub Jelinek <jakub@redhat.com>
9939 * print-rtl.c (in_call_function_usage): New var.
9940 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
9941 EXPR_LIST mode as mode and not as reg note name.
9944 * cfgloopmanip.c (copy_loop_info): If
9945 loop->warned_aggressive_loop_optimizations, make sure
9946 the flag is set in target loop too.
9948 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
9950 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
9952 * builtins.def: Likewise.
9953 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
9954 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
9955 * ira.c (ira_setup_eliminable_regset): Likewise.
9956 * omp-low.c (gate_expand_omp): Likewise.
9957 (execute_lower_omp): Likewise.
9958 (diagnose_sb_0): Likewise.
9959 (gate_diagnose_omp_blocks): Likewise.
9960 (simd_clone_clauses_extract): Likewise.
9963 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9965 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
9966 correction for little endian...
9967 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
9970 2014-01-24 Jeff Law <law@redhat.com>
9972 PR tree-optimization/59919
9973 * tree-vrp.c (find_assert_locations_1): Do not register asserts
9974 for non-returning calls.
9976 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
9978 * common/config/aarch64/aarch64-common.c
9979 (aarch64_rewrite_mcpu): Handle multiple names.
9980 * config/aarch64/aarch64.h
9981 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
9983 2014-01-24 Dodji Seketeli <dodji@redhat.com>
9985 * input.c (add_file_to_cache_tab): Handle the case where fopen
9988 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
9991 * config/i386/i386.md (pushsf splitter): Get stack adjustment
9992 from push operand if code of push isn't PRE_DEC.
9994 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9997 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9998 -mquad-memory-atomic. Update -mquad-memory documentation to say
9999 it is only used for non-atomic loads/stores.
10001 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
10002 -mquad-memory or -mquad-memory-atomic switches.
10004 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
10005 -mquad-memory-atomic to ISA 2.07 support.
10007 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
10008 to separate support of normal quad word memory operations (ldq, stq)
10009 from the atomic quad word memory operations.
10011 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
10012 support to separate non-atomic quad word operations from atomic
10013 quad word operations. Disable non-atomic quad word operations in
10014 little endian mode so that we don't have to swap words after the
10015 load and before the store.
10016 (quad_load_store_p): Add comment about atomic quad word support.
10017 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
10018 options printed with -mdebug=reg.
10020 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
10021 -mquad-memory-atomic as the test for whether we have quad word
10022 atomic instructions.
10023 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
10024 or -mp8-vector are used, allow byte/half-word atomic operations.
10026 * config/rs6000/sync.md (load_lockedti): Insure that the address
10027 is a proper indexed or indirect address for the lqarx instruction.
10028 On little endian systems, swap the hi/lo registers after the lqarx
10030 (load_lockedpti): Use indexed_or_indirect_operand predicate to
10031 insure the address is valid for the lqarx instruction.
10032 (store_conditionalti): Insure that the address is a proper indexed
10033 or indirect address for the stqcrx. instruction. On little endian
10034 systems, swap the hi/lo registers before doing the stqcrx.
10036 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
10037 insure the address is valid for the stqcrx. instruction.
10039 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
10040 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
10041 type of quad memory support is available.
10043 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
10045 PR regression/59915
10046 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
10047 there is a danger of looping.
10049 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
10051 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10052 force flag_ira_loop_pressure if set via command line.
10054 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
10056 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
10057 (ashr_simd): New builtin handling DI mode.
10058 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
10059 (aarch64_sshr_simddi): New match pattern.
10060 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
10061 (vshrd_n_s64): Likewise.
10062 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
10064 2014-01-23 Nick Clifton <nickc@redhat.com>
10066 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
10067 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
10068 favour of mcu specific scripts.
10069 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
10072 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
10073 Alex Velenko <Alex.Velenko@arm.com>
10075 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
10076 (vaddv_s16): Likewise.
10077 (vaddv_s32): Likewise.
10078 (vaddv_u8): Likewise.
10079 (vaddv_u16): Likewise.
10080 (vaddv_u32): Likewise.
10081 (vaddvq_s8): Likewise.
10082 (vaddvq_s16): Likewise.
10083 (vaddvq_s32): Likewise.
10084 (vaddvq_s64): Likewise.
10085 (vaddvq_u8): Likewise.
10086 (vaddvq_u16): Likewise.
10087 (vaddvq_u32): Likewise.
10088 (vaddvq_u64): Likewise.
10089 (vaddv_f32): Likewise.
10090 (vaddvq_f32): Likewise.
10091 (vaddvq_f64): Likewise.
10092 (vmaxv_f32): Likewise.
10093 (vmaxv_s8): Likewise.
10094 (vmaxv_s16): Likewise.
10095 (vmaxv_s32): Likewise.
10096 (vmaxv_u8): Likewise.
10097 (vmaxv_u16): Likewise.
10098 (vmaxv_u32): Likewise.
10099 (vmaxvq_f32): Likewise.
10100 (vmaxvq_f64): Likewise.
10101 (vmaxvq_s8): Likewise.
10102 (vmaxvq_s16): Likewise.
10103 (vmaxvq_s32): Likewise.
10104 (vmaxvq_u8): Likewise.
10105 (vmaxvq_u16): Likewise.
10106 (vmaxvq_u32): Likewise.
10107 (vmaxnmv_f32): Likewise.
10108 (vmaxnmvq_f32): Likewise.
10109 (vmaxnmvq_f64): Likewise.
10110 (vminv_f32): Likewise.
10111 (vminv_s8): Likewise.
10112 (vminv_s16): Likewise.
10113 (vminv_s32): Likewise.
10114 (vminv_u8): Likewise.
10115 (vminv_u16): Likewise.
10116 (vminv_u32): Likewise.
10117 (vminvq_f32): Likewise.
10118 (vminvq_f64): Likewise.
10119 (vminvq_s8): Likewise.
10120 (vminvq_s16): Likewise.
10121 (vminvq_s32): Likewise.
10122 (vminvq_u8): Likewise.
10123 (vminvq_u16): Likewise.
10124 (vminvq_u32): Likewise.
10125 (vminnmv_f32): Likewise.
10126 (vminnmvq_f32): Likewise.
10127 (vminnmvq_f64): Likewise.
10129 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
10131 * config/aarch64/aarch64-simd.md
10132 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
10133 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
10134 (*aarch64_mul3_elt<mode>): Likewise.
10135 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
10136 (*aarch64_mul3_elt_to_64v2df): Likewise.
10137 (*aarch64_mla_elt<mode>): Likewise.
10138 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
10139 (*aarch64_mls_elt<mode>): Likewise.
10140 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
10141 (*aarch64_fma4_elt<mode>): Likewise.
10142 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
10143 (*aarch64_fma4_elt_to_64v2df): Likewise.
10144 (*aarch64_fnma4_elt<mode>): Likewise.
10145 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
10146 (*aarch64_fnma4_elt_to_64v2df): Likewise.
10147 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
10148 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
10149 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
10150 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
10151 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
10152 (aarch64_sqdmull_lane<mode>_internal): Likewise.
10153 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
10155 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
10157 * config/aarch64/aarch64-simd.md
10158 (aarch64_be_checked_get_lane<mode>): New define_expand.
10159 * config/aarch64/aarch64-simd-builtins.def
10160 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
10161 New builtin definition.
10162 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
10163 Use new safe be builtin.
10165 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
10167 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
10169 (aarch64_be_st1<mode>): Likewise.
10170 (aarch_ld1<VALL:mode>): Define_expand modified.
10171 (aarch_st1<VALL:mode>): Likewise.
10172 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
10173 (UNSPEC_ST1): Likewise.
10175 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
10177 * config/microblaze/microblaze.md: Add trap insn and attribute
10179 2014-01-23 Dodji Seketeli <dodji@redhat.com>
10181 PR preprocessor/58580
10182 * input.h (location_get_source_line): Take an additional line_size
10184 (void diagnostics_file_cache_fini): Declare new function.
10185 * input.c (struct fcache): New type.
10186 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
10187 New static constants.
10188 (diagnostic_file_cache_init, total_lines_num)
10189 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
10190 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
10191 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
10192 (get_next_line, read_next_line, goto_next_line, read_line_num):
10193 New static function definitions.
10194 (diagnostic_file_cache_fini): New function.
10195 (location_get_source_line): Take an additional output line_len
10196 parameter. Re-write using lookup_or_add_file_to_cache_tab and
10198 * diagnostic.c (diagnostic_finish): Call
10199 diagnostic_file_cache_fini.
10200 (adjust_line): Take an additional input parameter for the length
10201 of the line, rather than calculating it with strlen.
10202 (diagnostic_show_locus): Adjust the use of
10203 location_get_source_line and adjust_line with respect to their new
10204 signature. While displaying a line now, do not stop at the first
10205 null byte. Rather, display the zero byte as a space and keep
10206 going until we reach the size of the line.
10207 * Makefile.in: Add vec.o to OBJS-libcommon
10209 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
10210 Ilya Tocar <ilya.tocar@intel.com>
10212 * config/i386/avx512fintrin.h (_mm512_kmov): New.
10213 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
10214 (__builtin_ia32_kmov16): Ditto.
10215 * config/i386/i386.md (UNSPEC_KMOV): New.
10218 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
10220 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
10221 (_mm512_storeu_si512): Ditto.
10223 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
10226 * rtl.h (get_referenced_operands): Declare.
10227 * recog.c (get_referenced_operands): New function.
10228 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
10229 operands have been referenced when recording LO_SUM references.
10231 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
10233 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
10235 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
10237 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
10238 Enable for generic and recent AMD targets.
10240 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
10242 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
10243 ARG_SIZE note when adjustment was eliminated.
10245 2014-01-22 Jeff Law <law@redhat.com>
10247 PR tree-optimization/59597
10248 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
10249 in file. Accept new argument REGISTERING and use it to modify
10250 dump output appropriately.
10251 (register_jump_thread): Corresponding changes.
10252 (mark_threaded_blocks): Reinstate code to cancel unprofitable
10253 thread paths involving joiner blocks. Add code to dump cancelled
10254 jump threading paths.
10256 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
10258 PR rtl-optimization/59477
10259 * lra-constraints.c (inherit_in_ebb): Process call for living hard
10260 regs. Update reloads_num and potential_reload_hard_regs for all insns.
10262 2014-01-22 Tom Tromey <tromey@redhat.com>
10264 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
10266 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
10268 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
10270 PR rtl-optimization/59896
10271 * lra-constraints.c (process_alt_operands): Check unused note for
10272 matched operands of insn with no output reloads.
10274 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
10276 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
10277 (mips_move_from_gpr_cost): Likewise.
10279 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
10281 PR rtl-optimization/59858
10282 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
10283 ira_class_hard_regs_num.
10284 (process_alt_operands): Increase reject for dying matched operand.
10286 2014-01-21 Jakub Jelinek <jakub@redhat.com>
10289 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
10290 smaller than size, perform several stores or loads and stores
10291 at dst + count - size to store or copy all of size bytes, rather
10292 than just last modesize bytes.
10294 2014-01-20 DJ Delorie <dj@redhat.com>
10296 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
10297 that CLOBBERs are REGs before propogating their values.
10299 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
10301 PR middle-end/59789
10302 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
10303 (cgraph_inline_failed_type): New function.
10304 * cgraph.h (DEFCIFCODE): Add type.
10305 (cgraph_inline_failed_type_t): New enum.
10306 (cgraph_inline_failed_type): New prototype.
10307 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
10308 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
10309 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
10310 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
10311 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
10312 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
10313 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
10314 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
10315 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
10316 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
10317 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
10318 OPTIMIZATION_MISMATCH.
10319 * tree-inline.c (expand_call_inline): Emit errors during
10320 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
10322 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
10325 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
10326 mode attribute in insn output.
10328 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
10330 * output.h (output_constant): Delete.
10331 * varasm.c (output_constant): Make private.
10333 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
10335 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
10337 2014-01-20 Jakub Jelinek <jakub@redhat.com>
10339 PR middle-end/59860
10340 * tree.h (fold_builtin_strcat): New prototype.
10341 * builtins.c (fold_builtin_strcat): No longer static. Add len
10342 argument, if non-NULL, don't call c_strlen. Optimize
10343 directly into __builtin_memcpy instead of __builtin_strcpy.
10344 (fold_builtin_2): Adjust fold_builtin_strcat caller.
10345 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
10347 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
10349 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
10350 for SImode_address_operand operands, having only a REG argument.
10352 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
10354 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
10355 loader name using mbig-endian.
10356 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
10358 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
10360 * doc/invoke.texi (-march): Clarify documentation for AArch64.
10361 (-mtune): Likewise.
10364 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
10366 * config/aarch64/aarch64-protos.h
10367 (aarch64_cannot_change_mode_class_ptr): Declare.
10368 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
10369 aarch64_cannot_change_mode_class_ptr): New.
10370 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
10371 backend hook aarch64_cannot_change_mode_class.
10373 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
10375 * common/config/aarch64/aarch64-common.c
10376 (aarch64_handle_option): Don't handle any option order logic here.
10377 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
10378 selected_cpu, warn on architecture version mismatch.
10379 (aarch64_override_options): Fix parsing order for option strings.
10381 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10382 Iain Sandoe <iain@codesourcery.com>
10385 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
10386 warning. Amend comment to reflect current functionality.
10388 2014-01-20 Richard Biener <rguenther@suse.de>
10390 PR middle-end/59860
10391 * builtins.c (fold_builtin_strcat): Remove case better handled
10392 by tree-ssa-strlen.c.
10394 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
10396 * config/aarch64/aarch64.opt
10397 (mcpu, march, mtune): Make case-insensitive.
10399 2014-01-20 Jakub Jelinek <jakub@redhat.com>
10402 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
10403 if operands[1] is a REG or ZERO_EXTEND of a REG.
10405 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
10407 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
10409 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
10411 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
10412 long non-pic millicode calls.
10414 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10416 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
10418 2014-01-19 Kito Cheng <kito@0xlab.org>
10420 * builtins.c (expand_movstr): Check movstr expand done or fail.
10422 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
10423 H.J. Lu <hongjiu.lu@intel.com>
10426 * config/i386/i386.md (*lea<mode>): Zero-extend return register
10427 to DImode for zero-extended addresses.
10429 2014-01-19 Jakub Jelinek <jakub@redhat.com>
10431 PR rtl-optimization/57763
10432 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
10433 on the new indirect jump_insn and increment LABEL_NUSES (label).
10435 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
10439 * config.gcc (x86_archs): New variable.
10440 (x86_64_archs): Likewise.
10441 (x86_cpus): Likewise.
10442 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
10443 --with-arch/--with-cpu= options.
10444 Support --with-arch=/--with-cpu={nehalem,westmere,
10445 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
10447 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
10449 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
10450 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
10452 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
10454 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
10456 2014-01-18 Jakub Jelinek <jakub@redhat.com>
10459 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
10460 clear cpp_get_options (parse_in)->warn_unused_macros for
10461 ix86_target_macros_internal with cpp_define.
10463 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
10465 * jump.c (delete_related_insns): Keep (use (insn))s.
10466 * reorg.c (redundant_insn): Check for barriers too.
10468 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
10470 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
10472 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
10474 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
10475 call to $$dyncall when TARGET_LONG_CALLS is true.
10477 2014-01-17 Jeff Law <law@redhat.com>
10479 * ree.c (combine_set_extension): Temporarily disable test for
10480 changing number of hard registers.
10482 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
10484 PR middle-end/58125
10485 * ipa-inline-analysis.c (inline_free_summary):
10486 Do not free summary of aliases.
10488 2014-01-17 Jakub Jelinek <jakub@redhat.com>
10490 PR middle-end/59706
10491 * gimplify.c (gimplify_expr): Use create_tmp_var
10492 instead of create_tmp_var_raw. If cond doesn't have
10493 integral type, don't add the IFN_ANNOTATE builtin at all.
10495 2014-01-17 Martin Jambor <mjambor@suse.cz>
10498 * ipa-cp.c (prev_edge_clone): New variable.
10499 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
10500 Also resize prev_edge_clone vector.
10501 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
10502 (ipcp_edge_removal_hook): New function.
10503 (ipcp_driver): Register ipcp_edge_removal_hook.
10505 2014-01-17 Andrew Pinski <apinski@cavium.com>
10506 Steve Ellcey <sellcey@mips.com>
10509 * config/mips/mips.c (mips_print_operand): Check operand mode instead
10512 2014-01-17 Jeff Law <law@redhat.com>
10514 PR middle-end/57904
10515 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
10516 so that pass_ccp runs first.
10518 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
10520 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
10521 (ix86_adjust_cost): Use !TARGET_XXX.
10522 (do_reorder_for_imul): Likewise.
10523 (swap_top_of_ready_list): Likewise.
10524 (ix86_sched_reorder): Likewise.
10526 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
10528 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
10529 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
10530 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
10531 (intel_memset): New. Duplicate slm_memset.
10532 (intel_cost): New. Duplicate slm_cost.
10533 (m_INTEL): New macro.
10534 (processor_target_table): Add "intel".
10535 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
10536 with PROCESSOR_INTEL for "intel".
10537 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
10538 PROCESSOR_SILVERMONT.
10539 (ix86_issue_rate): Likewise.
10540 (ix86_adjust_cost): Likewise.
10541 (ia32_multipass_dfa_lookahead): Likewise.
10542 (swap_top_of_ready_list): Likewise.
10543 (ix86_sched_reorder): Likewise.
10544 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
10545 instead of TARGET_OPT_AGU.
10546 * config/i386/i386.h (TARGET_INTEL): New.
10547 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
10548 (processor_type): Add PROCESSOR_INTEL.
10549 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
10550 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
10552 2014-01-17 Marek Polacek <polacek@redhat.com>
10555 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
10558 2014-01-17 Richard Biener <rguenther@suse.de>
10560 PR tree-optimization/46590
10561 * opts.c (default_options_table): Add entries for
10562 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
10563 all enabled at -O1 but not for -Og.
10564 * common.opt (fbranch-count-reg): Remove Init(1).
10565 (fmove-loop-invariants): Likewise.
10566 (ftree-pta): Likewise.
10568 2014-01-17 Jakub Jelinek <jakub@redhat.com>
10570 * config/i386/i386.c (ix86_data_alignment): For compatibility with
10571 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
10572 decls to at least the GCC 4.8 used alignments.
10575 * tree-nested.c (convert_nonlocal_reference_stmt,
10576 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
10577 of GIMPLE_BIND stmts, adjust associated decls.
10579 2014-01-17 Richard Biener <rguenther@suse.de>
10581 PR tree-optimization/46590
10582 * vec.h (vec<>::bseach): New member function implementing
10583 binary search according to C89 bsearch.
10584 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
10585 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
10586 bitmap pointer again. Make accesses_in_loop a flat array.
10587 (mem_ref_obstack): New global.
10588 (outermost_indep_loop): Adjust for mem_ref->stored changes.
10589 (mark_ref_stored): Likewise.
10590 (ref_indep_loop_p_2): Likewise.
10591 (set_ref_stored_in_loop): New helper function.
10592 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
10593 (memref_free): Adjust.
10594 (record_mem_ref_loc): Simplify.
10595 (gather_mem_refs_stmt): Adjust.
10596 (sort_locs_in_loop_postorder_cmp): New function.
10597 (analyze_memory_references): Sort accesses_in_loop after
10598 loop postorder number.
10599 (find_ref_loc_in_loop_cmp): New function.
10600 (for_all_locs_in_loop): Find relevant cluster of locs in
10601 accesses_in_loop and iterate without recursion.
10602 (execute_sm): Avoid uninit warning.
10603 (struct ref_always_accessed): Simplify.
10604 (ref_always_accessed::operator ()): Likewise.
10605 (ref_always_accessed_p): Likewise.
10606 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
10607 loop postorder numbers here.
10608 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
10611 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
10614 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
10615 on decls for which assemble_alias has been called.
10617 2014-01-17 Nick Clifton <nickc@redhat.com>
10619 * config/msp430/msp430.opt: (mcpu): New option.
10620 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
10621 (msp430_option_override): Parse target_cpu. If the MCU name
10622 matches a generic string, clear target_mcu.
10623 (msp430_attr): Allow numeric interrupt values up to 63.
10624 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
10625 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
10627 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
10629 * config/msp430/msp430.md (popm): Use %J rather than %I.
10630 (addsi3): Use msp430_nonimmediate_operand for operand 2.
10631 (addhi_cy_i): Use immediate_operand for operand 2.
10632 * doc/invoke.texi: Document -mcpu option.
10634 2014-01-17 Richard Biener <rguenther@suse.de>
10636 PR rtl-optimization/38518
10637 * df.h (df_analyze_loop): Declare.
10638 * df-core.c: Include cfgloop.h.
10639 (df_analyze_1): Split out main part of df_analyze.
10640 (df_analyze): Adjust.
10641 (loop_inverted_post_order_compute): New function.
10642 (loop_post_order_compute): Likewise.
10643 (df_analyze_loop): New function avoiding whole-function
10644 postorder computes.
10645 * loop-invariant.c (find_defs): Use df_analyze_loop.
10646 (find_invariants): Adjust.
10647 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
10649 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
10651 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
10652 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
10654 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
10656 * ipa-ref.c (ipa_remove_stmt_references): Fix references
10657 traversal when removing references.
10659 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
10662 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
10664 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
10666 PR middle-end/56791
10667 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
10668 pushing a reload for an autoinc when we had previously reloaded an
10669 inner part of the address.
10671 2014-01-16 Jakub Jelinek <jakub@redhat.com>
10673 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
10675 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
10676 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
10677 when not giving up or versioning for alias only because of
10679 (vect_analyze_data_ref_dependences): Set to true.
10680 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
10682 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
10683 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
10686 PR middle-end/58344
10687 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
10690 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
10691 operand 0 predicate for gathers, use a new pseudo as subtarget.
10693 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
10695 PR middle-end/59609
10696 * lra-constraints.c (process_alt_operands): Add printing debug info.
10697 Check absence of input/output reloads for matched operands too.
10699 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
10701 PR rtl-optimization/59835
10702 * ira.c (ira_init_register_move_cost): Increase cost for
10705 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
10707 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
10709 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
10712 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
10713 non-register objects. Use gen_(high/low)part more consistently.
10716 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
10719 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
10720 endian support, remove tests for WORDS_BIG_ENDIAN.
10721 (p8_mfvsrd_3_<mode>): Likewise.
10722 (reload_gpr_from_vsx<mode>): Likewise.
10723 (reload_gpr_from_vsxsf): Likewise.
10724 (p8_mfvsrd_4_disf): Likewise.
10726 2014-01-16 Richard Biener <rguenther@suse.de>
10728 PR rtl-optimization/46590
10729 * lcm.c (compute_antinout_edge): Use postorder iteration.
10730 (compute_laterin): Use inverted postorder iteration.
10732 2014-01-16 Nick Clifton <nickc@redhat.com>
10734 PR middle-end/28865
10735 * varasm.c (output_constant): Return the number of bytes actually
10737 (output_constructor_array_range): Update the field size with the
10738 number of bytes emitted by output_constant.
10739 (output_constructor_regular_field): Likewise. Also do not
10740 complain if the total number of bytes emitted is now greater
10741 than the expected fieldpos.
10742 * output.h (output_constant): Update prototype and descriptive comment.
10744 2014-01-16 Marek Polacek <polacek@redhat.com>
10746 PR middle-end/59827
10747 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
10748 it is error_mark_node.
10750 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
10752 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
10753 VALID_AVX256_REG_OR_OI_MODE.
10755 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
10757 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
10758 current procedure should be profiled.
10760 2014-01-15 Andrew Pinski <apinski@cavium.com>
10762 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
10763 of moving from/to the STACK_REG register class.
10765 2014-01-15 Richard Henderson <rth@redhat.com>
10768 * reginfo.c (global_regs_decl): Globalize.
10769 * rtl.h (global_regs_decl): Declare.
10770 * ira.c (do_reload): Diagnose frame_pointer_needed and it
10771 reserved via global_regs.
10773 2014-01-15 Teresa Johnson <tejohnson@google.com>
10775 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
10777 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10779 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
10780 and vmulosh rather than call gen_vec_widen_smult_*.
10781 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
10782 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
10783 (vec_widen_smult_even_v16qi): Likewise.
10784 (vec_widen_umult_even_v8hi): Likewise.
10785 (vec_widen_smult_even_v8hi): Likewise.
10786 (vec_widen_umult_odd_v16qi): Likewise.
10787 (vec_widen_smult_odd_v16qi): Likewise.
10788 (vec_widen_umult_odd_v8hi): Likewise.
10789 (vec_widen_smult_odd_v8hi): Likewise.
10790 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
10791 vmuloub rather than call gen_vec_widen_umult_*.
10792 (vec_widen_umult_lo_v16qi): Likewise.
10793 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
10794 vmulosb rather than call gen_vec_widen_smult_*.
10795 (vec_widen_smult_lo_v16qi): Likewise.
10796 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
10797 rather than call gen_vec_widen_umult_*.
10798 (vec_widen_umult_lo_v8hi): Likewise.
10799 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
10800 rather than call gen_vec_widen_smult_*.
10801 (vec_widen_smult_lo_v8hi): Likewise.
10803 2014-01-15 Jeff Law <law@redhat.com>
10805 PR tree-optimization/59747
10806 * ree.c (find_and_remove_re): Properly handle case where a second
10807 eliminated extension requires widening a copy created for elimination
10808 of a prior extension.
10809 (combine_set_extension): Ensure that the number of hard regs needed
10810 for a destination register does not change when we widen it.
10812 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
10814 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
10815 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
10816 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
10817 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
10818 (avr-*-rtems*): Likewise.
10819 (bfin*-rtems*): Likewise.
10820 (moxie-*-rtems*): Likewise.
10821 (h8300-*-rtems*): Likewise.
10822 (i[34567]86-*-rtems*): Likewise.
10823 (lm32-*-rtems*): Likewise.
10824 (m32r-*-rtems*): Likewise.
10825 (m68k-*-rtems*): Likewise.
10826 (microblaze*-*-rtems*): Likewise.
10827 (mips*-*-rtems*): Likewise.
10828 (powerpc-*-rtems*): Likewise.
10829 (sh-*-rtems*): Likewise.
10830 (sparc-*-rtems*): Likewise.
10831 (sparc64-*-rtems*): Likewise.
10832 (v850-*-rtems*): Likewise.
10833 (m32c-*-rtems*): Likewise.
10835 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
10837 PR rtl-optimization/59511
10838 * ira.c (ira_init_register_move_cost): Use memory costs for some
10839 cases of register move cost calculations.
10840 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
10841 instead of BB frequency.
10842 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
10843 * lra-assigns.c (find_hard_regno_for): Ditto.
10845 2014-01-15 Richard Biener <rguenther@suse.de>
10847 PR tree-optimization/59822
10848 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
10849 (vectorizable_load): Use it to hoist defs of uses of invariant
10850 loads out of the loop.
10852 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
10853 Kugan Vivekanandarajah <kuganv@linaro.org>
10856 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
10859 2014-01-15 Richard Biener <rguenther@suse.de>
10861 PR rtl-optimization/59802
10862 * lcm.c (compute_available): Use inverted postorder to seed
10863 the initial worklist.
10865 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10868 * config/s390/s390.c (s390_preferred_reload_class): Don't return
10869 ADDR_REGS for invalid symrefs in non-PIC code.
10871 2014-01-15 Jakub Jelinek <jakub@redhat.com>
10874 * builtins.c (determine_block_size): Initialize *probable_max_size
10875 even if len_rtx is CONST_INT.
10877 2014-01-14 Andrew Pinski <apinski@cavium.com>
10879 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
10880 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
10881 (cortexa53_tunings): Likewise.
10882 (aarch64_sched_issue_rate): New function.
10883 (TARGET_SCHED_ISSUE_RATE): Define.
10885 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
10887 * ira-costs.c (find_costs_and_classes): Add missed
10888 ira_init_register_move_cost_if_necessary.
10890 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
10893 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
10895 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
10898 * config/i386/i386.c (type_natural_mode): Add a bool parameter
10899 to indicate if type is used for function return value. Warn ABI
10900 change if the vector mode isn't available for function return value.
10901 (ix86_function_arg_advance): Pass false to type_natural_mode.
10902 (ix86_function_arg): Likewise.
10903 (ix86_gimplify_va_arg): Likewise.
10904 (function_arg_32): Don't warn ABI change.
10905 (ix86_function_value): Pass true to type_natural_mode.
10906 (ix86_return_in_memory): Likewise.
10907 (ix86_struct_value_rtx): Removed.
10908 (TARGET_STRUCT_VALUE_RTX): Likewise.
10910 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
10912 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
10913 converting a conditional jump into a conditional return.
10915 2014-01-14 Richard Biener <rguenther@suse.de>
10917 PR tree-optimization/58921
10918 PR tree-optimization/59006
10919 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
10920 hoisting invariant stmts.
10921 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
10922 invariant loads on the preheader edge if possible.
10924 2014-01-14 Joey Ye <joey.ye@arm.com>
10926 * doc/plugin.texi (Building GCC plugins): Update to C++.
10928 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
10930 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
10931 (_mm_rcp28_round_ss): Ditto.
10932 (_mm_rsqrt28_round_sd): Ditto.
10933 (_mm_rsqrt28_round_ss): Ditto.
10934 (_mm_rcp28_sd): Ditto.
10935 (_mm_rcp28_ss): Ditto.
10936 (_mm_rsqrt28_sd): Ditto.
10937 (_mm_rsqrt28_ss): Ditto.
10938 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
10939 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
10940 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
10941 (IX86_BUILTIN_RCP28SD): Ditto.
10942 (IX86_BUILTIN_RCP28SS): Ditto.
10943 (IX86_BUILTIN_RSQRT28SD): Ditto.
10944 (IX86_BUILTIN_RSQRT28SS): Ditto.
10945 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
10946 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
10947 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
10948 (ix86_expand_special_args_builtin): Expand new FTYPE.
10949 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
10950 (srcp14<mode>): Make insn unary.
10951 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
10952 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
10953 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
10954 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
10955 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
10956 Fix rounding: make it SAE only.
10957 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
10959 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
10961 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
10962 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
10963 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
10964 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
10965 (round_saeonly_mask_scalar_operand4): Ditto.
10966 (round_saeonly_mask_scalar_op3): Ditto.
10967 (round_saeonly_mask_scalar_op4): Ditto.
10969 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10971 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10972 Implement -maltivec=be for vec_insert and vec_extract.
10974 2014-01-10 DJ Delorie <dj@redhat.com>
10976 * config/msp430/msp430.md (call_internal): Don't allow memory
10977 references with SP as the base register.
10978 (call_value_internal): Likewise.
10979 * config/msp430/constraints.md (Yc): New. For memory references
10980 that don't use SP as a base register.
10982 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
10983 "an integer without a # prefix"
10984 * config/msp430/msp430.md (epilogue_helper): Use it.
10986 2014-01-13 Jakub Jelinek <jakub@redhat.com>
10989 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
10990 AVX512F gather builtins.
10991 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
10992 on gather decls with INTEGER_TYPE masktype.
10993 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
10994 directly into the builtin rather than hoisting it before loop.
10996 PR tree-optimization/59387
10997 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
10998 (scev_const_prop): If folded_casts and type has undefined overflow,
10999 use force_gimple_operand instead of force_gimple_operand_gsi and
11000 for each added stmt if it is assign with
11001 arith_code_with_undefined_signed_overflow, call
11002 rewrite_to_defined_overflow.
11003 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
11004 gimple-fold.h instead.
11005 (arith_code_with_undefined_signed_overflow,
11006 rewrite_to_defined_overflow): Moved to ...
11007 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
11008 rewrite_to_defined_overflow): ... here. No longer static.
11009 Include gimplify-me.h.
11010 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
11011 rewrite_to_defined_overflow): New prototypes.
11013 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11015 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
11017 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
11019 * builtins.c (get_object_alignment_2): Minor tweak.
11020 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
11022 2014-01-13 Christian Bruel <christian.bruel@st.com>
11024 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
11025 optimized non constant lengths.
11027 2014-01-13 Jakub Jelinek <jakub@redhat.com>
11030 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
11031 load as __atomic_load_N if possible.
11033 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
11035 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
11037 (rs6000_expand_builtin): Adjust call.
11039 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
11042 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
11043 * config/rs6000/rs6000.c: Include target-globals.h.
11044 (rs6000_set_current_function): Instead of doing target_reinit
11045 unconditionally, use save_target_globals_default_opts and
11046 restore_target_globals.
11048 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
11050 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
11051 (rs6000_expand_builtin): Handle mffs and mtfsf.
11052 (rs6000_init_builtins): Define mffs and mtfsf.
11053 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
11054 (rs6000_mffs): New pattern.
11055 (rs6000_mtfsf): New pattern.
11057 2014-01-11 Bin Cheng <bin.cheng@arm.com>
11059 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
11060 Start narrowing with START. Apply candidate-use pair
11061 and check overall cost in narrowing.
11062 (iv_ca_prune): Pass new argument.
11064 2014-01-10 Jeff Law <law@redhat.com>
11066 PR middle-end/59743
11067 * ree.c (combine_reaching_defs): Ensure the defining statement
11068 occurs before the extension when optimizing extensions with
11069 different source and destination hard registers.
11071 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
11074 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
11075 vtables into the type inheritance graph.
11077 2014-01-10 Jakub Jelinek <jakub@redhat.com>
11079 PR rtl-optimization/59754
11080 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
11081 modes in the REGNO != REGNO case.
11083 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11085 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
11087 2014-01-10 Jakub Jelinek <jakub@redhat.com>
11089 PR tree-optimization/59745
11090 * tree-predcom.c (tree_predictive_commoning_loop): Call
11091 free_affine_expand_cache if giving up because components is NULL.
11093 * target-globals.c (save_target_globals): Allocate < 4KB structs using
11094 GC in payload of target_globals struct instead of allocating them on
11095 the heap and the larger structs separately using GC.
11096 * target-globals.h (struct target_globals): Make regs, hard_regs,
11097 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
11098 of GTY((skip)) and change type to void *.
11099 (reset_target_globals): Cast loads from those fields to corresponding
11102 2014-01-10 Steve Ellcey <sellcey@mips.com>
11105 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
11106 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
11107 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
11109 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
11112 * aarch64-modes.def (CC_Zmode): New flags mode.
11113 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
11114 represents an equality.
11115 (aarch64_get_condition_code): Handle CC_Zmode.
11116 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
11118 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11120 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
11121 extraction in good case.
11123 2014-01-10 Richard Biener <rguenther@suse.de>
11125 PR tree-optimization/59374
11126 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
11127 checking after SLP discovery. Mark stmts not participating
11128 in any SLP instance properly.
11130 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11132 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
11133 when handling a SET rtx.
11135 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11137 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
11138 (cortex-a57): Likewise.
11139 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
11141 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11143 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
11144 non-iwmmxt builtins.
11146 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
11150 * ipa-devirt.c record_target_from_binfo): Take as argument
11151 stack of binfos and lookup matching one for virtual inheritance.
11152 (possible_polymorphic_call_targets_1): Update.
11154 2014-01-10 Huacai Chen <chenhc@lemote.com>
11156 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
11157 kernel strings for Loongson-2E/2F/3A.
11159 2014-01-10 Jakub Jelinek <jakub@redhat.com>
11161 PR middle-end/59670
11162 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
11163 is_gimple_call before calling gimple_call_internal_p.
11165 2014-01-09 Steve Ellcey <sellcey@mips.com>
11167 * Makefile.in (TREE_FLOW_H): Remove.
11168 (TREE_SSA_H): Add file names from tree-flow.h.
11169 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
11170 * tree.h: Remove tree-flow.h reference.
11171 * hash-table.h: Remove tree-flow.h reference.
11172 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
11173 reference with tree-ssa-loop.h.
11175 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11177 * doc/invoke.texi: Add -maltivec={be,le} options, and document
11178 default element-order behavior for -maltivec.
11179 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
11180 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
11181 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
11182 when targeting big endian, at least for now.
11183 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
11185 2014-01-09 Jakub Jelinek <jakub@redhat.com>
11187 PR middle-end/47735
11188 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
11189 var satisfies use_register_for_decl, just take into account type
11190 alignment, rather than decl alignment.
11192 PR tree-optimization/59622
11193 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
11194 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
11195 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
11196 Don't devirtualize for inplace at all. For targets.length () == 1,
11197 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
11199 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
11201 * config/i386/i386.md (cpu): Remove the unused btver1.
11203 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
11205 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
11207 2014-01-09 Jakub Jelinek <jakub@redhat.com>
11210 * tree-core.h (struct target_globals): New forward declaration.
11211 (struct tree_target_option): Add globals field.
11212 * tree.h (TREE_TARGET_GLOBALS): Define.
11213 (prepare_target_option_nodes_for_pch): New prototype.
11214 * target-globals.h (struct target_globals): Define even if
11215 !SWITCHABLE_TARGET.
11216 * tree.c (prepare_target_option_node_for_pch,
11217 prepare_target_option_nodes_for_pch): New functions.
11218 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
11219 * config/i386/i386.c: Include target-globals.h.
11220 (ix86_set_current_function): Instead of doing target_reinit
11221 unconditionally, use save_target_globals_default_opts and
11222 restore_target_globals.
11224 2014-01-09 Richard Biener <rguenther@suse.de>
11226 PR tree-optimization/59715
11227 * tree-cfg.h (split_critical_edges): Declare.
11228 * tree-cfg.c (split_critical_edges): Export.
11229 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
11231 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
11233 * cfgexpand.c (expand_stack_vars): Optionally disable
11234 asan stack protection.
11235 (expand_used_vars): Likewise.
11236 (partition_stack_vars): Likewise.
11237 * asan.c (asan_emit_stack_protection): Optionally disable
11238 after return stack usage.
11239 (instrument_derefs): Optionally disable memory access instrumentation.
11240 (instrument_builtin_call): Likewise.
11241 (instrument_strlen_call): Likewise.
11242 (asan_protect_global): Optionally disable global variables protection.
11243 * doc/invoke.texi: Added doc for new options.
11244 * params.def: Added new options.
11245 * params.h: Likewise.
11247 2014-01-09 Jakub Jelinek <jakub@redhat.com>
11249 PR rtl-optimization/59724
11250 * ifcvt.c (cond_exec_process_if_block): Don't call
11251 flow_find_head_matching_sequence with 0 longest_match.
11252 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
11253 non-active insns if !stop_after.
11254 (try_head_merge_bb): Revert 2014-01-07 changes.
11256 2014-01-08 Jeff Law <law@redhat.com>
11258 * ree.c (get_sub_rtx): New function, extracted from...
11259 (merge_def_and_ext): Here.
11260 (combine_reaching_defs): Use get_sub_rtx.
11262 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
11264 * cgraph.h (varpool_variable_node): Do not choke on null node.
11266 2014-01-08 Catherine Moore <clm@codesourcery.com>
11268 * config/mips/mips.md (simple_return): Attempt to use JRC
11270 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
11272 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
11274 PR rtl-optimization/59137
11275 * reorg.c (steal_delay_list_from_target): Call update_block for
11277 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
11279 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11281 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
11282 two duplicate entries.
11284 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
11287 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
11289 * config/mips/mips.c (mips_truncated_op_cost): New function.
11290 (mips_rtx_costs): Adjust test for BADDU.
11291 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
11293 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
11295 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
11296 (*baddu_si): ...this new pattern.
11298 2014-01-08 Jakub Jelinek <jakub@redhat.com>
11301 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
11303 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
11305 PR middle-end/57748
11306 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
11308 (expand_expr, expand_normal): Adjust.
11309 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
11310 inner_reference_p. Use inner_reference_p to expand inner references.
11311 (store_expr): Adjust.
11312 * cfgexpand.c (expand_call_stmt): Adjust.
11314 2014-01-08 Rong Xu <xur@google.com>
11316 * gcov-io.c (gcov_var): Move from gcov-io.h.
11317 (gcov_position): Ditto.
11318 (gcov_is_error): Ditto.
11319 (gcov_rewrite): Ditto.
11320 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
11321 only part to libgcc/libgcov.h.
11323 2014-01-08 Marek Polacek <polacek@redhat.com>
11325 PR middle-end/59669
11326 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
11328 2014-01-08 Marek Polacek <polacek@redhat.com>
11331 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
11333 2014-01-08 Jakub Jelinek <jakub@redhat.com>
11335 PR rtl-optimization/59649
11336 * stor-layout.c (get_mode_bounds): For BImode return
11337 0 and STORE_FLAG_VALUE.
11339 2014-01-08 Richard Biener <rguenther@suse.de>
11341 PR middle-end/59630
11342 * gimple.h (is_gimple_builtin_call): Remove.
11343 (gimple_builtin_call_types_compatible_p): New.
11344 (gimple_call_builtin_p): New overload.
11345 * gimple.c (is_gimple_builtin_call): Remove.
11346 (validate_call): Rename to ...
11347 (gimple_builtin_call_types_compatible_p): ... this and export. Also
11348 check return types.
11349 (validate_type): New static function.
11350 (gimple_call_builtin_p): New overload and adjust.
11351 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
11352 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
11353 (gimple_fold_stmt_to_constant_1): Likewise.
11354 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
11356 2014-01-08 Richard Biener <rguenther@suse.de>
11358 PR middle-end/59471
11359 * gimplify.c (gimplify_expr): Gimplify register-register type
11360 VIEW_CONVERT_EXPRs to separate stmts.
11362 2014-01-07 Jeff Law <law@redhat.com>
11364 PR middle-end/53623
11365 * ree.c (combine_set_extension): Handle case where source
11366 and destination registers in an extension insn are different.
11367 (combine_reaching_defs): Allow source and destination registers
11368 in extension to be different under limited circumstances.
11369 (add_removable_extension): Remove restriction that the
11370 source and destination registers in the extension are the same.
11371 (find_and_remove_re): Emit a copy from the extension's
11372 destination to its source after the defining insn if
11373 the source and destination registers are different.
11375 PR middle-end/59285
11376 * ifcvt.c (merge_if_block): If we are merging a block with more than
11377 one successor with a block with no successors, remove any BARRIER
11378 after the second block.
11380 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
11382 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
11384 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
11387 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
11388 for 14-bit register offsets when INT14_OK_STRICT is false.
11390 2014-01-07 Roland Stigge <stigge@antcom.de>
11391 Michael Meissner <meissner@linux.vnet.ibm.com>
11394 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11395 Only check TFmode for SPE constants. Don't check TImode or TDmode.
11397 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
11399 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
11402 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
11404 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
11405 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
11406 rtx is const0_rtx or not.
11408 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
11411 * target-globals.c (save_target_globals): Remove this_fn_optab
11413 * toplev.c: Include optabs.h.
11414 (target_reinit): Temporarily restore the global options if another
11415 set of options are in force.
11417 2014-01-07 Jakub Jelinek <jakub@redhat.com>
11419 PR rtl-optimization/58668
11420 * cfgcleanup.c (flow_find_cross_jump): Don't count
11421 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
11422 to determine what is counted.
11423 (flow_find_head_matching_sequence): Use active_insn_p to determine
11425 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
11427 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
11428 determine what is counted.
11430 PR tree-optimization/59643
11431 * tree-predcom.c (split_data_refs_to_components): If one dr is
11432 read and one write, determine_offset fails and the write isn't
11433 in the bad component, just put the read into the bad component.
11435 2014-01-07 Mike Stump <mikestump@comcast.net>
11436 Jakub Jelinek <jakub@redhat.com>
11439 * tree-core.h (struct tree_optimization_option): Change optabs
11440 type from unsigned char * to void *.
11441 * optabs.c (init_tree_optimization_optabs): Adjust
11442 TREE_OPTIMIZATION_OPTABS initialization.
11444 2014-01-06 Jakub Jelinek <jakub@redhat.com>
11447 * config/i386/i386.h (struct machine_function): Add
11448 no_drap_save_restore field.
11449 * config/i386/i386.c (ix86_save_reg): Use
11450 !cfun->machine->no_drap_save_restore instead of
11451 crtl->stack_realign_needed.
11452 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
11453 this function clears frame_pointer_needed. Set
11454 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
11455 and DRAP reg is needed.
11457 2014-01-06 Marek Polacek <polacek@redhat.com>
11460 * doc/implement-c.texi: Mention that other integer types are
11461 permitted as bit-field types in strictly conforming mode.
11463 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
11465 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
11466 is newly allocated.
11468 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
11470 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
11472 2014-01-06 Martin Jambor <mjambor@suse.cz>
11475 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
11477 * ipa-prop.c (ipa_print_node_params): Fix indentation.
11479 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
11483 * var-tracking.c (add_stores): Preserve the value of the source even if
11484 we don't record the store.
11486 2014-01-06 Terry Guo <terry.guo@arm.com>
11488 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
11490 2014-01-05 Iain Sandoe <iain@codesourcery.com>
11493 * config/darwin.c (darwin_function_section): Adjust return values to
11494 correspond to optimisation changes made in r206070.
11496 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
11498 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
11499 from prefetch_block tune setting.
11500 (nocona_cost): Correct size of prefetch block to 64.
11502 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
11504 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
11505 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
11506 used to save the static chain register in the computation of the offset
11507 from which the FP registers need to be restored.
11509 2014-01-04 Jakub Jelinek <jakub@redhat.com>
11511 PR tree-optimization/59519
11512 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
11513 ICE if get_current_def (current_new_name) is already non-NULL, as long
11514 as it is a phi result of some other phi in *new_exit_bb that has
11517 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
11518 or vmovdqu* for misaligned_operand.
11519 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
11520 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
11521 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
11522 aligned_mem for AVX512F masked aligned load and store builtins and for
11523 non-temporal moves.
11525 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
11527 PR tree-optimization/59651
11528 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
11529 Address range for negative step should be added by TYPE_SIZE_UNIT.
11531 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
11533 * config/m68k/m68k.c (handle_move_double): Handle pushes with
11534 overlapping registers also for registers other than the stack pointer.
11536 2014-01-03 Marek Polacek <polacek@redhat.com>
11539 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
11542 2014-01-03 Jakub Jelinek <jakub@redhat.com>
11545 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
11548 * config/i386/i386.md (MODE_SIZE): New mode attribute.
11549 (push splitter): Use <P:MODE_SIZE> instead of
11550 GET_MODE_SIZE (<P:MODE>mode).
11551 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
11552 (mov -1, reg peephole2): Likewise.
11553 * config/i386/sse.md (*mov<mode>_internal,
11554 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
11555 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
11556 *<code><mode>3, *andnot<mode>3<mask_name>,
11557 <mask_codefor><code><mode>3<mask_name>): Likewise.
11558 * config/i386/subst.md (mask_mode512bit_condition,
11559 sd_mask_mode512bit_condition): Likewise.
11561 2014-01-02 Xinliang David Li <davidxl@google.com>
11563 PR tree-optimization/59303
11564 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
11565 (dump_predicates): Better output format.
11566 (pred_equal_p): New function.
11567 (is_neq_relop_p): Ditto.
11568 (is_neq_zero_form_p): Ditto.
11569 (pred_expr_equal_p): Ditto.
11570 (pred_neg_p): Ditto.
11571 (simplify_pred): Ditto.
11572 (simplify_preds_2): Ditto.
11573 (simplify_preds_3): Ditto.
11574 (simplify_preds_4): Ditto.
11575 (simplify_preds): Ditto.
11576 (push_pred): Ditto.
11577 (push_to_worklist): Ditto.
11578 (get_pred_info_from_cmp): Ditto.
11579 (is_degenerated_phi): Ditto.
11580 (normalize_one_pred_1): Ditto.
11581 (normalize_one_pred): Ditto.
11582 (normalize_one_pred_chain): Ditto.
11583 (normalize_preds): Ditto.
11584 (normalize_cond_1): Remove function.
11585 (normalize_cond): Ditto.
11586 (is_gcond_subset_of): Ditto.
11587 (is_subset_of_any): Ditto.
11588 (is_or_set_subset_of): Ditto.
11589 (is_and_set_subset_of): Ditto.
11590 (is_norm_cond_subset_of): Ditto.
11591 (pred_chain_length_cmp): Ditto.
11592 (convert_control_dep_chain_into_preds): Type change.
11593 (find_predicates): Ditto.
11594 (find_def_preds): Ditto.
11595 (destroy_predicates_vecs): Ditto.
11596 (find_matching_predicates_in_rest_chains): Ditto.
11597 (use_pred_not_overlap_with_undef_path_pred): Ditto.
11598 (is_pred_expr_subset): Ditto.
11599 (is_pred_chain_subset_of): Ditto.
11600 (is_included_in): Ditto.
11601 (is_superset_of): Ditto.
11603 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
11605 Update copyright years.
11607 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
11609 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
11610 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
11611 config/arc/arc.md, config/arc/arc.opt,
11612 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
11613 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
11614 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
11615 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
11616 config/linux-protos.h, config/linux.c, config/winnt-c.c,
11617 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
11618 vtable-verify.c, vtable-verify.h: Use the standard form for the
11621 2014-01-02 Tobias Burnus <burnus@net-b.de>
11623 * gcc.c (process_command): Update copyright notice dates.
11624 * gcov-dump.c: Ditto.
11626 * doc/cpp.texi: Bump @copying's copyright year.
11627 * doc/cppinternals.texi: Ditto.
11628 * doc/gcc.texi: Ditto.
11629 * doc/gccint.texi: Ditto.
11630 * doc/gcov.texi: Ditto.
11631 * doc/install.texi: Ditto.
11632 * doc/invoke.texi: Ditto.
11634 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11636 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
11638 2014-01-01 Jakub Jelinek <jakub@redhat.com>
11640 * config/i386/sse.md (*mov<mode>_internal): Guard
11641 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
11643 PR rtl-optimization/59647
11644 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
11645 new_rtx into UNSIGNED_FLOAT rtxes.
11647 Copyright (C) 2014 Free Software Foundation, Inc.
11649 Copying and distribution of this file, with or without modification,
11650 are permitted in any medium without royalty provided the copyright
11651 notice and this notice are preserved.