1 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
5 ZERO_EXTEND and SIGN_EXTEND better.
7 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
8 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
10 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
13 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
14 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
16 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
17 costs when costing loads and stores to memory.
19 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
20 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
22 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
25 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
29 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
30 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
32 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
34 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
36 (aarch64_rtx_mult_cost): New.
37 (aarch64_rtx_costs): Use it, refactor as appropriate.
39 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
40 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
42 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
43 emit instructions, return number of instructions which would
45 (aarch64_add_constant): Update call to aarch64_build_constant.
46 (aarch64_output_mi_thunk): Likewise.
47 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost
50 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
52 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
53 (TARGET_RTX_COSTS): Call it.
55 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
57 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
58 (cortexa57_vector_cost): Likewise.
59 (cortexa57_tunings): Use them.
61 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
63 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
64 (cpu_addrcost_table): Use it.
65 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
66 (aarch64_address_cost): Rewrite using aarch64_classify_address,
69 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
71 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
72 2015-06-26 Release Manager
76 2015-06-26 Jakub Jelinek <jakub@redhat.com>
78 * doc/cpp.texi: Update displayed copyright years.
79 * doc/cppinternals.texi: Likewise.
80 * doc/gcc.texi: Likewise.
81 * doc/gccint.texi: Likewise.
82 * doc/gcov.texi: Likewise.
83 * doc/install.texi: Likewise.
84 * doc/invoke.texi: Likewise.
86 * gcov-dump.c: Likewise.
89 2015-06-23 Matthias Klose <doko@ubuntu.com>
92 Backport from mainline r212178.
93 2014-06-30 Joseph Myers <joseph@codesourcery.com>
95 * var-tracking.c (add_stores): Return instead of asserting if old
96 and new values for conditional store are the same.
98 2015-06-23 Ludovic Courtès <ludo@gnu.org>
101 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
102 '-dynamic-linker' within %{!shared: ...}.
104 2015-06-22 Vladimir Makarov <vmakarov@redhat.com>
107 * lra-lives.c (process_bb_lives): Check insn copying the same
108 reload pseudo and don't create a copy for it.
110 2015-06-19 Christophe Lyon <christophe.lyon@linaro.org>
112 Backport from mainline r215707.
113 2014-09-30 David Sherwood <david.sherwood@arm.com>
115 * ira-int.h (ira_allocno): Add "wmode" field.
116 * ira-build.c (create_insn_allocnos): Add new "parent" function
118 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
119 that cannot be accessed in wmode.
121 2015-06-18 Jakub Jelinek <jakub@redhat.com>
123 PR tree-optimization/66233
124 * fold-const.c (fold_unary_loc): Don't handle vector types.
126 * tree-ssa-forwprop.c (combine_conversions): Likewise.
128 2015-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
131 * config/aarch64/aarch64.c (TARGET_RELAXED_ORDERING): Define.
133 2015-06-16 Richard Biener <rguenther@suse.de>
136 2015-06-01 Richard Biener <rguenther@suse.de>
138 Backport from mainline
139 2015-05-26 Michael Matz <matz@suse.de>
142 * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
143 STMT_VINFO_VEC_STMT, also with SLP.
145 2015-05-22 Richard Biener <rguenther@suse.de>
147 PR tree-optimization/66251
148 * tree-vect-stmts.c (vectorizable_conversion): Properly
149 set STMT_VINFO_VEC_STMT even for the SLP case.
151 2015-06-16 Christophe Lyon <christophe.lyon@linaro.org>
153 Backported from mainline r217076.
154 2014-11-04 Michael Collison <michael.collison@linaro.org>
156 * config/aarch64/iterators.md (lconst_atomic): New mode attribute
157 to support constraints for CONST_INT in atomic operations.
158 * config/aarch64/atomics.md
159 (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
160 (atomic_nand<mode>): Likewise.
161 (atomic_fetch_<atomic_optab><mode>): Likewise.
162 (atomic_fetch_nand<mode>): Likewise.
163 (atomic_<atomic_optab>_fetch<mode>): Likewise.
164 (atomic_nand_fetch<mode>): Likewise.
166 2015-06-12 Michael Matz <matz@suse.de>
168 Backported from mainline
169 2014-10-23 Jakub Jelinek <jakub@redhat.com>
172 * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
173 (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
174 instead of only handling autoinc in dest if it is a MEM.
176 2015-06-12 Jakub Jelinek <jakub@redhat.com>
178 Backported from mainline
179 2014-12-15 Vladimir Makarov <vmakarov@redhat.com>
182 * ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.
184 2015-06-12 Jakub Jelinek <jakub@redhat.com>
187 Backported from mainline
188 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
190 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
191 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
193 2015-06-11 John David Anglin <danglin@gcc.gnu.org>
195 * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
198 2015-06-11 Eric Botcazou <ebotcazou@adacore.com>
201 * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
202 * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
203 (*addx_extend_sp32): Fix pasto.
204 (*subx_extend): Rename into...
205 (*subx_extend_sp32): ...this.
206 (*adddi3_extend_sp32): Add earlyclobber.
207 (*subdi3_insn_sp32): Likewise.
208 (*subdi3_extend_sp32): Likewise.
209 (*and_not_di_sp32): Likewise.
210 (*or_not_di_sp32): Likewise.
211 (*xor_not_di_sp32): Likewise.
212 (*negdi2_sp32): Likewise.
213 (*one_cmpldi2_sp32): Likewise.
215 2015-06-11 Richard Biener <rguenther@suse.de>
218 * dwarf2out.c (resolve_addr): Guard backport of PR66549
221 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
223 Backport from mainline:
224 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
227 * doc/md.texi (Machine Constraints): Document that on the PowerPC
228 if you use a constraint that targets a VSX register, you must use
229 %x<n> in the template.
231 2015-06-10 Jakub Jelinek <jakub@redhat.com>
234 * config/i386/i386.c (ix86_split_long_move): For collisions
235 involving direct tls segment refs, move the UNSPEC_TP possibly
236 wrapped in ZERO_EXTEND out of the address for lea, to each of
239 2015-06-08 Uros Bizjak <ubizjak@gmail.com>
241 Backport from mainline:
242 2015-06-03 Uros Bizjak <ubizjak@gmail.com>
245 * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
246 to determine current function ABI.
247 (ix86_function_value_regno_p): Ditto.
249 2015-06-08 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
251 * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
253 2015-06-03 Jakub Jelinek <jakub@redhat.com>
255 Backported from mainline
256 2015-05-13 Jakub Jelinek <jakub@redhat.com>
259 * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
260 make sure it is never noreturn, even when the task body does not
262 (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
263 right before GIMPLE_OMP_RETURN.
264 (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
265 for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to
266 GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
268 2015-05-04 Jakub Jelinek <jakub@redhat.com>
270 PR tree-optimization/65984
271 * ubsan.c: Include tree-cfg.h.
272 (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
273 stmt_could_throw_p test, rename can_throw variable to ends_bb.
275 2015-04-07 Jakub Jelinek <jakub@redhat.com>
278 * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
279 into signed HOST_WIDE_INT the same as negative bit_offset.
281 2015-03-23 Jakub Jelinek <jakub@redhat.com>
284 * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
286 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
287 REG_POINTER on *destptr after adjusting it for prologue size.
289 2015-03-18 Jakub Jelinek <jakub@redhat.com>
291 PR tree-optimization/65450
292 * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
294 (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
295 it instead of duplicate_ssa_name_ptr_info.
297 2015-03-16 Jakub Jelinek <jakub@redhat.com>
299 PR tree-optimization/65427
300 * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
302 (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
304 2015-03-10 Jakub Jelinek <jakub@redhat.com>
307 * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
309 (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
311 2015-02-18 Jakub Jelinek <jakub@redhat.com>
313 PR gcov-profile/64634
314 * tree-eh.c (frob_into_branch_around): Fix up typos
316 (lower_catch): Put eh_seq resulting from EH lowering of
317 the cleanup sequence after the cleanup rather than before
320 2015-06-03 Richard Biener <rguenther@suse.de>
322 Backport from mainline
323 2015-05-26 Michael Matz <matz@suse.de>
326 * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
327 STMT_VINFO_VEC_STMT, also with SLP.
329 2015-05-22 Richard Biener <rguenther@suse.de>
331 PR tree-optimization/66251
332 * tree-vect-stmts.c (vectorizable_conversion): Properly
333 set STMT_VINFO_VEC_STMT even for the SLP case.
335 2015-05-27 Richard Biener <rguenther@suse.de>
337 PR tree-optimization/66272
339 2014-08-15 Richard Biener <rguenther@suse.de>
341 PR tree-optimization/62031
342 * tree-data-ref.c (dr_analyze_indices): Do not set
343 DR_UNCONSTRAINED_BASE.
344 (dr_may_alias_p): All indirect accesses have to go the
345 formerly DR_UNCONSTRAINED_BASE path.
346 * tree-data-ref.h (struct indices): Remove
347 unconstrained_base member.
348 (DR_UNCONSTRAINED_BASE): Remove.
350 2015-05-13 Richard Biener <rguenther@suse.de>
352 PR tree-optimization/66123
353 * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
356 2015-06-02 Richard Biener <rguenther@suse.de>
359 * dwarf2out.c (lookup_context_die): New function.
360 (resolve_addr): Avoid forcing a full DIE for the
361 target of a DW_TAG_GNU_call_site during late compilation.
362 Instead create a stub DIE without a type if we have a
365 2015-03-23 Richard Biener <rguenther@suse.de>
367 PR tree-optimization/65518
368 * tree-vect-stmts.c (vectorizable_load): Reject single-element
369 interleaving cases we generate absymal code for.
371 2015-06-01 Dominik Vogt <vogt@linux.vnet.ibm.com>
373 Backport from mainline
374 2015-05-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
377 * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
380 2015-05-28 Mike Frysinger <vapier@gentoo.org>
382 * config/nios2/linux.h (CPP_SPEC): Define.
384 2015-05-28 Mike Frysinger <vapier@gentoo.org>
386 * config/microblaze/linux.h (CPP_SPEC): Define.
388 2015-05-28 Mike Frysinger <vapier@gentoo.org>
390 * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
391 -pthread is specified.
393 2015-05-27 John David Anglin <danglin@gcc.gnu.org>
396 * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
397 REG_EQUAL note when doing insert.
399 2015-05-26 Rohit Arul Raj <rohitarulraj@freescale.com>
401 Backported from mainline
402 2015-05-14 Rohit Arul Raj <rohitarulraj@freescale.com>
404 * varasm.c (output_constant_pool_1): Pass down alignment from
405 constant pool entry's descriptor to output_constant_pool_2.
406 (output_object_block): Add comment prior to call to
407 output_constant_pool_1.
409 2015-05-21 Sandra Loosemore <sandra@codesourcery.com>
411 Backport from mainline r223418:
412 * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
413 to build a biarch toolchain again.
415 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
417 * doc/invoke.texi: Add missing cpu types for march option: z196
420 2015-05-16 Uros Bizjak <ubizjak@gmail.com>
423 * config/alpha/alpha.c (get_aligned_mem): Also look for reload
424 replacements in memory addresses.
425 (get_unaligned_address): Ditto.
427 2015-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
429 Backport from mainline
430 2015-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
433 * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
434 REG before taking its REGNO.
436 2015-05-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
438 * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
440 * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
443 2015-05-12 Yvan Roux <yvan.roux@linaro.org>
445 Backport from mainline.
446 2015-05-05 Yvan Roux <yvan.roux@linaro.org>
448 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
449 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
450 * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
451 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
452 * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
453 * configure: Regenerate.
454 * configure.ac: Add --enable-fix-cortex-a53-843419 option.
455 * doc/install.texi (aarch64*-*-*): Document new
456 --enable-fix-cortex-a53-843419 option.
457 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
458 and -mno-fix-cortex-a53-843419 options.
460 2015-05-06 Uros Bizjak <ubizjak@gmail.com>
463 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
464 if rep_8byte stringop strategy was specified for 32-bit target.
466 2015-05-05 Jack Howarth <howarth.at.gcc@gmail.com>
468 Backport from mainline
469 2014-05-29 Mike Stump <mikestump@comcast.net>
471 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
472 post ld passes when lto is used.
474 2015-05-05 Shanyao Chen <chenshanyao@huawei.com>
476 Backported from mainline
477 2015-01-19 Jiong Wang <jiong.wang@arm.com>
478 Andrew Pinski <apinski@cavium.com>
481 * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
482 (ashl<mode>3): Don't expand if operands[2] is not constant.
484 2015-05-05 Peter Bergner <bergner@vnet.ibm.com>
486 Backport from mainline.
487 2015-04-27 Peter Bergner <bergner@vnet.ibm.com>
490 * config/rs6000/htm.md: Remove all define_expands.
491 (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
492 UNSPECV_HTM_TABORTWCI): Remove.
493 (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
494 (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
495 trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
496 (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
497 (tabortdc_internal, tabortdci_internal, tabortwc_internal,
498 tabortwci_internal): Remove define_insns.
499 (tabort<wd>c, tabort<wd>ci): New define_insns.
500 (tabort): Use gpc_reg_operand.
501 (tcheck): Remove operand.
502 (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
503 * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
505 * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
506 (BU_HTM_SPR1): Rename to BU_HTM_V1. Remove use of RS6000_BTC_SPR.
507 (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
508 tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
509 tsr, ttest): Pass in the RS6000_BTC_CR attribute.
510 (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
511 get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
512 (tcheck): Remove builtin argument.
513 * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
515 (htm_expand_builtin): Fix usage of expandedp. Disallow usage of the
516 tabortdc and tabortdci builtins when not in 64-bit mode.
517 Modify code to handle the loss of the HTM define_expands.
518 Emit code to copy the CR register to TARGET.
519 (htm_init_builtins): Modify code to handle the loss of the HTM
521 * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
522 (RS6000_BTC_64BIT): Likewise.
523 (RS6000_BTC_CR): New macro.
524 * doc/extend.texi: Update documentation for htm builtins.
526 2015-04-28 Tejas Belagod <tejas.belagod@arm.com>
528 Backport from Mainline
529 2014-11-20 Tejas Belagod <tejas.belagod@arm.com>
531 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
533 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
534 aarch64_cannot_force_const_mem, aarch64_classify_address,
535 aarch64_classify_symbolic_expression): Fixup call to
536 aarch64_classify_symbol.
537 (aarch64_classify_symbol): Add range-checking for
538 symbol + offset addressing for tiny and small models.
540 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
542 Backport from mainline
543 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
546 * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
547 save to independent variables use the Save attribute. This will
548 allow these options to be modified with the #pragma/attribute
550 (-mallow-movmisalign): Likewise.
551 (-mallow-df-permute): Likewise.
552 (-msched-groups): Likewise.
553 (-malways-hint): Likewise.
554 (-malign-branch-targets): Likewise.
555 (-mvectorize-builtins): Likewise.
556 (-msave-toc-indirect): Likewise.
558 * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
559 can be set via the #pragma/attribute target support.
560 (rs6000_opt_vars): Likewise.
561 (rs6000_inner_target_options): If VSX was set, also set
562 -mno-avoid-indexed-addresses.
564 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
566 Backport from mainline r222385
567 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
569 * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
570 asterisk from name so this can be generated directly.
571 (*altivec_stvx_<mode>_internal): Likewise.
572 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
573 that this is never called during or after reload/lra.
574 (rs6000_frame_related): Remove split_reg
575 argument and logic that references it.
576 (emit_frame_save): Remove last parameter from call to
577 rs6000_frame_related.
578 (rs6000_emit_prologue): Remove last parameter from eight calls to
579 rs6000_frame_related. Force generation of stvx instruction for
580 Altivec register saves. Remove split_reg handling, which is no
582 (rs6000_emit_epilogue): Force generation of lvx instruction for
583 Altivec register restores.
585 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
587 Backport from mainline r222362
588 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
590 * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
591 TARGET_CRYPTO to TARGET_P8_VECTOR>
592 (crypto_vpermxor_<mode>): Likewise.
593 * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
594 (BU_CRYPTO_3A): Likewise.
595 (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
596 (BU_CRYPTO_OVERLOAD_3A): New #define.
597 (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
601 (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
602 (VPERMXOR_V4SI): Likewise.
603 (VPERMXOR_V8HI): Likewise.
604 (VPERMXOR_V16QI): Likewise.
605 (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
606 BU_CRYPTO_OVERLOAD_2A.
607 (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
608 BU_CRYPTO_OVERLOAD_3A.
609 * config/rs6000/rs6000.opt (mcrypto): Change description of
612 Backport from mainline r222362
613 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
615 * config/rs6000/rs6000.opt (mcrypto): Change option description to
616 match category changes in ISA 2.07B.
618 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
620 Backport from mainline r222351
621 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
623 * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
625 (insn_is_swappable_p): Return 1 for a convert from double to
626 single precision when all of its uses are splats of BE element
629 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
631 Backport from mainline r222349
632 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
635 * config/rs6000/rs6000.c (rs6000_option_override_internal): For
636 VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
637 TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
639 (rs6000_builtin_mask_for_load): Return 0 for targets with
640 efficient unaligned VSX accesses so that the vectorizer will use
641 direct unaligned loads.
642 (rs6000_builtin_support_vector_misalignment): Always return true
643 for targets with efficient unaligned VSX accesses.
644 (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
645 stores on targets with efficient unaligned VSX accesses is almost
646 always the same as the cost of an aligned load or store, so model
648 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
649 unaligned vectors if we have efficient unaligned VSX accesses.
650 * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
653 2015-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
654 Jakub Jelinek <jakub@redhat.com>
656 Backport from mainline r222205
657 2015-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
658 Jakub Jelinek <jakub@redhat.com>
661 * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
662 subsequent SH_NONE operand does not overwrite an existing *special
664 (adjust_extract): Handle case where a vec_extract operation is
665 wrapped in a PARALLEL.
667 2015-04-16 Kirill Yukhin <kirill.yukhin@intel.com>
670 * config/i386/i386.c (fixup_modeless_constant): New.
671 (ix86_expand_args_builtin): Fixup modeless constant operand.
672 (ix86_expand_round_builtin): Ditto.
673 (ix86_expand_special_args_builtin): Ditto.
674 (ix86_expand_builtin): Ditto.
676 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
679 * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
680 Print bad_spills_num and insn_pseudos_num.
682 2015-04-09 Vladimir Makarov <vmakarov@redhat.com>
685 * lra-int.h (lra_bad_spill_regno_start): New.
686 * lra.c (lra_bad_spill_regno_start): New.
687 (lra): Set up lra_bad_spill_regno_start. Set up
688 lra_constraint_new_regno_start unconditionally.
689 * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
692 2015-04-07 Richard Biener <rguenther@suse.de>
694 Backport from mainline
695 2015-04-04 Richard Biener <rguenther@suse.de>
697 PR tree-optimization/64909
698 PR tree-optimization/65660
699 * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
700 to take a cost vector for scalar iteration cost.
701 (vect_get_single_scalar_iteration_cost): Likewise.
702 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
703 Compute the scalar iteration cost into a cost vector.
704 (vect_get_known_peeling_cost): Use the scalar cost vector to
705 account for the cost of the peeled iterations.
706 (vect_estimate_min_profitable_iters): Likewise.
707 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
710 2015-04-05 Yvan Roux <yvan.roux@linaro.org>
712 Backport from trunk r221867
713 2015-04-04 Vladimir Makarov <vmakarov@redhat.com>
716 * lra.c (lra): Stop updating lra_constraint_new_regno_start after
717 switching off inheritance.
719 2015-04-02 John David Anglin <danglin@gcc.gnu.org>
721 * config/pa/pa.c (pa_output_move_double): Directly handle register
722 indexed memory operand. Simplify handling of scaled register indexed
725 2015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com>
727 * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
729 (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
730 (s390_asm_output_function_label): Adapt to new signature of
731 s390_function_num_hotpatch_hw
732 Optimise the code generating assembler output.
733 Add comments to assembler file.
735 2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
737 Backport from mainline
738 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
741 * lra-constraints.c (original_subreg_reg_mode): New.
742 (simplify_operand_subreg): Try to simplify subreg of const. Use
743 original_subreg_reg_mode for it.
744 (swap_operands): Update original_subreg_reg_mode.
745 (curr_insn_transform): Set up original_subreg_reg_mode.
747 2015-03-26 Uros Bizjak <ubizjak@gmail.com>
750 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
751 Check operand 6 and operand 0 for equality.
752 (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
754 (vec_extract_hi_<mode>_maskm): Ditto.
756 2015-03-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
758 Backport of r214242, r214254, and bug fix patches from mainline
759 * config/rs6000/rs6000.c (context.h): New #include.
760 (tree-pass.h): Likewise.
761 (make_pass_analyze_swaps): New declaration.
762 (rs6000_option_override): Register swap-optimization pass.
763 (swap_web_entry): New class.
764 (special_handling_values): New enum.
765 (union_defs): New function.
766 (union_uses): Likewise.
767 (insn_is_load_p): Likewise.
768 (insn_is_store_p): Likewise.
769 (insn_is_swap_p): Likewise.
770 (rtx_is_swappable_p): Likewise.
771 (insn_is_swappable_p): Likewise.
772 (chain_purpose): New enum.
773 (chain_contains_only_swaps): New function.
774 (mark_swaps_for_removal): Likewise.
775 (swap_const_vector_halves): Likewise.
776 (adjust_subreg_index): Likewise.
777 (permute_load): Likewise.
778 (permute_store): Likewise.
779 (adjust_extract): Likewise.
780 (adjust_splat): Likewise.
781 (handle_special_swappables): Likewise.
782 (replace_swap_with_copy): Likewise.
783 (dump_swap_insn_table): Likewise.
784 (rs6000_analyze_swaps): Likewise.
785 (pass_data_analyze_swaps): New pass_data.
786 (pass_analyze_swaps): New class.
787 (pass_analyze_swaps::gate): New method.
788 (pass_analyze_swaps::execute): New method.
789 (make_pass_analyze_swaps): New function.
790 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
791 * df.h (web_entry_base): New class, replacing struct web_entry.
792 (web_entry_base::pred): New method.
793 (web_entry_base::set_pred): Likewise.
794 (web_entry_base::unionfind_root): Likewise.
795 (web_entry_base::unionfind_union): Likewise.
796 (unionfind_root): Delete external reference.
797 (unionfind_union): Likewise.
798 (union_defs): Likewise.
799 * web.c (web_entry_base::unionfind_root): Convert to method.
800 (web_entry_base::unionfind_union): Likewise.
801 (web_entry): New class.
802 (union_match_dups): Convert to use class structure.
803 (union_defs): Likewise.
804 (entry_register): Likewise.
805 (web_main): Likewise.
807 2015-03-26 Alan Modra <amodra@gmail.com>
810 Backport from trunk 211857 and 221445.
811 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
812 * config/rs6000/rs6000.md: Append `DONE' to preparation
813 statements of `bswap' pattern splitters.
815 2015-03-16 Alan Modra <amodra@gmail.com>
816 * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
817 Modify Z->r bswapdi splitter to use dest in place of scratch.
818 In r->Z and Z->r bswapdi splitter rename word_high, word_low
819 to word1, word2 and rearrange logic to suit.
820 (bswapdi2_64bit): Remove early clobber on Z->r alternative.
821 (bswapdi2_ldbrx): Likewise. Remove '??' on r->r.
822 (bswapdi2_32bit): Remove early clobber on Z->r alternative.
823 Add one '?' on r->r. Modify Z->r splitter to avoid need for
826 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
828 Backport from mainline
829 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
831 * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
833 2015-03-24 Uros Bizjak <ubizjak@gmail.com>
835 PR rtl-optimization/60851
836 * recog.c (constrain_operands): Accept a pseudo register before reload
837 for LRA enabled targets.
839 2015-03-23 Yvan Roux <yvan.roux@linaro.org>
841 Backport from trunk r220616.
842 2015-02-11 Martin Liska <mliska@suse.cz>
845 * cgraphunit.c (cgraph_node::expand_thunk): Do not create a return
846 value for call to a function that is noreturn.
848 2015-03-23 Yvan Roux <yvan.roux@linaro.org>
850 Backport from trunk r216841.
851 2014-10-29 Martin Liska <mliska@suse.cz>
854 * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
855 to local declarations.
856 * function.c (add_local_decl): Implementation moved from header file,
857 assert introduced for tree type.
858 * function.h: Likewise.
860 2015-03-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
862 Backport from mainline
863 2015-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
865 PR rtl-optimization/65235
866 * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
867 When first element of vec_concat is const_int, calculate its size
868 using second element.
870 2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
873 * expr.c (store_field): Do not do a direct block copy if the source is
874 a PARALLEL with BLKmode.
876 2015-03-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
878 Backport from mainline
879 * config/s390/s390.c (s390_reorg): Move code to output nops after label
881 (s390_asm_output_function_label): Likewise.
882 * config/s390/s390.c (s390_asm_output_function_label):
883 Fix function label alignment with -mhtopatch.
884 * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
885 UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
886 ("nop_2_byte"): New define_insn.
887 ("nop_4_byte"): Likewise.
888 ("nop_6_byte"): Likewise.
889 * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
890 * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
892 2015-03-12 Marek Polacek <polacek@redhat.com>
894 Backported from mainline
895 2015-03-11 Marek Polacek <polacek@redhat.com>
897 PR tree-optimization/65388
898 * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
900 2015-03-11 Georg-Johann Lay <avr@gjlay.de>
903 * configure.ac [avr]: Check as for option -mrmw.
904 * configure: Regenerate.
905 * config.in: Regenerate.
906 * config/avr/driver-avr.c (avr_device_to_as): Don't add -mrmw to
907 assembler options if not HAVE_AS_AVR_MRMW_OPTION.
909 2015-03-11 Marek Polacek <polacek@redhat.com>
911 Backported from mainline
912 2014-12-04 Marek Polacek <polacek@redhat.com>
915 * fold-const.c (fold_unary_loc): Perform the negation in A's type
916 when transforming ~ (A - 1) or ~ (A + -1) to -A.
918 2015-03-10 Yvan Roux <yvan.roux@linaro.org>
920 Backport from trunk r220489.
921 2015-02-06 Jakub Jelinek <jakub@redhat.com>
924 * cgraphunit.c (cgraph_node::expand_thunk): If
925 restype is not is_gimple_reg_type nor the thunk_fndecl
926 returns aggregate_value_p, set restmp to a temporary variable
929 2015-03-10 Jakub Jelinek <jakub@redhat.com>
932 * config/rs6000/t-linux: For powerpc64* target set
933 MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
935 2015-03-10 Oleg Endo <olegendo@gcc.gnu.org>
938 * config/sh/sh.md (*tst<mode>_t_zero): Remove insns.
940 2015-03-10 Alan Modra <amodra@gmail.com>
943 * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
944 to be single-arch by default. Set cpu_is_64bit for powerpc64
945 given --with-cpu=native.
946 * config/rs6000/t-fprules: Do not set default MULTILIB vars.
947 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
949 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
950 rs6000_isa_flags rather than TARGET_64BIT.
952 2015-03-05 Michael Meissner <meissner@linux.vnet.ibm.com>
955 2015-03-03 Michael Meissner <meissner@linux.vnet.ibm.com>
958 * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
959 processor type for 64-bit little endian PowerPC.
961 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
962 -mdebug=reg, print TARGET_DEFAULT. Fix logic to use
963 TARGET_DEFAULT if there is no default cpu. Fix -mdebug=reg
964 printing built-in mask so it does not pass NULL pointers.
966 * config/rs6000/rs6000-tables.opt: Regenerate.
968 * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
972 2015-01-19 David Edelsohn <dje.gcc@gmail.com>
974 * config/rs6000/default64.h: Include rs6000-cpus.def.
975 (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
976 (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
977 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
979 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
981 * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
982 pseudo-op to specify assembler dialect.
984 2015-03-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
986 Backport from mainline
987 2014-11-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
990 * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
992 * config/arm/arm.md (consttable_1): Make it TARGET_EITHER.
993 (consttable_2): Make it TARGET_EITHER and move HFmode handling from
995 (consttable_4): Move HFmode handling to consttable_2 pattern.
997 2015-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
1000 * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
1001 called for __stack_chk_guard symbol.
1003 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
1006 * config/avr/avr.c (context.h, tree-pass.h): Include them.
1007 (avr_pass_data_recompute_notes): New static variable.
1008 (avr_pass_recompute_notes): New class.
1009 (avr_register_passes): New static function.
1010 (avr_option_override): Call it.
1012 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
1014 * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
1015 to create a register in testing mode.
1017 2015-03-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
1019 Backport from mainline
1020 2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
1023 * config/arm/arm.c (callee_saved_reg_p): Define.
1024 (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
1025 register is callee saved instead of !call_used_regs[reg].
1026 (thumb1_compute_save_reg_mask): Likewise.
1028 2015-02-27 Richard Biener <rguenther@suse.de>
1031 * builtins.c (get_object_alignment_2): Make sure to re-apply
1032 the ANDed mask after recursing to its operand gets us a new
1033 misalignment bit position.
1035 2015-02-27 Andrew Pinski <apinski@cavium.com>
1036 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
1038 * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
1039 Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
1041 2015-02-27 Richard Biener <rguenther@suse.de>
1044 Backport from mainline
1045 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
1047 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
1050 2015-02-25 Peter Bergner <bergner@vnet.ibm.com>
1052 Backport from mainline
1053 2015-02-25 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
1055 * config/rs6000/htm.md (tcheck): Fix assembly encoding.
1057 2015-02-26 Matthew Fortune <matthew.fortune@imgtec.com>
1060 Backported from mainline: r213872, r217446, r217939, r219867
1062 * config.in [!USED_FOR_TARGET] (HAVE_AS_DOT_MODULE): Undefine.
1063 * config/mips/mips.h (FP_ASM_SPEC): New macro.
1064 (ASM_SPEC): Use FP_ASM_SPEC.
1065 * configure.ac (HAVE_AS_DOT_MODULE): Detect support for .module
1066 and FPXX extensions.
1067 * configure: Regenerate.
1069 2015-02-25 Jason Merrill <jason@redhat.com>
1071 * common.opt (-flifetime-dse): New.
1073 2015-02-25 Kai Tietz <ktietz@redhat.com>
1075 PR tree-optimization/61917
1076 * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
1077 that reduc_def_stmt is null.
1079 Merged from mainline
1081 * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
1082 (symtab::noninterposable_alias): Likewise.
1084 2015-02-25 Richard Biener <rguenther@suse.de>
1085 Kai Tietz <ktietz@redhat.com>
1087 Backported from mainline
1088 PR tree-optimization/61917
1089 * tree-vect-loop.c (vectorizable_reduction): Allow
1090 vect_internal_def without reduction to exit graceful.
1092 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
1095 * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
1096 only with NONDEBUG_INSN_P.
1098 2015-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
1100 Backport from mainline
1101 2015-02-23 Kaz Kojima <kkojima@gcc.gnu.org>
1104 * config/sh/sh.md (movsicc_true+3): Remove peephole.
1105 * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
1106 * config/sh/sh.c (replace_n_hard_rtx): Remove.
1108 2015-02-24 Richard Biener <rguenther@suse.de>
1110 Backport from mainline
1111 2015-02-11 Richard Biener <rguenther@suse.de>
1114 * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
1117 2015-02-13 Richard Biener <rguenther@suse.de>
1120 * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
1121 for LTO produced CUs.
1123 2015-02-16 Richard Biener <rguenther@suse.de>
1126 * varasm.c (default_file_start): For LTO produced units
1127 emit <artificial> as file directive.
1129 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
1131 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
1133 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
1135 Backport from mainline
1136 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
1139 * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
1140 instead of const_int 4294901760.
1142 2015-02-23 Richard Biener <rguenther@suse.de>
1144 Backport from mainline
1145 2014-11-19 Richard Biener <rguenther@suse.de>
1147 PR tree-optimization/63844
1148 * omp-low.c (fixup_child_record_type): Use a restrict qualified
1149 referece type for the receiver parameter.
1151 2014-11-27 Richard Biener <rguenther@suse.de>
1153 PR tree-optimization/61634
1154 * tree-vect-slp.c: Include gimple-walk.h.
1155 (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
1156 down the SLP tree for one scalar statement.
1157 (vect_detect_hybrid_slp_1): New walker function.
1158 (vect_detect_hybrid_slp_2): Likewise.
1159 (vect_detect_hybrid_slp): Properly handle pattern statements
1160 in a pre-scan over all loop stmts.
1162 2015-01-14 Richard Biener <rguenther@suse.de>
1164 PR tree-optimization/59354
1165 * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
1166 groups larger than the slp group size as having gaps.
1168 2015-02-10 Richard Biener <rguenther@suse.de>
1170 PR tree-optimization/64909
1171 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
1172 pass a scalar-stmt count estimate to the cost model.
1173 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
1175 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1177 Backport from mainline
1178 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1180 * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
1181 Mark operand 0 as earlyclobber in 2nd alternative.
1182 (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
1183 Write negated shift amount into QI lowpart operand 0 and use it
1185 (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
1187 2015-02-20 Georg-Johann Lay <avr@gjlay.de>
1189 Backport from 2015-02-20 trunk r220847.
1192 * config/avr/avr.md (pushhi_insn): New insn.
1193 (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
1195 2015-02-20 Richard Biener <rguenther@suse.de>
1197 Backport from mainline
1198 2015-01-12 Richard Biener <rguenther@suse.de>
1200 PR tree-optimization/64530
1201 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
1204 2015-02-13 Richard Biener <rguenther@suse.de>
1207 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
1210 2015-02-16 Richard Biener <rguenther@suse.de>
1212 PR tree-optimization/63593
1213 * tree-predcom.c (execute_pred_commoning_chain): Delay removing
1214 stmts and releasing SSA names until...
1215 (execute_pred_commoning): ... after processing all chains.
1217 2015-02-18 Richard Biener <rguenther@suse.de>
1219 PR tree-optimization/65063
1220 * tree-predcom.c (determine_unroll_factor): Return 1 if we
1221 have replaced looparound PHIs.
1223 2015-02-19 John David Anglin <danlgin@gcc.gnu.org>
1225 * config/pa/pa.c (pa_reloc_rw_mask): New function.
1226 (TARGET_ASM_RELOC_RW_MASK): Define.
1227 (pa_cannot_force_const_mem): Revert previous change.
1229 2015-02-19 Richard Biener <rguenther@suse.de>
1231 Backport from mainline
1232 2014-12-09 Richard Biener <rguenther@suse.de>
1235 * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
1237 2015-01-14 Richard Biener <rguenther@suse.de>
1239 PR tree-optimization/64493
1240 PR tree-optimization/64495
1241 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
1242 assign the proper vectorized PHI to the inner loop exit PHIs.
1244 2015-01-27 Richard Biener <rguenther@suse.de>
1246 PR tree-optimization/56273
1247 PR tree-optimization/59124
1248 PR tree-optimization/64277
1249 * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
1250 from the first VRP pass.
1252 2015-02-19 Richard Biener <rguenther@suse.de>
1254 Backport from mainline
1255 2015-01-15 Richard Biener <rguenther@suse.de>
1258 * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
1259 for MEM_REF access functions with the same base can never partially
1262 2015-02-17 Ilya Tocar <ilya.tocar@intel.com>
1264 Backported from mainline
1265 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
1268 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
1269 (vec_unpacks_hi_v16sf): Ditto.
1271 2015-02-15 John David Anglin <danglin@gcc.gnu.org>
1273 * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
1274 for all floading point loads and stores except those using a register
1276 * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
1279 2015-02-13 John David Anglin <danglin@gcc.gnu.org>
1281 * config/pa/constraints.md: Change "Q" and "T" constraints to memory
1283 * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
1284 symbolic references to data to be forced to constant memory on the
1287 2015-02-11 Jakub Jelinek <jakub@redhat.com>
1289 Backported from mainline
1290 2015-02-09 Jakub Jelinek <jakub@redhat.com>
1293 * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
1296 2015-02-11 Uros Bizjak <ubizjak@gmail.com>
1298 * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
1299 and 3 earlyclobber operands.
1301 2015-02-09 Dominik Vogt <vogt@linux.vnet.ibm.com>
1303 * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
1304 * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
1306 * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
1307 -mno-hotpatch options. Change syntax of -mhotpatch= option.
1308 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
1310 (s390_hotpatch_trampoline_halfwords_max): Renamed.
1311 (s390_hotpatch_hw_max): New name.
1312 (s390_hotpatch_trampoline_halfwords): Renamed.
1313 (s390_hotpatch_hw_before_label): New name.
1314 (get_hotpatch_attribute): Removed.
1315 (s390_hotpatch_hw_after_label): New name.
1316 (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
1318 (s390_attribute_table): Ditto.
1319 (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
1320 (s390_function_num_hotpatch_hw): New name.
1321 Remove special handling of inline functions and hotpatching.
1322 Return number of nops before and after the function label.
1323 (s390_can_inline_p): Removed.
1324 (s390_asm_output_function_label): Emit a configurable number of nops
1325 after the function label.
1326 (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
1327 (TARGET_CAN_INLINE_P) Removed.
1328 (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
1330 2015-02-05 Segher Boessenkool <segher@kernel.crashing.org>
1333 Backport from mainline
1334 * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
1335 (rs6000_stack_info): Add assert.
1336 (rs6000_output_savres_externs): New function, split off from...
1337 (rs6000_output_function_prologue): ... here. Do not call it for
1340 2015-02-04 Matthias Klose <doko@ubuntu.com>
1343 Backport from mainline
1344 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
1348 * ipa.c (symbol_table::remove_unreachable_nodes):
1349 Do not put abstract origins into boundary.
1351 2015-02-04 Uros Bizjak <ubizjak@gmail.com>
1353 Backport from mainline
1354 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
1357 * config/i386/predicates.md (address_no_seg_operand): Reject
1358 non-CONST_INT_P operands in invalid mode.
1360 Backport from mainline
1361 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
1363 * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
1364 address_operand 0. Rename from *prefetch_prefetchwt1_<mode>.
1365 * config/i386/predicates.md (address_no_seg_operand): Call
1366 address_operand with VOIDmode.
1367 (vsib_address_operand): Ditto.
1369 2015-02-01 H.J. Lu <hongjiu.lu@intel.com>
1371 Backported from mainline
1372 2015-01-24 H.J. Lu <hongjiu.lu@intel.com>
1374 * config/i386/driver-i386.c (host_detect_local_cpu): Check new
1375 Silvermont, Haswell, Broadwell and Knights Landing model numbers.
1376 * config/i386/i386.c (processor_model): Add
1377 M_INTEL_COREI7_BROADWELL.
1378 (arch_names_table): Add "broadwell".
1380 2015-02-01 Jakub Jelinek <jakub@redhat.com>
1382 Backported from mainline
1383 2015-01-27 Jakub Jelinek <jakub@redhat.com>
1385 PR rtl-optimization/61058
1386 * jump.c (cleanup_barriers): Update basic block boundaries
1387 if BLOCK_FOR_INSN is non-NULL on PREV.
1389 2015-01-26 Jakub Jelinek <jakub@redhat.com>
1392 * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
1393 with asterisk, skip the first character.
1395 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
1396 OPTION_MASK_QUAD_MEMORY_ATOMIC.
1398 2015-01-23 Jakub Jelinek <jakub@redhat.com>
1400 PR rtl-optimization/63637
1401 PR rtl-optimization/60663
1402 * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
1403 if elt->cost is MAX_COST for ASM_OPERANDS.
1404 (find_sets_in_insn): Fix up comment typo.
1405 (cse_insn): Don't set src_volatile for all non-volatile
1406 ASM_OPERANDS in PARALLELs, but just those with multiple outputs
1407 or with "memory" clobber. Set elt->cost to MAX_COST
1408 for ASM_OPERANDS in PARALLEL. Set src_elt->cost to MAX_COST
1409 if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
1412 * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
1415 2015-01-20 Jakub Jelinek <jakub@redhat.com>
1418 * dwarf2out.c (decl_piece_node): Don't put bitsize into
1419 mode if bitsize <= 0.
1420 (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
1421 dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
1422 sizes and positions.
1424 2015-01-29 Ilya Tocar <ilya.tocar@intel.com>
1426 * config/i386/avx2intrin.h (_mm256_bslli_epi128,
1427 _mm256_bsrli_epi128): New.
1428 * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
1430 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1432 * config/s390/s390.c (s390_memory_move_cost): Increase costs for
1435 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1437 * config/s390/s390.c (s390_register_move_cost): Increase costs for
1440 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
1442 Backport from mainline
1443 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
1446 * config/i386/i386.md (*movdi_internal): Also check operand 0
1447 to determine TYPE_LEA operand.
1448 (*movsi_internal): Ditto.
1450 Backport from mainline
1451 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
1453 * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
1456 2015-01-23 Jakub Jelinek <jakub@redhat.com>
1459 * omp-low.c (scan_sharing_clauses): Don't ignore
1460 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
1461 on target data/update constructs.
1463 2015-01-23 Wei Mi <wmi@google.com>
1465 Backported from trunk.
1466 2015-01-22 Wei Mi <wmi@google.com>
1468 PR rtl-optimization/64557
1469 * dse.c (record_store): Call get_addr for mem_addr.
1470 (check_mem_read_rtx): Likewise.
1472 2015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1474 * config/s390/s390.md (atomic code attribute): Fix typo "ior" ->
1477 2015-01-21 Wei Mi <wmi@google.com>
1479 Backported from trunk.
1480 2014-11-22 Jan Hubicka <hubicka@ucw.cz>
1483 * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
1484 as having abstract origin used.
1485 * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
1487 (clone_inlined_nodes): Copy abstract originflag.
1488 * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
1489 abstract origin node.
1491 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
1493 Backport from mainline
1494 * config/nios2/nios2.c (nios2_asm_file_end): Implement
1495 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
1497 (TARGET_ASM_FILE_END): Define.
1499 2015-01-15 Martin Liska <mliska@suse.cz>
1501 Backport from mainline
1502 2014-11-27 Richard Biener <rguenther@suse.de>
1505 * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
1506 and instead return false when !fstrict-aliasing.
1508 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
1510 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
1511 set the memory attributes in all cases but clear MEM_EXPR if need be.
1513 2015-01-14 Jakub Jelinek <jakub@redhat.com>
1515 Backported from mainline
1516 2015-01-12 Jakub Jelinek <jakub@redhat.com>
1519 * config/i386/i386.c (ix86_expand_prologue): Add
1520 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
1522 2015-01-13 Jakub Jelinek <jakub@redhat.com>
1524 PR rtl-optimization/64286
1525 * ree.c (combine_reaching_defs): Move part of comment earlier,
1526 remove !SCALAR_INT_MODE_P check.
1527 (add_removable_extension): Don't add vector mode
1528 extensions if all uses of the source register aren't the same
1531 2015-01-12 Jakub Jelinek <jakub@redhat.com>
1533 PR tree-optimization/64563
1534 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
1535 instead of != VR_VARYING.
1537 2015-01-14 Marek Polacek <polacek@redhat.com>
1539 Backport from mainline
1540 2015-01-13 Marek Polacek <polacek@redhat.com>
1543 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
1545 2015-01-13 Marc Glisse <marc.glisse@inria.fr>
1548 * tree.c (build_qualified_type): Use a canonical type for
1551 2015-01-13 Pat Haugen <pthaugen@us.ibm.com>
1553 Backport from mainline
1554 2014-12-20 Segher Boessenkool <segher@kernel.crashing.org>
1557 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
1558 input operands if only the second is inverted.
1559 * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
1560 Swap BOOL_REGS_OP1 and BOOL_REGS_OP2. Correct arguments to
1561 rs6000_split_logical.
1562 (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
1564 2015-01-13 Renlin Li <renlin.li@arm.com>
1566 Backport from mainline:
1567 2014-11-19 Renlin Li <renlin.li@arm.com>
1570 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
1572 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
1574 Backport form mainline
1575 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
1578 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
1580 2015-01-09 Jakub Jelinek <jakub@redhat.com>
1582 PR rtl-optimization/64536
1583 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
1586 2015-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
1588 Backport from mainline:
1589 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
1592 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
1593 correct reload handler if -m32 -mpowerpc64 is used.
1595 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1597 Backport from mainline:
1598 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1600 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
1602 * config/rs6000/t-rtems: Add e6500 multilibs.
1604 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1606 Backport from mainline:
1607 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1609 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
1612 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1614 Backport from mainline:
1615 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1617 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
1618 MULTILIB_EXCEPTIONS.
1620 2015-01-09 Renlin Li <renlin.li@arm.com>
1622 Backport from mainline:
1623 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1626 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
1627 of __ARM_SIZEOF_WCHAR_T.
1629 2015-01-08 Christian Bruel <christian.bruel@st.com>
1632 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
1634 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
1636 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
1637 instead of `m' constraint. Likewise for unnamed movb comparison
1638 patterns using reg_before_reload_operand predicate.
1639 * config/pa/predicates.md (reg_before_reload_operand): Tighten
1640 predicate to reject register index and LO_SUM DLT memory forms
1643 2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
1645 Backport from mainline:
1646 2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
1649 * config/i386/i386.c (ix86_function_type_abi): Issue an error
1650 when ms_abi attribute is used with x32.
1652 2014-12-27 Uros Bizjak <ubizjak@gmail.com>
1654 * config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
1655 Emit movshdup for SSE3 and shufps otherwise.
1656 (*vec_extractv2si_1): Do not emit punpckhdq and unpckhps.
1657 Emit pshufd for SSE2 and shufps otherwise.
1659 2014-12-24 Nick Clifton <nickc@redhat.com>
1661 Backport from mainline:
1662 2014-06-13 Nick Clifton <nickc@redhat.com>
1664 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
1665 requested alignment is active.
1666 (LABEL_ALIGN): Likewise.
1667 (LOOP_ALIGN): Likewise.
1669 2014-03-25 Nick Clifton <nickc@redhat.com>
1671 * config/rx/rx.c (rx_print_operand): Allow R operator to accept
1674 2014-12-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1676 Backport from mainline
1677 2014-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1679 PR rtl-optimization/64010
1680 * reload.c (push_reload): Before reusing a register contained
1681 in an operand as input reload register, ensure that it is not
1682 used in CALL_INSN_FUNCTION_USAGE.
1684 2014-12-15 Jakub Jelinek <jakub@redhat.com>
1687 * tsan.c (instrument_func_entry): Insert __tsan_func_entry
1688 call on edge from entry block to single succ instead
1689 of after labels of single succ of entry block.
1691 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
1693 Backported from mainline
1694 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
1696 PR rtl-optimization/64037
1697 * combine.c (setup_incoming_promotions): Pass the argument
1698 before any promotions happen to promote_function_mode.
1700 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
1702 Backported from mainline
1703 2014-12-06 H.J. Lu <hongjiu.lu@intel.com>
1706 * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
1707 for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
1709 2014-12-13 Jakub Jelinek <jakub@redhat.com>
1711 Backported from mainline
1712 2014-12-12 Jakub Jelinek <jakub@redhat.com>
1714 PR tree-optimization/64269
1715 * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
1716 len2 or diff are too large.
1718 2014-12-11 Eric Botcazou <ebotcazou@adacore.com>
1720 * doc/md.texi (Insn Lengths): Fix description of (pc).
1722 2014-12-11 Renlin Li <renlin.li@arm.com>
1724 Backport from mainline
1725 2014-12-11 Renlin Li <renlin.li@arm.com>
1727 * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
1729 (aarch64_override_options): Use selected_cpu's tuning.
1731 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1733 Backport from mainline
1734 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1736 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
1737 built-in definition.
1738 (XVCVUXDDP_SCALE): Likewise.
1739 (XVCVDPSXDS_SCALE): Likewise.
1740 (XVCVDPUXDS_SCALE): Likewise.
1741 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1742 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
1743 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
1744 VSX_BUILTIN_XVCVDPUXDS_SCALE.
1745 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
1747 * config/rs6000/rs6000.c (real.h): New include.
1748 (rs6000_scale_v2df): New function.
1749 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
1750 (UNSPEC_VSX_XVCVUXDDP): Likewise.
1751 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
1752 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
1753 (vsx_xvcvsxddp_scale): New define_expand.
1754 (vsx_xvcvsxddp): New define_insn.
1755 (vsx_xvcvuxddp_scale): New define_expand.
1756 (vsx_xvcvuxddp): New define_insn.
1757 (vsx_xvcvdpsxds_scale): New define_expand.
1758 (vsx_xvcvdpsxds): New define_insn.
1759 (vsx_xvcvdpuxds_scale): New define_expand.
1760 (vsx_xvcvdpuxds): New define_insn.
1761 * doc/extend.texi (vec_ctf): Add new prototypes.
1762 (vec_cts): Likewise.
1763 (vec_ctu): Likewise.
1764 (vec_splat): Likewise.
1765 (vec_div): Likewise.
1766 (vec_mul): Likewise.
1768 Backport from mainline
1769 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1771 * config/rs6000/altivec.h (vec_xl): New #define.
1772 (vec_xst): Likewise.
1773 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
1774 (XXSPLTD_V2DI): Likewise.
1775 (DIV_V2DI): Likewise.
1776 (UDIV_V2DI): Likewise.
1777 (MUL_V2DI): Likewise.
1778 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1779 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
1780 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
1781 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
1782 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
1783 (UNSPEC_VSX_DIVSD): Likewise.
1784 (UNSPEC_VSX_DIVUD): Likewise.
1785 (UNSPEC_VSX_MULSD): Likewise.
1786 (vsx_mul_v2di): New insn-and-split.
1787 (vsx_div_v2di): Likewise.
1788 (vsx_udiv_v2di): Likewise.
1789 (vsx_xxspltd_<mode>): New insn.
1791 Backport from mainline
1792 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1794 * config/rs6000/altivec.h (vec_cpsgn): New #define.
1795 (vec_mergee): Likewise.
1796 (vec_mergeo): Likewise.
1797 (vec_cntlz): Likewise.
1798 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
1799 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
1800 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
1802 * doc/extend.texi: Document various forms of vec_cpsgn,
1803 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
1804 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
1805 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
1806 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
1807 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
1809 Backport from mainline
1810 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1812 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
1813 (altivec_vsldoi_<mode>): Likewise.
1816 2014-12-10 Jakub Jelinek <jakub@redhat.com>
1818 PR tree-optimization/62021
1819 * omp-low.c (simd_clone_adjust_return_type): Use
1820 vector of pointer_sized_int_node types instead vector of pointer
1822 (simd_clone_adjust_argument_types): Likewise.
1824 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1826 Backport from mainline:
1827 2014-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1830 * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
1831 for BUILT_IN_POW when flag_errno_math is present.
1833 2014-12-10 Marek Polacek <polacek@redhat.com>
1835 Backport from mainline
1836 2014-12-10 Marek Polacek <polacek@redhat.com>
1838 PR tree-optimization/61686
1839 * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
1842 2014-12-09 David Edelsohn <dje.gcc@gmail.com>
1844 Backport from mainline
1845 2014-12-05 David Edelsohn <dje.gcc@gmail.com>
1847 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
1848 alignment to section name. Increase default alignment to
1851 2014-12-09 Uros Bizjak <ubizjak@gmail.com>
1855 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
1857 PR rtl-optimization/64037
1858 * combine.c (setup_incoming_promotions): Pass the argument
1859 before any promotions happen to promote_function_mode.
1861 2014-12-09 Richard Biener <rguenther@suse.de>
1863 PR tree-optimization/64191
1864 * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
1865 not relevant (nor are their uses).
1867 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
1869 Backport from mainline
1870 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
1873 * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
1875 2014-12-05 H.J. Lu <hongjiu.lu@intel.com>
1877 Backport from mainline
1878 2014-12-02 H.J. Lu <hongjiu.lu@intel.com>
1881 * config/i386/i386.c (decide_alg): Stop only if there aren't
1882 any usable algorithms.
1884 2014-12-05 H.J. Lu <hongjiu.lu@intel.com>
1886 Backport from mainline
1887 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
1889 PR rtl-optimization/64037
1890 * combine.c (setup_incoming_promotions): Pass the argument
1891 before any promotions happen to promote_function_mode.
1893 2014-12-04 Tobias Burnus <burnus@net-b.de>
1896 (ac_has_isl_schedule_constraints_compute_schedule):
1898 * graphite-clast-to-gimple.c: For ISL 0.14, include deprecate headers.
1899 * graphite-interchange.c: Ditto.
1900 * graphite-poly.c: Ditto.
1901 * graphite-sese-to-poly.c: Ditto.
1902 * graphite-optimize-isl.c (getScheduleForBandList): Ditto.
1903 Conditionally use ISL 0.13+ functions.
1904 * config.in: Regenerate.
1905 * configure: Regenerate.
1907 2014-12-04 Jakub Jelinek <jakub@redhat.com>
1910 * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1911 Handle COMPOUND_EXPR.
1913 2014-12-03 Jakub Jelinek <jakub@redhat.com>
1916 * expmed.c (expand_widening_mult): Return const0_rtx if
1919 2014-12-03 Martin Jambor <mjambor@suse.cz>
1922 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1923 type sizes before view_converting.
1925 2014-12-03 Shanyao Chen <chenshanyao@huawei.com>
1927 Backport from mainline
1928 2014-11-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1931 * config/arm/arm.md (*movhi_insn): Use right formatting
1934 2014-11-19 Felix Yang <felix.yang@huawei.com>
1935 Shanyao Chen <chenshanyao@huawei.com>
1938 * config/arm/arm.md (define_attr "arch"): Add v6t2.
1939 (define_attr "arch_enabled"): Add test for the above.
1940 (*movhi_insn_arch4): Add new alternative.
1942 2014-12-03 Renlin Li <Renlin.Li@arm.com>
1944 Backported from mainline
1945 2014-12-03 Renlin Li <Renlin.Li@arm.com>
1949 * ira.c (ira): Update preferred class.
1951 2014-12-02 Uros Bizjak <ubizjak@gmail.com>
1954 * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
1955 using post-reload splitter. Use peephole2 pass instead.
1956 (call_value_osf_tlsldm): Ditto.
1957 (TLS_CALL): New int iterator.
1958 (tls): New int attribute.
1959 (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
1960 and call_value_tlsldm using TLS_CALL int iterator.
1962 2014-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1965 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
1966 invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
1968 2014-12-01 Richard Biener <rguenther@suse.de>
1971 * tree.c (int_cst_hash_hash): Use TYPE_UID instead of
1972 htab_hash_pointer to not break PCH.
1974 2014-12-01 Martin Jambor <mjambor@suse.cz>
1977 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
1978 value of the argument to the type of the value in the condition.
1980 2014-11-28 Jakub Jelinek <jakub@redhat.com>
1982 Backported from mainline
1983 2014-11-27 Jakub Jelinek <jakub@redhat.com>
1986 * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
1987 Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
1988 not only if modifier is EXPAND_INITIALIZER, but whenever
1989 COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
1991 2014-11-19 Jakub Jelinek <jakub@redhat.com>
1993 PR tree-optimization/63915
1994 * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
1995 true instead of false as last argument to gsi_replace.
1998 * ubsan.c: Include tree-eh.h.
1999 (instrument_bool_enum_load): Handle loads that can throw.
2001 2014-10-31 Jakub Jelinek <jakub@redhat.com>
2003 PR rtl-optimization/63659
2004 * ree.c (update_reg_equal_equiv_notes): New function.
2005 (combine_set_extension, transform_ifelse): Use it.
2007 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2009 Backport from mainline.
2010 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2012 * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
2015 2014-11-26 Richard Biener <rguenther@suse.de>
2018 * tree-data-ref.c (split_constant_offset_1): Do not follow
2019 SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2021 2014-11-26 Richard Biener <rguenther@suse.de>
2023 Backport from mainline
2024 2014-11-26 Richard Biener <rguenther@suse.de>
2026 PR tree-optimization/62238
2027 * tree-predcom.c (ref_at_iteration): Unshare the expression
2028 before gimplifying it.
2030 2014-11-25 Richard Biener <rguenther@suse.de>
2032 PR tree-optimization/61927
2033 * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
2034 of group and pattern analysis to the one in GCC 4.8.
2036 2014-11-07 Richard Biener <rguenther@suse.de>
2038 PR tree-optimization/63605
2039 * fold-const.c (fold_binary_loc): Properly use element_precision
2040 for types that may not be scalar.
2042 2014-10-28 Richard Biener <rguenther@suse.de>
2045 * fold-const.c (fold_comparison): Properly guard simplifying
2046 against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
2048 2014-11-25 Rohit <rohitarulraj@freescale.com>
2051 * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
2052 added GCC hard register numbers for SPE high registers.
2054 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
2056 Backport from mainline
2057 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
2060 * config/sh/sh_optimize_sett_clrt.cc
2061 (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
2062 of void. Abort at complex edges.
2063 (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
2066 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
2068 Backport from mainline
2069 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
2073 * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
2074 Do not emit bitwise not insn. Emit logical not insn sequence instead.
2075 Adjust related comments throughout the file.
2077 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
2079 Backport from mainline
2080 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
2083 * config/sh/sh.c: Use signed char for signed field.
2085 2014-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2088 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
2089 the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
2092 2014-11-21 Richard Biener <rguenther@suse.de>
2094 PR tree-optimization/61750
2095 * tree-ssa-forwprop.c (simplify_vce): Verify type sizes
2096 match for the resulting VIEW_CONVERT_EXPR.
2098 2014-11-19 Uros Bizjak <ubizjak@gmail.com>
2101 * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
2102 Output "b" and "nb" suffix for FP mode.
2104 2014-11-19 Tom de Vries <tom@codesourcery.com>
2106 Backport from mainline
2107 PR tree-optimization/62167
2108 * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
2110 (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
2113 2014-11-16 Eric Botcazou <ebotcazou@adacore.com>
2115 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
2116 * doc/tm.texi: Regenerate.
2118 2014-11-14 Felix Yang <felix.yang@huawei.com>
2120 Backport from mainline
2121 2014-11-14 Felix Yang <felix.yang@huawei.com>
2122 Jiji Jiang <jiangjiji@huawei.com>
2124 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
2125 VALL mode iterator instead of VALLDI.
2127 2014-11-13 Teresa Johnson <tejohnson@google.com>
2129 PR tree-optimization/63841
2130 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
2132 2014-11-13 Christophe Lyon <christophe.lyon@linaro.org>
2134 Backport from mainline
2135 2014-11-02 Michael Collison <michael.collison@linaro.org>
2137 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
2138 to support vector modes.
2139 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
2141 2014-11-13 Eric Botcazou <ebotcazou@adacore.com>
2143 * doc/tm.texi.in (SELECT_CC_MODE): Update example.
2144 (REVERSIBLE_CC_MODE): Fix example.
2145 (REVERSE_CONDITION): Fix typo.
2146 * doc/tm.texi: Regenerate.
2148 2014-11-12 Jakub Jelinek <jakub@redhat.com>
2151 * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
2152 chain instead of node->indirect_calls.
2154 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
2157 * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
2158 smaller than 8 bytes.
2159 (sparc_function_arg_1): Tweak.
2160 (sparc_function_value_1): Tweak.
2162 2014-11-08 Eric Botcazou <ebotcazou@adacore.com>
2164 * config/arm/arm.c (arm_set_return_address): Mark the store as frame
2166 (thumb_set_return_address): Likewise.
2168 2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
2170 * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
2171 * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
2173 2014-11-07 Marek Polacek <polacek@redhat.com>
2175 Backported from mainline
2176 2014-10-23 Marek Polacek <polacek@redhat.com>
2178 * c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
2181 2014-11-06 John David Anglin <danglin@gcc.gnu.org>
2183 * config/pa/pa.md (trap): New insn. Add "trap" to attribute type.
2184 Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
2187 2014-11-06 Daniel Hellstrom <daniel@gaisler.com>
2189 * config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
2190 * doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
2191 * config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
2193 * config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
2194 * config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
2195 * config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
2196 * config/sparc/sparc.md (cpu): Add leon3v7.
2197 * config/sparc/sparc.opt (enum processor_type): Add leon3v7.
2199 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
2202 * config/i386/i386.c (in_large_data_p): Reject automatic variables.
2203 (ix86_encode_section_info): Do not check for non-automatic varibles
2204 when setting SYMBOL_FLAG_FAR_ADDR flag.
2205 (x86_64_elf_select_section): Do not check ix86_cmodel here.
2206 (x86_64_elf_unique_section): Ditto.
2207 (x86_elf_aligned_common): Emit tab before .largecomm.
2209 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
2211 Backport from mainline:
2212 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
2214 * varasm.c (const_alias_set): Remove.
2215 (init_varasm_once): Remove initialization of const_alias_set.
2216 (build_constant_desc): Do not set alias set to const_alias_set.
2218 Backport from mainline:
2219 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
2221 PR rtl-optimization/63475
2222 * alias.c (true_dependence_1): Always use get_addr to extract
2223 true address operands from x_addr and mem_addr. Use extracted
2224 address operands to check for references with alignment ANDs.
2225 Use extracted address operands with find_base_term and
2226 base_alias_check. For noncanonicalized operands call canon_rtx with
2227 extracted address operand.
2228 (write_dependence_1): Ditto.
2229 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
2231 Backport from mainline:
2232 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
2234 PR rtl-optimization/63483
2235 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2236 references when alignment ANDs are involved.
2237 (write_dependence_p): Ditto.
2238 (may_alias_p): Ditto.
2240 2014-10-31 DJ Delorie <dj@redhat.com>
2242 * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
2244 2014-10-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2246 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
2247 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
2248 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
2249 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
2251 2014-10-31 Jakub Jelinek <jakub@redhat.com>
2254 * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
2255 MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
2256 instead of vr0.min - vr1.min and vr0.max - vr1.max.
2258 2014-10-30 Georg-Johann Lay <avr@gjlay.de>
2261 * config/avr/avr-protos.h (regmask): New inline function.
2262 (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
2263 * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
2264 (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
2265 * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
2266 (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
2267 (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
2268 * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
2269 (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
2270 (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
2271 * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
2272 (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
2273 (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
2274 (fmul, fmuls, fmulsu): Fix operands. Turn insn into expander as
2277 2014-10-30 Jakub Jelinek <jakub@redhat.com>
2279 * BASE-VER: Set to 4.9.3.
2280 * DEV-PHASE: Set to prerelease.
2282 2014-10-30 Release Manager
2284 * GCC 4.9.2 released.
2286 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2288 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
2289 recog state after aarch64_prev_real_insn call.
2291 2014-10-27 Guozhi Wei <carrot@google.com>
2293 PR tree-optimization/63530
2294 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
2295 pointer alignment according to DR_MISALIGNMENT.
2297 2014-10-25 Yury Gribov <y.gribov@samsung.com>
2300 * asan.c (enum asan_check_flags): Fixed ASAN_CHECK_LAST.
2302 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
2305 * collect2.c (main): Filter out -fno-lto.
2307 2014-10-22 Richard Biener <rguenther@suse.de>
2308 Tobias Burnus <burnus@net-b.de>
2311 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
2313 2014-10-21 Jakub Jelinek <jakub@redhat.com>
2315 PR tree-optimization/63563
2316 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
2317 if either dra or drb stmts are not normal loads/stores.
2319 2014-10-17 Jakub Jelinek <jakub@redhat.com>
2321 * asan.c (instrument_derefs): Allow instrumentation of odd-sized
2322 accesses even for -fsanitize=address.
2323 (execute_sanopt): Only allow use_calls for -fsanitize=kernel-address.
2325 PR tree-optimization/63302
2326 * tree-ssa-reassoc.c (optimize_range_tests_xor,
2327 optimize_range_tests_diff): Use !integer_pow2p () instead of
2330 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2332 * asan.c (instrument_derefs): Enable unaligned path for KASan.
2334 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2336 Backport from mainline
2337 2014-10-03 Yury Gribov <y.gribov@samsung.com>
2339 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
2340 don't emit empty ctors.
2342 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2344 Backport from mainline
2345 2014-09-01 Yury Gribov <y.gribov@samsung.com>
2350 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
2351 (build_check_stmt): Likewise.
2352 (instrument_strlen_call): Likewise.
2353 (asan_expand_check_ifn): Likewise and fix types.
2354 (maybe_cast_to_ptrmode): New function.
2356 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2358 Backport from mainline
2359 2014-08-18 Yury Gribov <y.gribov@samsung.com>
2363 * asan.c (instrument_derefs): Fix bitfield check.
2365 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2367 Backport from mainline
2368 2014-08-11 Yury Gribov <y.gribov@samsung.com>
2370 * asan.c (asan_check_flags): New enum.
2371 (build_check_stmt_with_calls): Removed function.
2372 (build_check_stmt): Split inlining logic to
2373 asan_expand_check_ifn.
2374 (instrument_derefs): Rename parameter.
2375 (instrument_mem_region_access): Rename parameter.
2376 (instrument_strlen_call): Likewise.
2377 (asan_expand_check_ifn): New function.
2378 (asan_instrument): Remove old code.
2379 (pass_sanopt::execute): Change handling of
2380 asan-instrumentation-with-call-threshold.
2381 (asan_clear_shadow): Fix formatting.
2382 (asan_function_start): Likewise.
2383 (asan_emit_stack_protection): Likewise.
2384 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
2386 * internal-fn.c (expand_ASAN_CHECK): New function.
2387 * internal-fn.def (ASAN_CHECK): New internal function.
2388 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
2390 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
2391 * tree.c: Small comment fix.
2393 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2395 Backport from mainline
2396 2014-08-11 Yury Gribov <y.gribov@samsung.com>
2398 * gimple.c (gimple_call_fnspec): Support internal functions.
2399 (gimple_call_return_flags): Use const.
2400 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
2401 * internal-fn.def: Add fnspec information.
2402 * internal-fn.h (internal_fn_fnspec): New function.
2403 (init_internal_fns): Declare new function.
2404 * internal-fn.c (internal_fn_fnspec_array): New global variable.
2405 (init_internal_fns): New function.
2406 * tree-core.h: Update macro call.
2407 * tree.c (build_common_builtin_nodes): Initialize internal fns.
2409 Backport from mainline
2410 2014-08-12 Yury Gribov <y.gribov@samsung.com>
2412 * internal-fn.c (init_internal_fns): Fix off-by-one.
2414 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2416 Backport from mainline
2417 2014-07-31 Yury Gribov <y.gribov@samsung.com>
2419 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
2420 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
2421 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
2423 * gcc.c (sanitize_spec_function): Support new option.
2424 (SANITIZER_SPEC): Remove now redundant check.
2425 * opts.c (common_handle_option): Support new option.
2426 (finish_options): Check for incompatibilities.
2427 * toplev.c (process_options): Split userspace-specific checks.
2429 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2431 Backport from mainline
2432 2014-06-24 Max Ostapenko <m.ostapenko@partner.samsung.com>
2434 * asan.c (instrument_strlen_call): Do not instrument first byte in
2435 strlen if already instrumented.
2437 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2439 Backport from mainline
2440 2014-06-16 Yury Gribov <y.gribov@samsung.com>
2442 * asan.c (check_func): New function.
2443 (maybe_create_ssa_name): Likewise.
2444 (build_check_stmt_with_calls): Likewise.
2445 (use_calls_p): Likewise.
2446 (report_error_func): Change interface.
2447 (build_check_stmt): Allow non-integer lengths; add support
2449 (asan_instrument): Likewise.
2450 (instrument_mem_region_access): Moved code to
2452 (instrument_derefs): Likewise.
2453 (instrument_strlen_call): Likewise.
2454 * cfgcleanup.c (old_insns_match_p): Add support for new
2456 * doc/invoke.texi: Describe new parameter.
2457 * params.def: Define new parameter.
2458 * params.h: Likewise.
2459 * sanitizer.def: Describe new builtins.
2461 Backport from mainline
2462 2014-06-16 Yury Gribov <y.gribov@samsung.com>
2464 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
2466 Backport from mainline
2467 2014-06-18 Yury Gribov <y.gribov@samsung.com>
2471 * asan.c (build_check_stmt): Add condition.
2473 Backport from mainline
2474 2014-06-18 Yury Gribov <y.gribov@samsung.com>
2478 * asan.c (instrument_strlen_call): Fixed instrumentation of
2481 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2483 Backport from mainline
2484 2014-05-30 Jakub Jelinek <jakub@redhat.com>
2486 * asan.c (report_error_func): Add SLOW_P argument, use
2487 BUILT_IN_ASAN_*_N if set.
2488 (build_check_stmt): Likewise.
2489 (instrument_derefs): If T has insufficient alignment,
2490 force same handling as for odd sizes.
2492 2014-10-16 Yury Gribov <y.gribov@samsung.com>
2494 Backport from mainline
2495 2014-05-30 Jakub Jelinek <jakub@redhat.com>
2497 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
2498 BUILT_IN_ASAN_REPORT_STORE_N): New.
2499 * asan.c (struct asan_mem_ref): Change access_size type to
2501 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
2502 update_mem_ref_hash_table): Likewise.
2503 (asan_mem_ref_hasher::hash): Hash in a HWI.
2504 (report_error_func): Change size_in_bytes argument to HWI.
2505 Use *_N builtins if size_in_bytes is larger than 16 or not power of
2507 (build_shadow_mem_access): New function.
2508 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
2509 Handle size_in_bytes not power of two or larger than 16.
2510 (instrument_derefs): Don't give up if size_in_bytes is not
2511 power of two or is larger than 16.
2513 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
2515 PR rtl-optimization/63448
2516 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
2517 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
2518 (LRA_MAX_INHERITANCE_PASSES): Use it.
2519 (lra_constraint_iter_after_spill): Remove.
2520 (lra_assignment_iter): New.
2521 (lra_assignment_iter_after_spill): New.
2522 * lra-assigns.c (lra_assignment_iter): New.
2523 (lra_assignment_iter_after_spill): New.
2524 (former_reload_pseudo_spill_p): New.
2525 (spill_for): Set up former_reload_pseudo_spill_p.
2526 (setup_live_pseudos_and_spill_after_risky): Ditto.
2527 (assign_by_spills): Ditto.
2528 (lra_assign): Increment lra_assignment_iter. Print the iteration
2529 number. Reset former_reload_pseudo_spill_p. Check
2530 lra_assignment_iter_after_spill.
2531 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
2532 lra_assignment_iter and lra_assignment_iter_after_spill.
2533 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
2534 (lra_constraints): Remove code with
2535 lra_assignment_iter_after_spill.
2537 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
2539 * stor-layout.c (self_referential_size): Do not promote arguments.
2541 2014-10-15 Richard Biener <rguenther@suse.de>
2543 Backport from mainline
2544 2014-08-15 Richard Biener <rguenther@suse.de>
2546 PR tree-optimization/62031
2547 * tree-data-ref.c (dr_analyze_indices): Do not set
2548 DR_UNCONSTRAINED_BASE.
2549 (dr_may_alias_p): All indirect accesses have to go the
2550 formerly DR_UNCONSTRAINED_BASE path.
2551 * tree-data-ref.h (struct indices): Remove
2552 unconstrained_base member.
2553 (DR_UNCONSTRAINED_BASE): Remove.
2555 2014-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2557 Backport from mainline r215880
2558 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2560 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2561 Issue a warning message when vec_lvsl or vec_lvsr is used with a
2562 little endian target.
2564 Backport from mainline r215882
2565 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2567 * altivec.md (altivec_lvsl): New define_expand.
2568 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
2569 (altivec_lvsr): New define_expand.
2570 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
2571 * rs6000.c (rs6000_expand_builtin): Change to use
2572 altivec_lvs[lr]_direct; remove commented-out code.
2574 2014-10-10 Richard Biener <rguenther@suse.de>
2576 PR tree-optimization/63379
2577 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
2578 a neutral operand for min/max when it is not a reduction chain.
2580 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2582 Backport from mainline
2583 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2585 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
2586 * configure: Regenerate.
2587 * config/aarch64/aarch64.c (aarch64_override_options): Handle
2588 TARGET_FIX_ERR_A53_835769_DEFAULT.
2589 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
2591 * doc/install.texi (aarch64*-*-*): Document new
2592 --enable-fix-cortex-a53-835769 option.
2594 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2596 Backport from mainline
2597 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2598 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2600 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
2601 (ADJUST_INSN_LENGTH): Define.
2602 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
2603 * config/aarch64/aarch64.c (is_mem_p): New function.
2604 (is_memory_op): Likewise.
2605 (aarch64_prev_real_insn): Likewise.
2606 (is_madd_op): Likewise.
2607 (dep_between_memop_and_curr): Likewise.
2608 (aarch64_madd_needs_nop): Likewise.
2609 (aarch64_final_prescan_insn): Likewise.
2610 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
2611 and -mno-fix-cortex-a53-835769 options.
2613 2014-10-10 Richard Biener <rguenther@suse.de>
2615 PR tree-optimization/63380
2616 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
2619 2014-10-09 Richard Biener <rguenther@suse.de>
2621 PR tree-optimization/61969
2622 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
2625 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
2627 Backport from mainline
2628 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
2630 PR rtl-optimization/57003
2631 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
2632 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
2633 killing regs_invalidated_by_call.
2635 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
2637 Backport from mainline
2638 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
2641 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
2642 atomic_fetch_<fetchop_name>si_hard,
2643 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
2644 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
2645 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
2646 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
2648 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
2651 * varpool.c (ctor_for_folding): Do not fold WEAK symbols.
2653 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
2656 * ipa-devirt.c (restrict_to_inner_class): Do not ICE when type is
2659 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
2662 * lto-streamer-out.c (lto_output): Handle thunks correctly.
2663 * cgraphclones.c (duplicate_thunk_for_node): Get thunk's arguments.
2665 2014-10-03 Jakub Jelinek <jakub@redhat.com>
2668 * omp-low.c (taskreg_contexts): New variable.
2669 (scan_omp_parallel): Push newly created context into taskreg_contexts
2670 vector and move record layout code to finish_taskreg_scan.
2671 (scan_omp_task): Likewise.
2672 (finish_taskreg_scan): New function.
2673 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
2674 vector elements and release it.
2676 2014-10-02 Martin Jambor <mjambor@suse.cz>
2678 PR tree-optimization/63375
2679 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
2682 2014-10-01 Jakub Jelinek <jakub@redhat.com>
2685 * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and
2689 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
2690 argument to avx2_permv2ti.
2693 Backported from mainline
2694 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
2697 * cgraphunit.c (analyze_functions): Use get_create rather than get
2698 for decls which are clones of abstract functions.
2700 2014-10-01 Jakub Jelinek <jakub@redhat.com>
2702 Backported from mainline
2703 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
2706 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
2709 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
2711 PR tree-optimization/63186
2712 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
2713 (mark_nonssa_use): Likewise.
2714 (verify_non_ssa_vars): Verify all header blocks for label
2717 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2719 Backport from mainline
2720 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2722 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
2724 2014-10-01 Uros Bizjak <ubizjak@gmail.com>
2726 Backport from mainline
2727 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
2729 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
2730 (fmod<mode>3): Ditto.
2731 (fpremxf4_i387): Ditto.
2732 (reminderxf3): Ditto.
2733 (reminder<mode>3): Ditto.
2734 (fprem1xf4_i387): Ditto.
2736 2014-09-30 David Malcolm <dmalcolm@redhat.com>
2739 * Makefile.in (PLUGIN_HEADERS): Add pass-instances.def.
2741 2014-09-30 Jakub Jelinek <jakub@redhat.com>
2744 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
2745 or invert_jump_1 if jump isn't any_condjump_p.
2747 2014-09-29 James Clarke <jrtc27@jrtc27.com>
2748 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2751 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
2753 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
2754 kernel version check to avoid incrementing it after every major OS X
2756 (darwin_default_min_version): Avoid static memory buffer.
2758 2014-09-29 Charles Baylis <charles.baylis@linaro.org>
2760 Backport from mainline r212303
2762 * config/arm/arm-protos.h (arm_legitimate_address_p,
2763 arm_is_constant_pool_ref): Add prototypes.
2764 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
2765 (arm_is_constant_pool_ref) New function.
2766 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
2767 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
2768 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
2769 operand and remove pool_range and neg_pool_range attributes.
2770 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
2771 pool_range and neg_pool_range attributes.
2772 * config/arm/constraints.md (Uh): New constraint. (Uq): Don't allow
2773 constant pool references.
2775 2014-09-29 Jakub Jelinek <jakub@redhat.com>
2778 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
2779 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
2780 use the alignment of avar rather than ovar.
2782 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
2784 * config/pa/pa.c (pa_output_function_epilogue): Only update
2785 last_address when a nonnote insn is found.
2787 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
2789 Backport from mainline
2790 2014-09-25 Nick Clifton <nickc@redhat.com>
2791 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
2794 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask,
2795 atomic_test_and_set_soft_imask): Fix typo in instruction sequence.
2797 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2799 Backport from mainline r215559
2800 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2803 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
2804 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
2806 2014-09-25 Jakub Jelinek <jakub@redhat.com>
2808 PR tree-optimization/63341
2809 * tree-vectorizer.h (vect_create_data_ref_ptr,
2810 vect_create_addr_base_for_vector_ref): Add another tree argument
2811 defaulting to NULL_TREE.
2812 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
2813 argument, pass it down to vect_create_addr_base_for_vector_ref.
2814 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
2815 add that to base_offset too if non-NULL.
2816 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
2817 for dr_explicit_realign_optimized set it to vector byte size
2818 - 1 instead of setting offset, pass byte_offset down to
2819 vect_create_data_ref_ptr.
2821 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2823 Backport from mainline
2824 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2826 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
2827 refine the constraints used on 32/64-bit floating point moves.
2829 (f64_vsx): Likewise.
2832 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
2833 (BOOL_REGS_OP1): Likewise.
2834 (BOOL_REGS_OP2): Likewise.
2835 (BOOL_REGS_UNARY): Likewise.
2836 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
2837 32/64-bit floating point moves. Do not use wa, instead use ww/ws
2838 for moves involving VSX registers. Do not use constraints that
2839 target VSX registers for decimal types.
2840 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
2841 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
2843 2014-09-22 Marek Polacek <polacek@redhat.com>
2845 Backport from mainline
2846 2014-05-21 Marek Polacek <polacek@redhat.com>
2849 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
2851 2014-09-22 Jakub Jelinek <jakub@redhat.com>
2854 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
2855 insert a debug source bind stmt setting DEBUG_EXPR_DECL
2856 instead of a normal gimple assignment stmt.
2858 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
2860 Back port from trunk:
2861 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
2863 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
2864 for base_reg_operand to be common between LO_SUM and PLUS.
2865 (fusion_gpr_mem_combo): New predicate to match a fused address
2866 that combines the addis and memory offset address.
2868 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
2870 (emit_fusion_gpr_load): Likewise.
2872 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
2873 signature to pass each argument separately, rather than
2874 using an operands array. Rewrite the insns found by peephole2 to
2875 be a single insn, rather than hoping the insns will still be
2876 together when the peephole pass is done. Drop being called via a
2878 (emit_fusion_gpr_load): Change calling signature to be called from
2879 the fusion_gpr_load_<mode> insns with a combined memory address
2880 instead of the peephole pass passing the addis and offset
2883 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
2885 (power8 fusion peephole): Drop support for doing power8 via a
2886 normal peephole that was created by the peephole2 pass.
2887 (power8 fusion peephole2): Create a new insn with the fused
2888 address, so that the fused operation is kept together after
2889 register allocation is done.
2890 (fusion_gpr_load_<mode>): Likewise.
2892 2014-09-18 Jakub Jelinek <jakub@redhat.com>
2895 * asan.c (transform_statements): Don't instrument clobber statements.
2897 2014-09-17 Jakub Jelinek <jakub@redhat.com>
2900 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
2901 if there are only debug stmts after the noreturn call, instead
2902 remove the debug stmts.
2904 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
2906 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
2907 Enable selection of 'posix' or no thread model.
2909 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
2912 * config/pa/pa.c (pa_function_value): Directly handle aggregates
2913 that fit exactly in a word or double word.
2915 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
2917 * doc/install.texi (Options specification): add
2918 --disable-libsanitizer item.
2920 2014-09-12 DJ Delorie <dj@redhat.com>
2922 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
2923 (extend_and_shift1_hipsi2): Likewise.
2924 (extend_and_shift2_hipsi2): Likewise.
2926 2014-09-12 Martin Jambor <mjambor@suse.cz>
2929 * cgraph.h (cgraph_analyze_function): Declare.
2930 * cgraphunit.c: (analyze_function): Remove forward declaration,
2931 rename to cgraph_analyze_function, made external.
2932 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
2933 new decl properly. Analyze the new thunk if it is expanded.
2935 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
2937 Backport from mainline
2938 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
2941 * config/i386/i386.c (ix86_option_override_internal): Also turn
2942 off OPTION_MASK_ABI_X32 for -m16.
2944 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
2946 Backport from mainline.
2947 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
2949 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
2951 (vmull_high_lane_s32): Likewise.
2952 (vmull_high_lane_u16): Likewise.
2953 (vmull_high_lane_u32): Likewise.
2955 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
2957 Backport r214946 from mainline
2958 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
2960 * config/aarch64/aarch64.md (adddi3_aarch64): Set type to neon_add.
2962 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
2964 Backport r214953 from mainline
2965 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
2967 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
2968 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
2970 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
2971 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
2972 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
2973 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
2974 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
2975 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
2976 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
2977 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
2978 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
2979 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
2980 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
2981 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
2982 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
2983 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
2984 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
2985 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
2986 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
2987 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
2988 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
2989 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
2990 with int{32,16,8}_t.
2992 2014-09-11 Jason Merrill <jason@redhat.com>
2995 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
2997 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
2999 Backport from 2014-09-11 trunk r215152.
3002 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
3003 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
3004 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
3006 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
3008 Backport from mainline
3009 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
3011 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
3012 V2DF, V4SF, DF, and DI modes.
3013 (vsx_fmav2df2): Likewise.
3014 (vsx_float_fix_<mode>2): Likewise.
3015 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
3017 2014-09-10 Xinliang David Li <davidxl@google.com>
3019 Backport from mainline
3021 * config/arm/arm.md (movcond_addsi): Handle case where source
3022 and target operands are the same.
3024 2014-09-10 Alan Modra <amodra@gmail.com>
3027 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
3030 2014-09-09 Bill Schmidt <wschmidt@us.ibm.com>
3032 Backported from mainline
3033 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3035 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
3036 selection of 0th memory doubleword, regardless of endianness.
3038 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
3040 Backport from mainline
3041 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
3043 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
3047 2014-09-09 Jason Merrill <jason@redhat.com>
3051 * gimple-fold.c (can_refer_decl_in_current_unit_p): Don't allow
3052 reference to a DECL_EXTERNAL COMDAT.
3054 2014-09-09 Richard Biener <rguenther@suse.de>
3056 Backport from mainline
3057 2014-08-05 Richard Biener <rguenther@suse.de>
3059 PR rtl-optimization/61672
3060 * emit-rtl.h (mem_attrs_eq_p): Declare.
3061 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
3062 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
3063 * cfgcleanup.c (merge_memattrs): Likewise.
3066 2014-08-11 Richard Biener <rguenther@suse.de>
3068 PR tree-optimization/62075
3069 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
3070 handle uses in patterns.
3072 2014-08-14 Richard Biener <rguenther@suse.de>
3074 PR rtl-optimization/62079
3075 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
3078 2014-08-26 Richard Biener <rguenther@suse.de>
3080 PR tree-optimization/62175
3081 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
3082 expand possibly trapping operations.
3084 2014-09-08 DJ Delorie <dj@redhat.com>
3086 * doc/invoke.texi (MSP430 Options): Add -minrt.
3088 2014-09-05 Easwaran Raman <eraman@google.com>
3090 Backport from mainline
3091 PR rtl-optimization/62146
3092 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
3093 hoisted instruction unconditional.
3095 2014-09-04 Guozhi Wei <carrot@google.com>
3098 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
3099 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
3100 it into two patterns.
3101 (move_lo_quad_internal_be_<mode>): Likewise.
3103 2014-09-03 Martin Jambor <mjambor@suse.cz>
3106 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
3107 pass-trough jump functions correctly.
3109 2014-09-03 Martin Jambor <mjambor@suse.cz>
3112 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
3113 created replacements in ascending order of offsets.
3114 (known_aggs_to_agg_replacement_list): Likewise.
3116 2014-09-02 Kaz Kojima <kkojima@gcc.gnu.org>
3118 Backport from mainline
3119 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
3122 * config/sh/sh.md (ashlsi3): Handle negative shift count for
3124 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
3126 2014-09-02 Kaz Kojima <kkojima@gcc.gnu.org>
3128 Backport from mainline
3129 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
3132 * config/sh/predicates.md (general_extend_operand): Disable
3133 TRUNCATE before reload completes.
3135 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
3137 Backport from mainline
3138 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
3141 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
3143 2014-09-01 Jakub Jelinek <jakub@redhat.com>
3146 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
3147 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
3148 (find_inc): Revert 2014-08-12 change.
3150 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
3151 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
3152 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
3154 2014-09-01 Marek Polacek <polacek@redhat.com>
3156 Backport from mainline
3157 2014-08-21 Marek Polacek <polacek@redhat.com>
3160 * expr.c (is_aligning_offset): Remove logical not.
3162 2014-09-01 Marek Polacek <polacek@redhat.com>
3164 Backport from mainline
3165 2014-08-19 Marek Polacek <polacek@redhat.com>
3168 * cgraphunit.c (handle_alias_pairs): Fix condition.
3170 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
3172 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
3173 prefix to function labels when generating fast indirect calls.
3175 2014-08-29 Yvan Roux <yvan.roux@linaro.org>
3177 Backport from mainline
3178 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
3181 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
3183 2014-08-27 Guozhi Wei <carrot@google.com>
3186 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
3187 amount before using it.
3189 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
3191 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
3193 2014-08-26 Marek Polacek <polacek@redhat.com>
3195 Backport from mainline
3196 2014-08-26 Marek Polacek <polacek@redhat.com>
3199 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
3200 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
3202 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
3204 Backport from mainline
3205 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
3208 * config/sh/sh.opt (musermode): Allow negative form.
3209 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
3210 targets that don't support it.
3211 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
3212 Document -mno-usermode option.
3214 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
3217 * config/pa/pa.c (pa_output_function_epilogue): Don't set
3218 last_address when the current function is a thunk.
3219 (pa_asm_output_mi_thunk): When we don't have named sections or they
3220 are not being used, check that thunk can reach the stub table with a
3223 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
3225 Backport from mainline
3226 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
3229 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
3230 documentation to state it is only for VSX operations.
3232 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
3233 constraint only active if VSX.
3235 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
3236 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
3239 2014-08-21 Uros Bizjak <ubizjak@gmail.com>
3241 Backport from mainline
3242 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
3244 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
3245 destination if it is used in source.
3246 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
3247 (*popcount<mode>2_falsedep_1): Likewise.
3249 Backport from mainline
3250 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
3253 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
3255 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
3256 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
3257 (ffs<mode>2): Do not expand with tzcnt for
3258 TARGET_AVOID_FALSE_DEP_FOR_BMI.
3259 (ffssi2_no_cmove): Ditto.
3260 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
3261 (ctz<mode>2): New expander.
3262 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
3263 (*ctz<mode>2_falsedep): New insn.
3264 (*ctz<mode>2): Rename from ctz<mode>2.
3265 (clz<mode>2_lzcnt): New expander.
3266 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
3267 (*clz<mode>2_lzcnt_falsedep): New insn.
3268 (*clz<mode>2): Rename from ctz<mode>2.
3269 (popcount<mode>2): New expander.
3270 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
3271 (*popcount<mode>2_falsedep): New insn.
3272 (*popcount<mode>2): Rename from ctz<mode>2.
3273 (*popcount<mode>2_cmp): Remove.
3274 (*popcountsi2_cmp_zext): Ditto.
3276 2014-08-20 Martin Jambor <mjambor@suse.cz>
3277 Wei Mi <wmi@google.com>
3281 * tree-ssa-operands.c (update_stmt_operands): Remove
3282 MODIFIED_NORETURN_CALLS.
3283 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
3284 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
3285 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
3286 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
3287 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
3288 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
3289 (gimple_call_set_ctrl_altering): New func.
3290 (gimple_call_ctrl_altering_p): Ditto.
3291 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
3292 (make_blocks): Use gimple_call_initialize_ctrl_altering.
3293 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
3294 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
3295 remove MODIFIED_NORETURN_CALLS.
3297 2014-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3299 Backport from mainline.
3300 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3302 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
3303 Remove unnecessary attributes.
3305 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
3308 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
3310 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
3311 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
3312 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
3314 * config/pa/pa.md (begin_brtab): Delete insn.
3315 (end_brtab): Likewise.
3317 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
3319 Backport from mainline:
3320 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
3322 * doc/invoke.texi (SH options): Document missing processor variant
3323 options. Remove references to Hitachi. Undocument deprecated mspace
3326 2014-08-15 Tom de Vries <tom@codesourcery.com>
3328 Backport from mainline:
3329 2014-08-14 Tom de Vries <tom@codesourcery.com>
3331 PR rtl-optimization/62004
3332 PR rtl-optimization/62030
3333 * ifcvt.c (rtx_interchangeable_p): New function.
3334 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
3336 2014-08-05 Richard Biener <rguenther@suse.de>
3338 * emit-rtl.h (mem_attrs_eq_p): Declare.
3339 * emit-rtl.c (mem_attrs_eq_p): Export.
3341 2014-08-15 Jakub Jelinek <jakub@redhat.com>
3344 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
3345 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
3346 in OMP_CLAUSE_MAP in some outer target region.
3348 2014-08-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3350 Backport from mainline
3351 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3354 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
3355 move to subtarget in serial version if result is ignored.
3357 2014-08-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
3359 Backport from mainline
3360 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
3363 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
3364 bitfields, that is when size doesn't match the size of type or the
3365 size of the constructor.
3367 2014-08-12 Felix Yang <fei.yang0953@gmail.com>
3369 PR tree-optimization/62073
3370 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
3373 2014-08-12 Jakub Jelinek <jakub@redhat.com>
3376 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
3377 any registers that are used in mem_insn.
3379 2014-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3381 Backport patch from mainline
3382 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
3384 * config/rs6000/constraints.md (wh constraint): New constraint,
3385 for FP registers if direct move is available.
3386 (wi constraint): New constraint, for VSX/FP registers that can
3387 handle 64-bit integers.
3388 (wj constraint): New constraint for VSX/FP registers that can
3389 handle 64-bit integers for direct moves.
3390 (wk constraint): New constraint for VSX/FP registers that can
3391 handle 64-bit doubles for direct moves.
3392 (wy constraint): Make documentation match implementation.
3394 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
3395 scalar_in_vmx_p field to simplify tests of whether SFmode or
3396 DFmode can go in the Altivec registers.
3397 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
3398 (rs6000_setup_reg_addr_masks): Likewise.
3399 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
3400 field, and wh/wi/wj/wk constraints.
3401 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
3402 the wh/wi/wj/wk constraints.
3403 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
3404 upper registers, prefer VSX registers unless the operation is a
3405 memory operation with REG+OFFSET addressing.
3407 * config/rs6000/vsx.md (VSr mode attribute): Add support for
3408 DImode. Change SFmode to use ww constraint instead of d to allow
3409 SF registers in the upper registers.
3412 (VSr5): Fix thinko in comment.
3413 (VSa): New mode attribute that is an alternative to wa, that
3414 returns the VSX register class that a mode can go in, but may not
3415 be the preferred register class.
3416 (VS_64dm): New mode attribute for appropriate register classes for
3417 referencing 64-bit elements of vectors for direct moves and normal
3419 (VS_64reg): Likewise.
3420 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
3421 register allocator to only registers the data type can handle.
3422 (vsx_le_perm_load_<mode>): Likewise.
3423 (vsx_le_perm_store_<mode>): Likewise.
3424 (vsx_xxpermdi2_le_<mode>): Likewise.
3425 (vsx_xxpermdi4_le_<mode>): Likewise.
3426 (vsx_lxvd2x2_le_<mode>): Likewise.
3427 (vsx_lxvd2x4_le_<mode>): Likewise.
3428 (vsx_stxvd2x2_le_<mode>): Likewise.
3429 (vsx_add<mode>3): Likewise.
3430 (vsx_sub<mode>3): Likewise.
3431 (vsx_mul<mode>3): Likewise.
3432 (vsx_div<mode>3): Likewise.
3433 (vsx_tdiv<mode>3_internal): Likewise.
3434 (vsx_fre<mode>2): Likewise.
3435 (vsx_neg<mode>2): Likewise.
3436 (vsx_abs<mode>2): Likewise.
3437 (vsx_nabs<mode>2): Likewise.
3438 (vsx_smax<mode>3): Likewise.
3439 (vsx_smin<mode>3): Likewise.
3440 (vsx_sqrt<mode>2): Likewise.
3441 (vsx_rsqrte<mode>2): Likewise.
3442 (vsx_tsqrt<mode>2_internal): Likewise.
3443 (vsx_fms<mode>4): Likewise.
3444 (vsx_nfma<mode>4): Likewise.
3445 (vsx_eq<mode>): Likewise.
3446 (vsx_gt<mode>): Likewise.
3447 (vsx_ge<mode>): Likewise.
3448 (vsx_eq<mode>_p): Likewise.
3449 (vsx_gt<mode>_p): Likewise.
3450 (vsx_ge<mode>_p): Likewise.
3451 (vsx_xxsel<mode>): Likewise.
3452 (vsx_xxsel<mode>_uns): Likewise.
3453 (vsx_copysign<mode>3): Likewise.
3454 (vsx_float<VSi><mode>2): Likewise.
3455 (vsx_floatuns<VSi><mode>2): Likewise.
3456 (vsx_fix_trunc<mode><VSi>2): Likewise.
3457 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
3458 (vsx_x<VSv>r<VSs>i): Likewise.
3459 (vsx_x<VSv>r<VSs>ic): Likewise.
3460 (vsx_btrunc<mode>2): Likewise.
3461 (vsx_b2trunc<mode>2): Likewise.
3462 (vsx_floor<mode>2): Likewise.
3463 (vsx_ceil<mode>2): Likewise.
3464 (vsx_<VS_spdp_insn>): Likewise.
3465 (vsx_xscvspdp): Likewise.
3466 (vsx_xvcvspuxds): Likewise.
3467 (vsx_float_fix_<mode>2): Likewise.
3468 (vsx_set_<mode>): Likewise.
3469 (vsx_extract_<mode>_internal1): Likewise.
3470 (vsx_extract_<mode>_internal2): Likewise.
3471 (vsx_extract_<mode>_load): Likewise.
3472 (vsx_extract_<mode>_store): Likewise.
3473 (vsx_splat_<mode>): Likewise.
3474 (vsx_xxspltw_<mode>): Likewise.
3475 (vsx_xxspltw_<mode>_direct): Likewise.
3476 (vsx_xxmrghw_<mode>): Likewise.
3477 (vsx_xxmrglw_<mode>): Likewise.
3478 (vsx_xxsldwi_<mode>): Likewise.
3479 (vsx_xscvdpspn): Tighten constraints to only use register classes
3481 (vsx_xscvspdpn): Likewise.
3482 (vsx_xscvdpspn_scalar): Likewise.
3484 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
3485 wj, and wk constraints.
3486 (GPR_REG_CLASS_P): New helper macro for register classes targeting
3487 general purpose registers.
3489 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
3491 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
3492 DImode instead of wm. Use wk constraint for direct move of DFmode
3494 (extendsidi2_lfiwax): Likewise.
3497 (movdi_internal64): Likewise.
3499 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
3500 wk constraints. Make the wy constraint documentation match them
3503 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3505 Backport from mainline
3506 2014-08-04 Ganesh Gopalasubramanian
3507 <Ganesh.Gopalasubramanian@amd.com>
3509 * config/i386/i386.c (ix86_option_override_internal): Add
3510 PTA_RDRND and PTA_MOVBE for bdver4.
3512 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3514 Backport from mainline
3515 2014-08-04 Ganesh Gopalasubramanian
3516 <Ganesh.Gopalasubramanian@amd.com>
3518 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's
3519 extended family information. Handle BTVER2 cpu with cpuid family value.
3521 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3523 Backport from mainline
3524 2014-06-16 Ganesh Gopalasubramanian
3525 <Ganesh.Gopalasubramanian@amd.com>
3527 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
3528 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
3529 handling 32-bit multiplication.
3531 2014-08-08 Guozhi Wei <carrot@google.com>
3533 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
3535 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
3537 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
3540 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
3543 * haifa-sched.c (advance_one_cycle): Fix dump.
3544 (schedule_block): Don't advance cycle if we are already at the
3545 beginning of the cycle.
3547 2014-08-06 Richard Biener <rguenther@suse.de>
3549 PR tree-optimization/61320
3550 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
3551 handle misaligned loads.
3553 2014-08-04 Rohit <rohitarulraj@freescale.com>
3556 * config/rs6000/rs6000.c
3557 (rs6000_reg_names): Add SPE high register names.
3558 (alt_reg_names): Likewise.
3559 (rs6000_dwarf_register_span): For SPE high registers, replace
3560 dwarf register numbers with GCC hard register numbers.
3561 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
3562 (rs6000_dbx_register_number): For SPE high registers, return dwarf
3563 register number for the corresponding GCC hard register number.
3564 * config/rs6000/rs6000.h
3565 (FIRST_PSEUDO_REGISTER): Update based on 32 newly added GCC hard
3566 register numbers for SPE high registers.
3567 (DWARF_FRAME_REGISTERS): Likewise.
3568 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
3569 (DWARF_FRAME_REGNUM): Likewise.
3570 (FIXED_REGISTERS): Likewise.
3571 (CALL_USED_REGISTERS): Likewise.
3572 (CALL_REALLY_USED_REGISTERS): Likewise.
3573 (REG_ALLOC_ORDER): Likewise.
3574 (enum reg_class): Likewise.
3575 (REG_CLASS_NAMES): Likewise.
3576 (REG_CLASS_CONTENTS): Likewise.
3577 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
3579 2014-08-01 Vladimir Makarov <vmakarov@redhat.com>
3581 * lra-constraints.c (remove_inheritance_pseudos): Process
3582 destination pseudo too.
3584 2014-08-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
3586 Backport from mainline
3587 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
3589 PR tree-optimization/61375
3590 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Cancel optimization if
3591 symbolic number cannot be represented in an unsigned HOST_WIDE_INT.
3592 (execute_optimize_bswap): Cancel optimization if CHAR_BIT != 8.
3594 2014-08-01 Richard Biener <rguenther@suse.de>
3596 PR tree-optimization/61964
3597 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
3598 by structural equality.
3600 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
3602 Backport from mainline
3603 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
3606 * config/sh/sh.c (sh_legitimate_address_p,
3607 sh_legitimize_reload_address): Handle reg+reg address modes when
3608 ALLOW_INDEXED_ADDRESS is false.
3609 * config/sh/predicates.md (general_movsrc_operand,
3610 general_movdst_operand): Likewise.
3612 2014-07-25 Uros Bizjak <ubizjak@gmail.com>
3614 Backport from mainline
3615 2014-07-14 Jakub Jelinek <jakub@redhat.com>
3618 * config/i386/i386.c (classify_argument): Don't merge classes above
3621 2014-07-25 Uros Bizjak <ubizjak@gmail.com>
3623 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
3625 2014-07-24 Kyle McMartin <kyle@redhat.com>
3627 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
3629 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3631 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
3633 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
3634 function. Issue -Wpsabi warning if future GCC releases will use
3635 different field alignment rules for this type.
3636 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
3637 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
3638 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
3640 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3642 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): Issue
3643 -Wpsabi note when encountering a type where future GCC releases
3644 will apply different alignment requirements.
3646 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3648 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
3649 does not fit fully into floating-point registers, and there is still
3650 space in the register parameter area, issue -Wpsabi note that the ABI
3651 will change in a future GCC release.
3653 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
3655 * config/arm/t-rtems-eabi: Add
3656 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
3657 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
3658 mbig-endian/mthumb/march=armv7-r, and
3659 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
3662 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
3663 Chris Johns <chrisj@rtems.org>
3664 Joel Sherrill <joel.sherrill@oarcorp.com>
3666 * config.gcc: Add nios2-*-rtems*.
3667 * config/nios2/rtems.h: New file.
3668 * gcc/config/nios2/t-rtems: New file.
3670 2014-07-21 Peter Bergner <bergner@vnet.ibm.com>
3672 * config/rs6000/sysv4.h (LIBASAN_EARLY_SPEC): Define.
3673 (LIBTSAN_EARLY_SPEC): Likewise.
3675 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
3677 Backport from mainline
3678 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
3681 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
3682 out of #ifdef __OPTIMIZE__.
3684 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
3686 * expr.c (store_field): Handle VOIDmode for calls that return values
3687 in multiple locations.
3689 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
3691 * toplev.c (output_stack_usage): Adjust the location of the warning.
3693 2014-07-19 Daniel Cederman <cederman@gaisler.com>
3695 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
3696 (*membar_storeload): Disable for LEON3.
3698 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
3700 Backport from mainline
3701 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
3704 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
3706 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
3708 Backport from mainline
3709 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
3712 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
3713 Fix instruction constraint.
3714 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
3716 2014-07-17 Richard Biener <rguenther@suse.de>
3718 Backport from mainline
3719 2014-07-14 Richard Biener <rguenther@suse.de>
3721 PR tree-optimization/61779
3722 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
3723 simplifying a condition.
3725 2014-07-17 Richard Biener <rguenther@suse.de>
3727 PR rtl-optimization/61801
3728 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
3729 don't set reg_pending_barrier if it appears in a debug-insn.
3731 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
3733 Backport from trunk.
3735 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
3736 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
3737 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
3739 (cris_print_index, cris_print_operand, cris_constant_index_p)
3740 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
3741 (cris_address_cost): Ditto last CONSTANT_P.
3742 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
3743 callers changed. Yield cris_offsettable_symbol for non-PIC
3744 constant symbolic expressions including labels. Yield cris_unspec
3746 (cris_expand_pic_call_address): New parameter MARKERP. Set its
3747 target to pic_offset_table_rtx for calls that will likely go
3748 through PLT, const0_rtx when they can't. All callers changed.
3749 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
3750 symbolic expressions to be PICified. Remove second, redundant,
3751 assert on can_create_pseudo_p returning non-zero. Use
3752 replace_equiv_address_nv, not replace_equiv_address, for final
3754 * config/cris/cris.md ("movsi"): Move variable t to pattern
3755 toplevel. Adjust assert for new cris_symbol_type member. Use
3756 CONSTANT_P instead of CONSTANT_ADDRESS_P.
3757 ("*movsi_internal") <case 9>: Make check for valid unspec operands
3759 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
3760 ("call", "call_value"): Use second incoming operand as a marker
3761 for pic-offset-table-register being used.
3762 ("*expanded_call_non_v32", "*expanded_call_v32")
3763 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
3764 second incoming operand to CALL, match cris_call_type_marker.
3765 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
3766 ("*expanded_call_side"): Ditto. Fix typo in comment.
3767 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
3769 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
3770 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
3771 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
3772 users changed. Add members cris_offsettable_symbol and cris_unspec.
3773 (cris_symbol_type): Rename from cris_pic_symbol_type.
3774 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
3776 * config/cris/cris-protos.h (cris_symbol_type_of,
3777 cris_expand_pic_call_address): Adjust prototypes.
3778 (cris_legitimate_constant_p): New prototype.
3780 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
3781 an existing tmake_file. Don't add t-slibgcc and t-linux.
3783 2014-07-16 Jakub Jelinek <jakub@redhat.com>
3785 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
3786 on the FUNCTION_DECL.
3788 * BASE-VER: Set to 4.9.2.
3789 * DEV-PHASE: Set to prerelease.
3791 2014-07-16 Release Manager
3793 * GCC 4.9.1 released.
3795 2014-07-10 Cary Coutant <ccoutant@google.com>
3797 Backport from trunk at r212211.
3799 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
3801 (resolve_addr_in_expr): When replacing the rtx in a location list
3802 entry, get a new address table entry.
3803 (dwarf2out_finish): Call index_location_lists even if there are no
3804 addr_index_table entries yet.
3806 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
3808 * doc/install.texi: Remove links to defunct package providers for
3811 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
3814 * function.c (allocate_struct_function): Revert r188667 change.
3816 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
3818 2014-07-09 Alan Lawrence <alan.lawrence@arm.com>
3820 Backport r211369 from trunk.
3821 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
3824 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
3825 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
3826 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
3827 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
3828 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
3829 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
3830 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
3831 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
3832 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
3835 2014-07-09 Alan Lawrence <alan.lawrence@arm.com>
3837 Backport r210219 from trunk.
3838 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3840 * config/arm/arm_neon.h: Update comment.
3841 * config/arm/neon-docgen.ml: Delete.
3842 * config/arm/neon-gen.ml: Delete.
3843 * doc/arm-neon-intrinsics.texi: Update comment.
3845 2014-07-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3847 Backport r211775 from trunk.
3848 2014-06-18 Terry Guo <terry.guo@arm.com>
3851 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
3854 2014-07-08 Jakub Jelinek <jakub@redhat.com>
3856 PR rtl-optimization/61673
3857 * combine.c (simplify_comparison): Test just mode's sign bit
3858 in tmode rather than the sign bit and any bits above it.
3860 2014-07-08 James Greenhalgh <james.greenhalgh@arm.com>
3862 Backport r212298 from trunk.
3863 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
3865 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
3866 (move_lo_quad_internal_be_<mode>): Likewise.
3867 (move_lo_quad_<mode>): Convert to define_expand.
3868 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
3869 (aarch64_simd_move_hi_quad_be_<mode>): New.
3870 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
3871 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
3872 (aarch64_combinez_be<mode>): New.
3873 (aarch64_combine<mode>): Convert to define_expand.
3874 (aarch64_combine_internal<mode>): New.
3875 (aarch64_simd_combine<mode>): Remove bogus RTL description.
3877 2014-07-08 Richard Biener <rguenther@suse.de>
3879 PR tree-optimization/61680
3880 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3881 Handle properly all read-write dependences with group accesses.
3883 PR tree-optimization/61681
3884 * tree-ssa-structalias.c (find_what_var_points_to): Expand
3885 NONLOCAL inside ESCAPED.
3887 2014-07-08 Alan Lawrence <alan.lawrence@arm.com>
3889 Backport r211502 from mainline.
3890 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
3893 * config/aarch64/aarch64-modes.def: Add V1DFmode.
3894 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
3897 2014-07-08 Jakub Jelinek <jakub@redhat.com>
3899 PR tree-optimization/61725
3900 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
3901 range, use range_includes_zerop_p instead of integer_zerop on
3902 vr0->min, only use log2 of max if min is not negative.
3904 2014-07-06 Gerald Pfeifer <gerald@pfeifer.com>
3906 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
3908 2014-07-04 Jakub Jelinek <jakub@redhat.com>
3911 * cgraphunit.c (expand_thunk): Call free_dominance_info.
3913 PR tree-optimization/61684
3914 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
3915 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
3917 2014-06-30 Jakub Jelinek <jakub@redhat.com>
3919 Backported from mainline
3920 2014-06-27 Jakub Jelinek <jakub@redhat.com>
3922 PR tree-optimization/57233
3923 PR tree-optimization/61299
3924 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
3926 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
3927 would be lowered to scalar shifts, check if corresponding
3928 shifts and vector BIT_IOR_EXPR are supported and don't lower
3929 or lower just to narrower vector type in that case.
3930 * expmed.c (expand_shift_1): Fix up handling of vector
3933 2014-06-25 Jakub Jelinek <jakub@redhat.com>
3935 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
3936 (LANG_HOOKS_DECLS): Add it.
3937 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
3939 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
3940 * langhooks.h (struct lang_hooks_for_decls): Add
3941 omp_clause_linear_ctor hook.
3942 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
3943 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
3944 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
3945 combined simd loop use omp_clause_linear_ctor hook.
3947 2014-06-24 Jakub Jelinek <jakub@redhat.com>
3949 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
3950 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is non-NULL.
3951 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
3952 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is non-NULL.
3953 (gimplify_adjust_omp_clauses): Likewise.
3954 * omp-low.c (lower_rec_simd_input_clauses,
3955 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
3956 safelen the same as safelen(1).
3957 * tree-nested.c (convert_nonlocal_omp_clauses,
3958 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
3959 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
3960 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
3961 Fixup handling of GIMPLE_OMP_TARGET.
3962 (convert_tramp_reference_stmt, convert_gimple_call): Handle
3965 2014-06-18 Jakub Jelinek <jakub@redhat.com>
3967 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
3968 change in ORT_TARGET region, don't jump to do_outer.
3969 (struct gimplify_adjust_omp_clauses_data): New type.
3970 (gimplify_adjust_omp_clauses_1): Adjust for data being
3971 a struct gimplify_adjust_omp_clauses_data pointer instead
3972 of tree *. Pass pre_p as a new argument to
3973 lang_hooks.decls.omp_finish_clause hook.
3974 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
3975 splay_tree_foreach to pass both list_p and pre_p.
3976 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
3977 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
3978 gimplify_adjust_omp_clauses callers.
3979 * langhooks.c (lhd_omp_finish_clause): New function.
3980 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
3981 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
3982 * langhooks.h (struct lang_hooks_for_decls): Add a new
3983 gimple_seq * argument to omp_finish_clause hook.
3984 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
3985 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
3986 (scan_omp_parallel, lower_omp_for): When adding _LOOPTEMP_ clause var,
3987 add it to outer ctx's decl_map as identity.
3988 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
3989 * tree-nested.c (convert_nonlocal_omp_clauses,
3990 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
3991 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
3993 2014-06-10 Jakub Jelinek <jakub@redhat.com>
3996 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
3997 Set lastprivate_firstprivate even if omp_private_outer_ref
3998 langhook returns true.
3999 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
4000 langhook, call unshare_expr on new_var and call
4001 build_outer_var_ref to get the last argument.
4003 2014-05-11 Jakub Jelinek <jakub@redhat.com>
4005 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
4006 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
4007 number of operands to 3.
4008 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
4009 * tree-nested.c (convert_nonlocal_omp_clauses,
4010 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
4011 * gimplify.c (gimplify_scan_omp_clauses): Handle
4012 OMP_CLAUSE_LINEAR_STMT.
4013 * omp-low.c (lower_rec_input_clauses): Fix typo.
4014 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
4015 cast between Fortran boolean_type_node and C _Bool if needed.
4017 2014-06-30 Jason Merrill <jason@redhat.com>
4021 * gimplify.c (gimplify_arg): Non-static.
4022 * gimplify.h: Declare it.
4024 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
4026 Backport from Mainline
4027 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
4030 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
4031 Add alternative; make early clobber. Adjust both split patterns
4032 to use operand 0 as the working register.
4034 2014-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4036 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
4038 (VCONQ): Make comment more helpful.
4040 * config/aarch64/aarch64-simd.md
4041 (aarch64_sqdmulh_lane<mode>):
4042 Use VCOND for operands 2. Update lane checking and flipping logic.
4043 (aarch64_sqrdmulh_lane<mode>): Likewise.
4044 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
4045 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
4046 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
4047 attribute of operand 3 to VCOND.
4048 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
4049 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
4050 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
4051 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
4052 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
4053 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
4055 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
4056 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
4057 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
4058 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
4059 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
4060 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
4061 operand to VCOND. Update lane flipping and bounds checking logic.
4062 (aarch64_sqdmlal2_lane<mode>): Likewise.
4063 (aarch64_sqdmlsl_lane<mode>): Likewise.
4064 (aarch64_sqdmull_lane<mode>): Likewise.
4065 (aarch64_sqdmull2_lane<mode>): Likewise.
4066 (aarch64_sqdmlal_laneq<mode>): Replace VCON usage with VCONQ.
4067 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
4068 (aarch64_sqdmlal2_laneq<mode>): Emit
4069 aarch64_sqdmlal2_laneq<mode>_internal insn.
4070 Replace VCON with VCONQ.
4071 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
4072 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
4073 (aarch64_sqdmull_laneq<mode>): Emit
4074 aarch64_sqdmull_laneq<mode>_internal insn.
4075 Replace VCON with VCONQ.
4076 (aarch64_sqdmull2_laneq<mode>): Emit
4077 aarch64_sqdmull2_laneq<mode>_internal insn.
4078 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
4079 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
4080 of 3rd argument to int16x4_t.
4081 (vqdmlalh_lane_s16): Likewise.
4082 (vqdmlslh_lane_s16): Likewise.
4083 (vqdmull_high_lane_s16): Likewise.
4084 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
4085 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
4086 (vqdmlsl_lane_s16): Likewise.
4087 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
4088 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
4089 (vqdmlals_lane_s32): Likewise.
4090 (vqdmlsls_lane_s32): Likewise.
4091 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
4092 (vqdmulls_lane_s32): Likewise.
4093 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
4094 (vqdmlsl_lane_s32): Likewise.
4095 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
4096 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
4097 (vqrdmulhh_lane_s16): Likewise.
4098 (vqdmlsl_high_lane_s16): Likewise.
4099 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
4100 (vqdmlsl_high_lane_s32): Likewise.
4101 (vqrdmulhs_lane_s32): Likewise.
4103 2014-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
4105 Backport from Mainline
4106 2014-06-20 Jakub Jelinek <jakub@redhat.com>
4107 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
4109 PR tree-optimization/61306
4110 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
4111 expression instead of its size.
4112 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
4113 false to prevent optimization when the result is unpredictable due to
4114 arithmetic right shift of signed type with highest byte is set.
4115 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
4116 (find_bswap_1): Likewise. Return NULL to prevent optimization when the
4117 result is unpredictable due to sign extension.
4118 (find_bswap): Adapt to change in struct symbolic_number.
4120 2014-06-27 Martin Jambor <mjambor@suse.cz>
4123 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
4124 args_to_skip, use those from node instead. Copy args_to_skip and
4125 combined_args_to_skip from node to the new thunk.
4126 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
4127 (cgraph_create_virtual_clone): Moved computation of
4128 combined_args_to_skip...
4129 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
4131 2014-06-27 Uros Bizjak <ubizjak@gmail.com>
4133 Backport from mainline
4134 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
4137 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
4139 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4142 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
4143 extraction other than index 3.
4145 2014-06-26 Marc Glisse <marc.glisse@inria.fr>
4148 * config/i386/i386.md (x86_64_shrd, x86_shrd,
4149 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
4151 2014-06-26 Martin Jambor <mjambor@suse.cz>
4153 Backport from mainline
4154 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
4155 renamed to ipa_impossible_devirt_target. Fix typo.
4156 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
4157 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
4158 ipa_impossible_devirt_target.
4160 2014-06-24 Jakub Jelinek <jakub@redhat.com>
4163 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
4164 model family 6 CPU with has_longmode never use a CPU without
4167 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
4168 not mentioned in clauses use private clause if the iterator is
4169 declared in #pragma omp for simd, and when adding lastprivate
4170 instead, add it to the outer #pragma omp for too. Diagnose
4171 if the variable is private in outer context. For simd collapse > 1
4172 loops, replace all iterators with temporaries.
4173 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
4174 same even in collapse > 1 loops.
4176 2014-06-23 Alan Modra <amodra@gmail.com>
4179 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
4180 to zero on debug statements.
4182 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4184 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
4186 (aarch64_sqrdmulh_lane<mode>): Likewise.
4187 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
4188 (aarch64_sq<r>dmulh_lane<mode>_interna): ...this.
4189 (aarch64_sqdmulh_laneq<mode>): New expander.
4190 (aarch64_sqrdmulh_laneq<mode>): Likewise.
4191 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
4192 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
4193 (aarch64_sqdmulh_lane<mode>): New expander.
4194 (aarch64_sqrdmulh_lane<mode>): Likewise.
4195 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
4196 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
4197 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
4198 (aarch64_sqdmlal_laneq<mode>): Likewise.
4199 (aarch64_sqdmlsl_lane<mode>): Likewise.
4200 (aarch64_sqdmlsl_laneq<mode>): Likewise.
4201 (aarch64_sqdmlal2_lane<mode>): Likewise.
4202 (aarch64_sqdmlal2_laneq<mode>): Likewise.
4203 (aarch64_sqdmlsl2_lane<mode>): Likewise.
4204 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
4205 (aarch64_sqdmull_lane<mode>): Likewise.
4206 (aarch64_sqdmull_laneq<mode>): Likewise.
4207 (aarch64_sqdmull2_lane<mode>): Likewise.
4208 (aarch64_sqdmull2_laneq<mode>): Likewise.
4210 2014-06-20 Martin Jambor <mjambor@suse.cz>
4213 * ipa-prop.c (impossible_devirt_target): New function.
4214 (try_make_edge_direct_virtual_call): Use it, also instead of
4217 2014-06-20 Martin Jambor <mjambor@suse.cz>
4220 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
4223 2014-06-20 Chung-Lin Tang <cltang@codesourcery.com>
4225 Backport from mainline
4227 2014-06-20 Julian Brown <julian@codesourcery.com>
4228 Chung-Lin Tang <cltang@codesourcery.com>
4230 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
4231 TARGET_THUMB1_ONLY. Add comments.
4233 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
4235 Backport from mainline
4236 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
4238 * config/i386/i386.c (decide_alg): Correctly handle
4239 maximum size of stringop algorithm.
4241 2014-06-18 Richard Henderson <rth@redhat.com>
4244 * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM.
4246 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
4249 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
4250 variable 'size'; calculate 'size' right in the front; use
4251 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
4252 pcum->aapcs_stack_words.
4254 2014-06-17 Nick Clifton <nickc@redhat.com>
4256 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
4257 (umulhi3, mulsidi3, umulsidi3): Likewise.
4259 2014-06-17 Uros Bizjak <ubizjak@gmail.com>
4261 Backport from mainline
4262 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
4265 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
4266 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
4267 and corresponding splitters. Zero extend general register
4268 or memory input operand to XMM temporary. Enable for
4269 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
4270 (floatunssi<mode>2): Update expander predicate.
4272 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
4274 PR rtl-optimization/61325
4275 * lra-constraints.c (valid_address_p): Add forward declaration.
4276 (simplify_operand_subreg): Check address validity before and after
4277 alter_reg of memory subreg.
4279 2014-06-18 Jakub Jelinek <jakub@redhat.com>
4282 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
4284 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
4286 Backport from mainline
4288 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
4290 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
4291 (BU_MISC_2): Rename to ...
4292 (BU_LDBL128_2): ... this.
4293 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
4294 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
4295 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
4297 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
4298 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
4299 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
4300 (unpacktf_1): Likewise.
4301 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
4302 (__builtin_longdouble_dw1): Likewise.
4303 * doc/sourcebuild.texi (longdouble128): Document.
4305 2014-06-13 Jeff Law <law@redhat.com>
4307 Backports from mainline:
4308 2014-06-13 Jeff Law <law@redhat.com>
4310 PR rtl-optimization/61094
4311 PR rtl-optimization/61446
4312 * ree.c (combine_reaching_defs): Get the mode for the copy from
4313 the extension insn rather than the defining insn.
4315 2014-06-02 Jeff Law <law@redhat.com>
4317 PR rtl-optimization/61094
4318 * ree.c (combine_reaching_defs): Do not reextend an insn if it
4319 was marked as do_no_reextend. If a copy is needed to eliminate
4320 an extension, then mark it as do_not_reextend.
4322 2014-06-13 Martin Jambor <mjambor@suse.cz>
4325 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
4326 cache_token if returning early.
4328 2014-06-12 Jakub Jelinek <jakub@redhat.com>
4331 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
4332 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
4333 if outer combined construct is distribute.
4334 (gimplify_omp_for): For OMP_DISTRIBUTE set
4335 gimplify_omp_ctxp->distribute.
4336 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
4337 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
4338 mapping into decl map.
4340 2014-06-12 Jeff Law <law@redhat.com>
4342 Backports from mainline:
4344 2014-06-12 Jeff Law <law@redhat.com>
4346 PR tree-optimization/61009
4347 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
4348 value when we stop processing a block due to problematic PHIs.
4350 2014-06-05 Jeff Law <law@redhat.com>
4352 PR tree-optimization/61289
4353 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
4354 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
4355 looking for those which match LHS. All callers changed.
4356 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
4357 parameters and code which manipulated them. All callers changed.
4358 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
4359 and DST_MAP parameters. Simplify invalidation code by just calling
4360 invalidate_equivalences. All callers changed.
4361 (thread_across_edge): Simplify now that we don't need to maintain
4362 the map of equivalences to invalidate.
4364 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
4366 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
4368 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
4370 Backport from 2014-05-14 trunk r210418
4371 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
4372 shifted values to avoid build warning.
4374 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
4376 Backport from 2014-05-09 trunk r210272
4378 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
4379 unsigned int initializers for regno_in, regno_out.
4381 Backport from 2014-06-12 trunk r211491
4384 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
4385 loading from address spaces.
4387 2014-06-12 Alan Modra <amodra@gmail.com>
4390 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
4391 * doc/tm.texi: Regenerate.
4392 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
4393 Use throughout in place of REG_PARM_STACK_SPACE.
4394 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
4395 "incoming" param. Pass to rs6000_function_parms_need_stack.
4396 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
4397 prototype_p when incoming. Use function decl when incoming
4398 to handle K&R style functions.
4399 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
4400 (INCOMING_REG_PARM_STACK_SPACE): Define.
4402 2014-06-11 Richard Biener <rguenther@suse.de>
4404 PR tree-optimization/61452
4405 * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
4406 expr and has_constants in case we found a leader.
4407 (simplify_binary_expression): Always valueize operands first.
4408 (simplify_unary_expression): Likewise.
4410 2014-06-11 Richard Biener <rguenther@suse.de>
4413 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
4414 Do not use the main variant for the type comparison.
4416 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4418 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
4420 Simplify description of __crc32d and __crc32cd intrinsics.
4421 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
4424 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
4426 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
4427 call statement, if any.
4428 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
4429 statements, if any. Tidy up.
4431 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
4433 Back port from trunk
4434 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
4437 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
4438 iterators, VSX_D that handles 64-bit types, and VSX_LE that
4439 handles swapping the two 64-bit double words on little endian
4440 systems. Include V1TImode and optionally TImode in VSX_LE so that
4441 these types are properly swapped. Change all of the insns and
4442 splits that do the 64-bit swaps to use VSX_LE.
4443 (vsx_le_perm_load_<mode>): Likewise.
4444 (vsx_le_perm_store_<mode>): Likewise.
4445 (splitters for little endian memory operations): Likewise.
4446 (vsx_xxpermdi2_le_<mode>): Likewise.
4447 (vsx_lxvd2x2_le_<mode>): Likewise.
4448 (vsx_stxvd2x2_le_<mode>): Likewise.
4450 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
4452 PR rtl-optimization/61325
4453 * lra-constraints.c (process_address_1): Check scale equal to one
4454 to prevent transformation: base + scale * index => base + new_reg.
4456 2014-06-05 Martin Jambor <mjambor@suse.cz>
4459 * ipa-cp.c (determine_versionability): Pretend that tm_clones are
4462 2014-06-04 Richard Biener <rguenther@suse.de>
4464 PR tree-optimization/61383
4465 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
4468 2014-06-02 Jason Merrill <jason@redhat.com>
4471 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
4473 2014-06-03 Martin Jambor <mjambor@suse.cz>
4476 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
4479 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
4481 Backport from mainline
4482 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
4484 PR rtl-optimization/60866
4485 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
4486 Default it to -1. Pass it down to init_simplejump_data.
4487 (init_simplejump_data): New parameter old_seqno. Pass it down
4488 to get_seqno_for_a_jump.
4489 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
4490 initializing new jump seqno as a last resort. Add comment.
4491 (sel_redirect_edge_and_branch): Save old seqno of the conditional
4492 jump and pass it down to sel_init_new_insn.
4493 (sel_redirect_edge_and_branch_force): Likewise.
4495 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
4497 Backport from mainline
4498 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
4500 PR rtl-optimization/60901
4501 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
4502 bb predecessor belongs to the same scheduling region. Adjust comment.
4504 2014-06-03 Uros Bizjak <ubizjak@gmail.com>
4506 Backport from mainline
4507 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
4510 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
4511 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
4513 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
4515 PR rtl-optimization/61325
4516 * lra-constraints.c (process_address): Rename to
4518 (process_address): New function.
4520 2014-05-29 Uros Bizjak <ubizjak@gmail.com>
4522 Backport from mainline
4523 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
4526 * config/i386/i386.c (ix86_rtx_costs)
4527 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
4530 2014-05-28 Eric Botcazou <ebotcazou@adacore.com>
4532 Backport from mainline
4533 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
4535 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
4536 predicate to detect a negative quotient.
4538 2014-05-28 Richard Biener <rguenther@suse.de>
4540 Backport from mainline
4541 2014-05-28 Richard Biener <rguenther@suse.de>
4544 * fold-const.c (fold_comparison): When folding
4545 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
4546 the sign of the remaining constant operand stays the same.
4548 2014-05-05 Richard Biener <rguenther@suse.de>
4551 * fold-const.c (fold_binary_loc): Consistently avoid
4552 canonicalizing X & CST away from a CST that is the mask
4555 2014-04-28 Richard Biener <rguenther@suse.de>
4557 PR tree-optimization/60979
4558 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
4559 SCOPs that end in a block with a successor with abnormal
4562 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4564 * configure.ac ($gcc_cv_ld_clearcap): New test.
4565 * configure: Regenerate.
4566 * config.in: Regenerate.
4567 * config/sol2.opt (mclear-hwcap): New option.
4568 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
4569 * config/sol2-clearcap.map: Moved here from
4570 testsuite/gcc.target/i386/clearcap.map.
4571 * config/sol2-clearcapv2.map: Move here from
4572 gcc.target/i386/clearcapv2.map.
4573 * config/t-sol2 (install): Depend on install-clearcap-map.
4574 (install-clearcap-map): New target.
4575 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
4578 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
4581 * config/dbx.h (License): Add Runtime Library Exception.
4582 * config/newlib-stdint.h (License): Same.
4583 * config/rtems.h (License): Same
4584 * config/initfini-array.h (License): Same
4585 * config/v850/v850.h (License): Same.
4586 * config/v850/v850-opts.h (License): Same
4587 * config/v850/rtems.h (License): Same.
4589 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
4592 * doc/extend.texi (Local Labels): Note that label differences are
4593 not supported for AVR.
4595 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
4597 Backport from 2014-05-12 mainline r210322.
4598 Backport from 2014-05-27 mainline r210959, r210969.
4601 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
4602 * config/arm/arm-cores.def (License): Same.
4603 * config/arm/arm-opts.h (License): Same.
4604 * config/arm/aout.h (License): Same.
4605 * config/arm/bpabi.h (License): Same.
4606 * config/arm/elf.h (License): Same.
4607 * config/arm/linux-elf.h (License): Same.
4608 * config/arm/linux-gas.h (License): Same.
4609 * config/arm/netbsd-elf.h (License): Same.
4610 * config/arm/uclinux-eabi.h (License): Same.
4611 * config/arm/uclinux-elf.h (License): Same.
4612 * config/arm/vxworks.h (License): Same.
4614 2014-05-26 Michael Tautschnig <mt@debian.org>
4617 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
4618 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
4620 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
4622 PR rtl-optimization/61215
4623 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
4624 simplify_gen_subreg until final substitution.
4626 2014-05-23 Alan Modra <amodra@gmail.com>
4629 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
4630 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
4631 Use "Y" constraint rather than "m".
4633 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
4635 PR rtl-optimization/60969
4636 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
4637 constraints. Set up mem cost for NO_REGS case.
4639 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
4641 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
4643 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
4646 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
4648 2014-05-22 Nick Clifton <nickc@redhat.com>
4650 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
4652 2014-05-22 Jakub Jelinek <jakub@redhat.com>
4654 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
4655 all padding bits in REAL_VALUE_TYPE are cleared.
4657 2014-05-21 Guozhi Wei <carrot@google.com>
4660 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
4662 (vqdmulhq_n_s16): Likewise.
4664 2014-05-21 Martin Jambor <mjambor@suse.cz>
4666 * doc/invoke.texi (Optimize Options): Document parameters
4667 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
4668 ipa-cp-array-index-hint-bonus.
4670 2014-05-21 Jakub Jelinek <jakub@redhat.com>
4673 * omp-low.c (handle_simd_reference): New function.
4674 (lower_rec_input_clauses): Use it. Defer adding reference
4675 initialization even for reduction without placeholder if in simd,
4676 handle it properly later on.
4678 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
4681 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
4683 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
4684 (ipa_inline): Loop inline_to_all_callers until no more aliases
4687 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
4690 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
4692 2014-05-20 DJ Delorie <dj@redhat.com>
4694 * config/msp430/msp430.md (split): Don't allow subregs when
4695 splitting SImode adds.
4696 (andneghi): Fix subtraction logic.
4697 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
4699 2014-05-20 Nick Clifton <nickc@redhat.com>
4701 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
4702 (msp430_gimplify_va_arg_expr): New function.
4703 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
4705 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
4706 operand 0 in order to prevent confusion about the number of
4709 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4711 * config/arm/arm.md (arith_shiftsi): Do not predicate for
4714 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
4716 * arm.c (thumb1_reorg): When scanning backwards skip anything
4717 that's not a proper insn.
4719 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4721 * ipa.c (symtab_remove_unreachable_nodes): Remove
4722 symbol from comdat group if its body was eliminated.
4723 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
4724 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
4725 (symtab_unregister_node): ... this one.
4726 (verify_symtab_base): More strict checking of comdats.
4727 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
4729 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4731 * opts.c (common_handle_option): Disable -fipa-reference coorectly
4734 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4737 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
4738 external aliases alive, too.
4740 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
4742 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
4744 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
4746 Backport from mainline
4747 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
4750 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
4753 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
4755 PR rtl-optimization/60969
4756 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
4757 Calculate costs for this case.
4759 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
4762 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
4763 (__TM_simple_begin): Use it.
4764 (__TM_begin): Likewise.
4766 2014-05-15 Martin Jambor <mjambor@suse.cz>
4769 * ipa-prop.c (update_indirect_edges_after_inlining): Check
4770 type_preserved flag when the indirect edge is polymorphic.
4772 2014-05-15 Martin Jambor <mjambor@suse.cz>
4775 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
4777 2014-05-15 Jakub Jelinek <jakub@redhat.com>
4779 PR tree-optimization/61158
4780 * fold-const.c (fold_binary_loc): If X is zero-extended and
4781 shiftc >= prec, make sure zerobits is all ones instead of
4782 invoking undefined behavior.
4784 2014-05-14 Cary Coutant <ccoutant@google.com>
4787 * opts.c (common_handle_option): Don't special-case "-g".
4788 (set_debug_level): Default to at least level 2 with "-g".
4790 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
4792 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
4794 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
4795 * config/sparc/sparc.md (fptype_ut699): New attribute.
4796 (in_branch_delay): Return false if -mfix-ut699 is specified and
4797 fptype_ut699 is set to single.
4798 (truncdfsf2): Add fptype_ut699 attribute.
4799 (fix_truncdfsi2): Likewise.
4800 (floatsisf2): Change fptype attribute.
4801 (fix_truncsfsi2): Likewise.
4802 (negtf2_notv9): Delete.
4803 (negtf2_v9): Likewise.
4804 (negtf2_hq): New instruction.
4805 (negtf2): New instruction and splitter.
4806 (negdf2_notv9): Rewrite.
4807 (abstf2_notv9): Delete.
4808 (abstf2_hq_v9): Likewise.
4809 (abstf2_v9): Likewise.
4810 (abstf2_hq): New instruction.
4811 (abstf2): New instruction and splitter.
4812 (absdf2_notv9): Rewrite.
4814 2014-05-14 Matthias Klose <doko@ubuntu.com>
4817 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
4818 Matthias Klose <doko@ubuntu.com>
4821 * optc-gen.awk: Fix option handling for -Wunused-parameter.
4823 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
4825 * doc/sourcebuild.texi: (dfp_hw): Document.
4826 (p8vector_hw): Likewise.
4827 (powerpc_eabi_ok): Likewise.
4828 (powerpc_elfv2): Likewise.
4829 (powerpc_htm_ok): Likewise.
4830 (ppc_recip_hw): Likewise.
4833 2014-05-13 Jeff Law <law@redhat.com>
4835 Backports fromm mainline:
4837 2014-05-08 Jeff Law <law@redhat.com>
4839 PR tree-optimization/61009
4840 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
4841 tri-state rather than a boolean. When a block is too big to
4842 thread through, inform caller via negative return value.
4843 (thread_across_edge): If a block was too big for normal threading,
4844 then it's too big for a joiner too, so remove temporary equivalences
4845 and return immediately.
4847 2014-04-28 Jeff Law <law@redhat.com>
4849 PR tree-optimization/60902
4850 * tree-ssa-threadedge.c
4851 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
4852 over real defs when invalidating outputs from statements that do not
4853 produce useful outputs for threading.
4855 2014-04-23 Jeff Law <law@redhat.com>
4857 PR tree-optimization/60902
4858 * tree-ssa-threadedge.c
4859 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
4860 invalidate outputs from statements that do not produce useful
4861 outputs for threading.
4863 2014-05-13 Richard Biener <rguenther@suse.de>
4866 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
4867 it needs revisiting whether the call still may be tail-called.
4869 2014-05-13 Jakub Jelinek <jakub@redhat.com>
4872 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
4873 is const0_rtx, return immediately. Don't test count == 0 when
4876 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4878 Backport from mainline
4879 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4882 * config/avr/avr.c (avr_out_store_psi): Use correct constant
4885 2014-05-09 Uros Bizjak <ubizjak@gmail.com>
4887 Backport from mainline
4888 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
4891 * config/alpha/alpha.c: Include gimple-iterator.h.
4892 (alpha_gimple_fold_builtin): New function. Move
4893 ALPHA_BUILTIN_UMULH folding from ...
4894 (alpha_fold_builtin): ... here.
4895 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
4897 2014-05-09 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
4899 Backport from 2014-04-16 trunk r209446
4900 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
4902 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
4904 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
4906 Backport from 2014-05-09 trunk r210267
4909 * config/avr/avr.md (cc): Add new attribute set_vzn.
4910 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
4911 Set cc insn attribute to set_vzn instead of set_zn for alternatives
4912 with INC, DEC or NEG.
4913 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
4914 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
4915 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
4917 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
4918 Matthias Klose <doko@ubuntu.com>
4921 * optc-gen.awk: Fix option handling for -Wunused-parameter.
4923 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
4926 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
4928 2014-05-05 Marek Polacek <polacek@redhat.com>
4930 Back port from mainline
4931 2014-05-05 Marek Polacek <polacek@redhat.com>
4934 * opts.c (common_handle_option): Call error_at instead of warning_at.
4936 2014-05-04 Jan Hubicka <hubicka@ucw.cz>
4939 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
4941 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
4943 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
4944 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
4945 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
4946 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
4947 Use RS6000_BTM_HARD_FLOAT.
4948 (BU_MISC_2): Likewise.
4949 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
4950 RS6000_BTM_HARD_FLOAT.
4951 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
4953 (rs6000_invalid_builtin): Add hard floating builtin support.
4954 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
4955 hard float builtins.
4956 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
4958 2014-05-03 Joey Ye <joey.ye@arm.com>
4960 Backport from mainline r209463
4961 2014-04-17 Joey Ye <joey.ye@arm.com>
4963 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
4965 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
4967 Back port from mainline
4969 * config/sh/sh.c: Include stdlib headers before everything else.
4971 2014-05-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4973 PR tree-optimization/60930
4974 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
4975 creating a multiply candidate by folding two constant
4976 multiplicands when the result overflows.
4978 2014-05-02 Jakub Jelinek <jakub@redhat.com>
4980 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
4981 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
4982 (gimplify_adjust_omp_clauses): Simd region is never
4983 directly nested in combined parallel. Instead, for linear
4984 with copyin/copyout, if in combined for simd loop, make decl
4985 firstprivate/lastprivate on OMP_FOR.
4986 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
4987 expand_omp_for_static_chunk): When setting endvar, also set
4988 fd->loop.v to the same value.
4990 2014-05-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4992 Back port from mainline
4993 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4995 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
4996 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
4997 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
4998 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
4999 (TARGET_CRYPTO): Take TARGET_SIMD into account.
5001 2014-04-30 Michael Meissner <meissner@linux.vnet.ibm.com>
5003 Back port from mainline
5004 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
5006 * doc/extend.texi (PowerPC Built-in Functions): Document new
5007 powerpc extended divide, bcd, pack/unpack 128-bit, builtin
5009 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
5011 * config/rs6000/predicates.md (const_0_to_3_operand): New
5012 predicate to match 0..3 integer constants.
5014 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
5015 to support adding miscellaneous builtin functions.
5016 (BU_DFP_MISC_2): Likewise.
5017 (BU_P7_MISC_1): Likewise.
5018 (BU_P7_MISC_2): Likewise.
5019 (BU_P8V_MISC_3): Likewise.
5020 (BU_MISC_1): Likewise.
5021 (BU_MISC_2): Likewise.
5022 (DIVWE): Add extended divide builtin functions.
5025 (DIVWEUO): Likewise.
5029 (DIVDEUO): Likewise.
5030 (DXEX): Add decimal floating-point builtin functions.
5033 (DDEDPDQ): Likewise.
5035 (DENBCDQ): Likewise.
5042 (CDTBCD): Add new BCD builtin functions.
5046 (BCDADD_LT): Likewise.
5047 (BCDADD_EQ): Likewise.
5048 (BCDADD_GT): Likewise.
5049 (BCDADD_OV): Likewise.
5051 (BCDSUB_LT): Likewise.
5052 (BCDSUB_EQ): Likewise.
5053 (BCDSUB_GT): Likewise.
5054 (BCDSUB_OV): Likewise.
5055 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
5056 (UNPACK_TD): Likewise.
5057 (PACK_TF): Likewise.
5058 (UNPACK_TF): Likewise.
5059 (UNPACK_TF_0): Likewise.
5060 (UNPACK_TF_1): Likewise.
5061 (PACK_V1TI): Likewise.
5062 (UNPACK_V1TI): Likewise.
5064 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
5065 support for decimal floating point builtin functions.
5066 (rs6000_expand_ternop_builtin): Add checks for the new builtin
5067 functions that take constant arguments.
5068 (rs6000_invalid_builtin): Add decimal floating point builtin
5070 (rs6000_init_builtins): Setup long double, _Decimal64, and
5071 _Decimal128 types for new builtin functions.
5072 (builtin_function_type): Set the unsigned flags appropriately for
5073 the new builtin functions.
5074 (rs6000_opt_masks): Add support for decimal floating point builtin
5077 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
5078 floating point builtin functions.
5079 (RS6000_BTM_COMMON): Likewise.
5080 (RS6000_BTI_long_double): Likewise.
5081 (RS6000_BTI_dfloat64): Likewise.
5082 (RS6000_BTI_dfloat128): Likewise.
5083 (long_double_type_internal_node): Likewise.
5084 (dfloat64_type_internal_node): Likewise.
5085 (dfloat128_type_internal_node): Likewise.
5087 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
5088 2.07 bcd arithmetic instructions.
5089 (UNSPEC_BCDSUB): Likewise.
5090 (UNSPEC_BCD_OVERFLOW): Likewise.
5091 (UNSPEC_BCD_ADD_SUB): Likewise.
5092 (bcd_add_sub): Likewise.
5093 (BCD_TEST): Likewise.
5094 (bcd<bcd_add_sub>): Likewise.
5095 (bcd<bcd_add_sub>_test): Likewise.
5096 (bcd<bcd_add_sub>_test2): Likewise.
5097 (bcd<bcd_add_sub>_<code>): Likewise.
5098 (peephole2 for combined bcd ops): Likewise.
5100 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
5101 decimal floating point builtin functions.
5102 (UNSPEC_DENBCD): Likewise.
5103 (UNSPEC_DXEX): Likewise.
5104 (UNSPEC_DIEX): Likewise.
5105 (UNSPEC_DSCLI): Likewise.
5106 (UNSPEC_DSCRI): Likewise.
5107 (D64_D128): Likewise.
5108 (dfp_suffix): Likewise.
5109 (dfp_ddedpd_<mode>): Likewise.
5110 (dfp_denbcd_<mode>): Likewise.
5111 (dfp_dxex_<mode>): Likewise.
5112 (dfp_diex_<mode>): Likewise.
5113 (dfp_dscli_<mode>): Likewise.
5114 (dfp_dscri_<mode>): Likewise.
5116 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
5118 (UNSPEC_CDTBCD): Likewise.
5119 (UNSPEC_CBCDTD): Likewise.
5120 (UNSPEC_DIVE): Add support for new extended divide builtin
5122 (UNSPEC_DIVEO): Likewise.
5123 (UNSPEC_DIVEU): Likewise.
5124 (UNSPEC_DIVEUO): Likewise.
5125 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
5126 pack/unpack 128-bit types.
5127 (UNSPEC_PACK_128BIT): Likewise.
5128 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
5129 (udiv<mode>3): Use idiv_ldiv mode attribute.
5130 (div<mode>3): Likewise.
5131 (addg6s): Add new BCD builtin functions.
5134 (UNSPEC_DIV_EXTEND): Add support for new extended divide
5136 (div_extend): Likewise.
5137 (div<div_extend>_<mode>"): Likewise.
5138 (FP128_64): Add support for new builtin functions to pack/unpack
5140 (unpack<mode>): Likewise.
5141 (unpacktf_0): Likewise.
5142 (unpacktf_1): Likewise.
5143 (unpack<mode>_dm): Likewise.
5144 (unpack<mode>_nodm): Likewise.
5145 (pack<mode>): Likewise.
5146 (unpackv1ti): Likewise.
5147 (packv1ti): Likewise.
5149 2014-04-29 Pat Haugen <pthaugen@us.ibm.com>
5151 Backport from mainline
5152 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
5154 * config/rs6000/rs6000.md (addti3, subti3): New.
5156 2014-04-29 Jakub Jelinek <jakub@redhat.com>
5158 PR tree-optimization/60971
5159 * tree-tailcall.c (process_assignment): Reject conversions which
5162 2014-04-29 Nick Clifton <nickc@redhat.com>
5164 * config/msp430/msp430.md (umulsidi): Fix typo.
5165 (mulhisi3): Enable even inside interrupt handlers.
5166 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
5167 bigger return address pushed in large mode.
5169 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
5171 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
5172 (loadsync_<mode>): Change mode.
5173 (load_quadpti, store_quadpti): New.
5174 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
5175 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
5177 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
5179 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
5180 * configure: Regenerate.
5181 * config/sparc/sparc.opt (muser-mode): New option.
5182 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
5184 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
5185 * doc/invoke.texi (SPARC options): Document -muser-mode.
5187 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
5189 * doc/install.texi (Building with profile feedback): Remove
5192 2014-04-26 Tom de Vries <tom@codesourcery.com>
5194 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
5197 2014-04-25 Jakub Jelinek <jakub@redhat.com>
5199 PR tree-optimization/60960
5200 * tree-vect-generic.c (expand_vector_operation): Only call
5201 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
5203 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
5206 * config/sparc/sparc.md (ashlsi3_extend): Delete.
5208 2014-04-25 Richard Biener <rguenther@suse.de>
5211 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
5212 call stmt use/clobber sets during stmt walk instead of
5213 walking the possibly incomplete set of caller edges.
5215 2014-04-25 Richard Biener <rguenther@suse.de>
5218 * passes.c (apply_ipa_transforms): Inline into only caller ...
5219 (execute_one_pass): ... here. Properly bring in function
5220 bodies for nodes we want to apply IPA transforms to.
5222 2014-04-24 Jakub Jelinek <jakub@redhat.com>
5224 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
5225 * gimplify.c (omp_is_private): Change last argument's type to int.
5226 Only diagnose lastprivate if the simd argument is 1, only diagnose
5227 linear if the simd argument is 2.
5228 (gimplify_omp_for): Adjust omp_is_private callers. When adding
5229 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
5230 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
5231 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
5232 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
5233 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
5234 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
5235 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
5236 * tree-nested.c (convert_nonlocal_omp_clauses,
5237 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
5239 2014-04-23 Uros Bizjak <ubizjak@gmail.com>
5241 Backport from mainline
5242 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
5245 * config/i386/i386.c (ix86_expand_builtin)
5246 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
5247 register for target RTX.
5248 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
5250 2014-04-23 Richard Biener <rguenther@suse.de>
5252 PR tree-optimization/60903
5253 * tree-ssa-loop-im.c (analyze_memory_references): Remove
5254 commented code block.
5255 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
5256 loop flags to newly created BBs and edges.
5258 2014-04-23 Nick Clifton <nickc@redhat.com>
5260 * config/msp430/msp430.c (msp430_handle_option): Move function
5262 (msp430_option_override): Simplify mcu and mcpu option handling.
5263 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
5264 support for -mhwmult command line option.
5265 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
5266 -mhwmult command line option.
5267 (msp430_hwmult_enabled): Delete.
5268 (msp43o_output_labelref): Add support for -mhwmult command line
5270 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
5271 (umulsidi3): Likewise.
5272 * config/msp430/msp430.opt (mmcu): Add Report attribute.
5273 (mcpu, mlarge, msmall): Likewise.
5274 (mhwmult): New option.
5275 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
5277 (msp430_is_f5_mcu): Remove prototype.
5278 (msp430_use_f5_series_hwmult): Add prototype.
5279 * config/msp430/msp430-opts.h: New file.
5280 * common/config/msp430: New directory.
5281 * common/config/msp430/msp430-common.c: New file.
5282 * config.gcc (msp430): Remove target_has_targetm_common.
5283 * doc/invoke.texi: Document -mhwmult command line option.
5285 2014-04-23 Nick Clifton <nickc@redhat.com>
5287 * config/i386/cygwin.h (ENDFILE_SPEC): Include
5288 default-manifest.o if it can be found in the search path.
5289 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
5291 2014-04-23 Richard Biener <rguenther@suse.de>
5293 Backport from mainline
5294 2014-04-14 Richard Biener <rguenther@suse.de>
5297 * lto-streamer-out.c (wrap_refs): New function.
5298 (lto_output): Wrap symbol references in global initializes in
5299 type-preserving MEM_REFs.
5301 2014-04-23 Richard Biener <rguenther@suse.de>
5304 * tree-inline.c (declare_return_variable): Use mark_addressable.
5306 2014-04-23 Richard Biener <rguenther@suse.de>
5309 * loop-init.c (loop_optimizer_init): Make sure to apply
5310 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
5312 2014-04-22 Michael Meissner <meissner@linux.vnet.ibm.com>
5314 Backport from mainline
5315 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
5318 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
5319 If mode is DDmode and TARGET_E500_DOUBLE allow move.
5321 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
5322 more debug information for E500 if -mdebug=reg.
5324 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
5326 Backport from mainline
5327 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
5330 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
5331 on count_exp to get mode.
5333 2014-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5335 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
5337 (vsx_xxmrglw_<mode>): Likewise.
5339 2014-04-22 Richard Biener <rguenther@suse.de>
5341 Backport from mainline
5342 2014-04-14 Richard Biener <rguenther@suse.de>
5345 * fold-const.c (negate_expr_p): Don't negate directional rounding
5347 (fold_negate_expr): Likewise.
5349 2014-04-22 Richard Biener <rguenther@suse.de>
5351 Backport from mainline
5352 2014-04-17 Richard Biener <rguenther@suse.de>
5355 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
5356 boolean results for comparisons.
5358 2014-04-22 Richard Biener <rguenther@suse.de>
5360 Backport from mainline
5361 2014-04-17 Richard Biener <rguenther@suse.de>
5363 PR tree-optimization/60841
5364 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
5365 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
5366 of stmts to SLP build.
5367 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
5368 (vect_analyze_slp): Likewise.
5369 (vect_analyze_slp_instance): Likewise.
5370 (vect_build_slp_tree): Limit overall SLP tree growth.
5371 * tree-vectorizer.h (vect_analyze_data_refs,
5372 vect_analyze_slp): Adjust prototypes.
5374 2014-04-22 Richard Biener <rguenther@suse.de>
5376 Backport from mainline
5377 2014-04-17 Richard Biener <rguenther@suse.de>
5379 PR tree-optimization/60836
5380 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
5381 initial PHI args to be gimple values.
5383 2014-04-22 Richard Biener <rguenther@suse.de>
5385 Backport from mainline
5386 2014-04-14 Richard Biener <rguenther@suse.de>
5388 PR tree-optimization/59817
5389 PR tree-optimization/60453
5390 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
5391 recursion to catch all CHRECs in the scalar evolution and restrict
5392 the predicate for the remains appropriately.
5394 2014-04-22 Jakub Jelinek <jakub@redhat.com>
5396 PR tree-optimization/60823
5397 * omp-low.c (ipa_simd_modify_function_body): Go through
5398 all SSA_NAMEs and for those refering to vector arguments
5399 which are going to be replaced adjust SSA_NAME_VAR and,
5400 if it is a default definition, change it into a non-default
5401 definition assigned at the beginning of function from new_decl.
5402 (ipa_simd_modify_stmt_ops): Rewritten.
5403 * tree-dfa.c (set_ssa_default_def): When removing default def,
5404 check for NULL loc instead of NULL *loc.
5406 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
5409 * asan.c (asan_emit_stack_protection): Force the base to align to
5410 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
5411 appropriate bits if STRICT_ALIGNMENT.
5412 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
5414 (expand_used_vars): Leave a space in the stack frame for alignment
5415 if STRICT_ALIGNMENT.
5417 2014-04-22 Jakub Jelinek <jakub@redhat.com>
5419 Backported from mainline
5420 2014-04-16 Jakub Jelinek <jakub@redhat.com>
5422 PR tree-optimization/60844
5423 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
5424 (propagate_op_to_single_use, remove_visited_stmt_chain,
5425 linearize_expr, repropagate_negates, reassociate_bb): Use it
5426 instead of gsi_remove.
5428 2014-04-22 Jakub Jelinek <jakub@redhat.com>
5430 * BASE-VER: Set to 4.9.1.
5431 * DEV-PHASE: Set to prerelease.
5433 2014-04-22 Release Manager
5435 * GCC 4.9.0 released.
5437 2014-04-18 Richard Henderson <rth@redhat.com>
5439 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
5440 to GET_MODE_SIZE, not a reg_class_t.
5442 2014-04-17 Jakub Jelinek <jakub@redhat.com>
5445 Forward port from 4.8 branch
5446 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
5448 * config/i386/bmiintrin.h (_blsi_u32): New.
5452 (_blsmsk_u32): Ditto.
5453 (_blsmsk_u64): Ditto.
5454 (_tzcnt_u32): Ditto.
5455 (_tzcnt_u64): Ditto.
5457 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5460 Revert the following patch
5462 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
5465 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
5466 software floating point or no floating point registers, do not
5467 allow any type in the FPRs. Eliminate a test for SPE SIMD types
5468 in GPRs that occurs after we tested for GPRs that would never be
5471 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
5472 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
5473 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
5474 specifically allow DDmode, since that does not use the SPE SIMD
5477 2014-04-15 Jakub Jelinek <jakub@redhat.com>
5480 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
5483 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
5485 * doc/invoke.texi (free): Document AArch64.
5487 2013-04-11 Jakub Jelinek <jakub@redhat.com>
5489 * DEV-PHASE: Set to prerelease.
5491 2014-04-11 Tobias Burnus <burnus@net-b.de>
5494 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
5495 * doc/gcc.texi (Service): Update description in the @menu
5496 * doc/invoke.texi (Option Summary): Remove misplaced and
5499 2014-04-11 Steve Ellcey <sellcey@mips.com>
5500 Jakub Jelinek <jakub@redhat.com>
5503 * expr.c (convert_move): Use emit_store_flag_force instead of
5504 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
5507 2014-04-11 Richard Biener <rguenther@suse.de>
5510 * varasm.c (assemble_alias): Avoid endless error reporting
5511 recursion by setting TREE_ASM_WRITTEN.
5513 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5515 * config/s390/s390.md: Add a splitter for NOT rtx.
5517 2014-04-11 Jakub Jelinek <jakub@redhat.com>
5519 PR rtl-optimization/60663
5520 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
5522 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
5523 Jakub Jelinek <jakub@redhat.com>
5526 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
5527 flag from decl_node to node.
5529 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5532 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
5533 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
5534 ameliorating the cases where it can be.
5536 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
5539 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
5541 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
5542 (loadsync_<mode>): Change mode.
5543 (load_quadpti, store_quadpti): New.
5544 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
5545 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
5546 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
5548 2014-04-09 Cong Hou <congh@google.com>
5551 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
5554 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5556 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
5557 instead of vnor to exploit possible fusion opportunity in the
5559 (altivec_expand_vec_perm_const_le): Likewise.
5561 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
5563 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
5564 (loadsync_<mode>): Change mode.
5565 (load_quadpti, store_quadpti): New.
5566 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
5567 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
5569 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
5572 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
5573 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
5574 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
5576 2014-04-08 Richard Biener <rguenther@suse.de>
5579 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
5580 a 64bit widest int print double-int similar to on HWI64 hosts.
5582 2014-04-08 Richard Biener <rguenther@suse.de>
5584 PR tree-optimization/60785
5585 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
5586 default defs properly.
5588 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
5590 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
5591 (Weffc++): Likewise.
5593 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
5595 * ipa-devirt.c (maybe_record_node): When node is not recorded,
5596 set completep to false rather than true.
5598 2014-04-07 Douglas B Rupp <rupp@adacore.com>
5601 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
5602 ARM_TARGET2_DWARF_FORMAT.
5604 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
5607 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
5608 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
5611 2014-04-07 Richard Biener <rguenther@suse.de>
5613 PR tree-optimization/60766
5614 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
5615 (may_eliminate_iv): Convert cand_value_at result to desired type.
5617 2014-04-07 Jason Merrill <jason@redhat.com>
5620 * common.opt (-fno-gnu-unique): Add.
5621 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
5623 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5625 * haifa-sched.c: Fix outdated function reference and minor
5626 grammar errors in introductory comment.
5628 2014-04-07 Richard Biener <rguenther@suse.de>
5631 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
5633 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
5635 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
5638 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
5639 size accounting for thunks.
5640 (pa_asm_output_mi_thunk): Use final_start_function() and
5641 final_end_function() to output function start and end directives.
5643 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
5645 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
5646 device specific ISA/ feature information. Remove short_sp and
5647 errata_skip ds. Add avr_device_specific_features enum to have device
5649 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
5650 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
5651 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
5652 updated device specific info.
5653 * config/avr/avr-mcus.def: Merge device specific details to
5654 dev_attribute field.
5655 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
5657 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
5658 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
5659 assembler if RMW isa supported by current device.
5660 * config/avr/genmultilib.awk: Update as device info structure changed.
5661 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
5663 2014-04-04 Cong Hou <congh@google.com>
5665 PR tree-optimization/60656
5666 * tree-vect-stmts.c (supportable_widening_operation):
5667 Fix a bug that elements in a vector with vect_used_by_reduction
5668 property are incorrectly reordered when the operation on it is not
5669 consistant with the one in reduction operation.
5671 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
5673 PR rtl-optimization/60155
5674 * gcse.c (record_set_data): New function.
5675 (single_set_gcse): New function.
5676 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
5677 (hoist_code): Likewise.
5678 (get_pressure_class_and_nregs): Likewise.
5680 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
5682 * explow.c (probe_stack_range): Emit a final optimization blockage.
5684 2014-04-04 Anthony Green <green@moxielogic.com>
5686 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
5689 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
5692 * lto-cgraph.c (input_overwrite_node): Check that partitioning
5693 flags are set only during streaming.
5694 * ipa.c (process_references, walk_polymorphic_call_targets,
5695 symtab_remove_unreachable_nodes): Drop bodies of always inline
5696 after early inlining.
5697 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
5699 2014-04-04 Jakub Jelinek <jakub@redhat.com>
5700 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5703 * dwarf2out.c (const_ok_for_output_1): Reject expressions
5706 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5709 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
5711 (cortex_a53_fdivd): Likewise.
5713 2014-04-04 Martin Jambor <mjambor@suse.cz>
5716 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
5718 * cgraph.c (clone_of_p): Also return true if thunks match.
5719 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
5720 cgraph_function_or_thunk_node and an obsolete comment.
5721 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
5723 (build_function_decl_skip_args): Likewise.
5724 (set_new_clone_decl_and_node_flags): New function.
5725 (duplicate_thunk_for_node): Likewise.
5726 (redirect_edge_duplicating_thunks): Likewise.
5727 (cgraph_clone_node): New parameter args_to_skip, pass it to
5728 redirect_edge_duplicating_thunks which is called instead of
5729 cgraph_redirect_edge_callee.
5730 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
5731 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
5733 2014-04-04 Jeff Law <law@redhat.com>
5736 * config/arm/predicates.md (const_int_I_operand): New predicate.
5737 (const_int_M_operand): Similarly.
5738 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
5740 (insv_t2, extv_reg, extzv_t2): Likewise.
5741 (load_multiple_with_writeback): Similarly for const_int_I_operand.
5742 (pop_multiple_with_writeback_and_return): Likewise.
5743 (vfp_pop_multiple_with_writeback): Likewise
5745 2014-04-04 Richard Biener <rguenther@suse.de>
5748 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
5749 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
5751 * gimplify.h (gimple_add_tmp_var_fn): Declare.
5752 * gimplify.c (gimple_add_tmp_var_fn): New function.
5753 * gimple-expr.h (create_tmp_reg_fn): Declare.
5754 * gimple-expr.c (create_tmp_reg_fn): New function.
5755 * gimple-low.c (record_vars_into): Don't change cfun.
5756 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
5757 code generation without cfun.
5759 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
5762 * Makefile.in (install-driver): Fix shell scripting.
5764 2014-04-03 Cong Hou <congh@google.com>
5766 PR tree-optimization/60505
5767 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
5768 threshold of number of iterations below which no vectorization
5770 * tree-vect-loop.c (new_loop_vec_info):
5771 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
5772 * tree-vect-loop.c (vect_analyze_loop_operations):
5773 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
5774 * tree-vect-loop.c (vect_transform_loop):
5775 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
5776 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
5777 of iterations of the loop and see if we should build the epilogue.
5779 2014-04-03 Richard Biener <rguenther@suse.de>
5781 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
5782 (streamer_tree_cache_create): Adjust.
5783 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
5784 to allow optional nodes array.
5785 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
5786 (streamer_tree_cache_append): Likewise.
5787 (streamer_tree_cache_create): Create nodes array optionally
5788 as specified by parameter.
5789 * lto-streamer-out.c (create_output_block): Avoid maintaining
5790 the node array in the writer cache.
5791 (DFS_write_tree): Remove assertion.
5792 (produce_asm_for_decls): Free the out decl state hash table early.
5793 * lto-streamer-in.c (lto_data_in_create): Adjust for
5794 streamer_tree_cache_create prototype change.
5796 2014-04-03 Richard Biener <rguenther@suse.de>
5798 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
5799 set TREE_CHAIN to NULL_TREE.
5801 2014-04-03 Richard Biener <rguenther@suse.de>
5803 PR tree-optimization/60740
5804 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
5805 over all GIMPLE_COND operands.
5807 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
5809 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
5810 (Weffc++): Remove Scott's numbering, merge lists and reference
5813 2014-04-03 Nick Clifton <nickc@redhat.com>
5815 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
5818 2014-04-03 Martin Jambor <mjambor@suse.cz>
5820 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
5821 mention gcc_unreachable before failing.
5822 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
5825 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
5828 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
5829 inconsistent code and instead mark the context inconsistent.
5830 (possible_polymorphic_call_targets): For inconsistent contexts
5831 return empty complete list.
5833 2014-04-02 Anthony Green <green@moxielogic.com>
5835 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
5836 (extendqisi2, extendhisi2): Define.
5837 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
5838 (WCHAR_TYPE): Change to unsigned int.
5840 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5842 PR tree-optimization/60733
5843 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
5844 insertion point for PHI candidates to be the end of the feeding
5845 block for the PHI argument.
5847 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
5849 PR rtl-optimization/60650
5850 * lra-constraints.c (process_alt_operands): Decrease reject for
5851 earlyclobber matching.
5853 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5855 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
5857 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5859 * config/spu/spu.c (pad_bb): Do not crash when the last
5860 insn is CODE_FOR_blockage.
5862 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5864 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
5865 lies outside the target mode.
5867 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
5870 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
5871 software floating point or no floating point registers, do not
5872 allow any type in the FPRs. Eliminate a test for SPE SIMD types
5873 in GPRs that occurs after we tested for GPRs that would never be
5876 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
5877 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
5878 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
5879 specifically allow DDmode, since that does not use the SPE SIMD
5882 2014-04-02 Richard Biener <rguenther@suse.de>
5885 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
5886 MODE_INTs. Properly use negv_optab.
5887 (expand_abs): Likewise.
5889 2014-04-02 Richard Biener <rguenther@suse.de>
5892 * Makefile.in (install-driver): Guard extra installs with special
5895 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
5897 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5900 2014-04-01 Richard Henderson <rth@redhat.com>
5903 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
5904 alternative enabled before register allocation.
5906 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
5908 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
5909 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
5911 (nios2_large_got_address): Remove unneeded 'sym' parameter.
5912 (nios2_got_address): Update nios2_large_got_address call site.
5913 (nios2_delegitimize_address): New function.
5914 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
5915 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5916 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
5918 2014-04-01 Martin Husemann <martin@duskware.de>
5920 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
5923 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
5925 PR rtl-optimization/60604
5926 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
5927 check from register_operand.
5928 (register_operand): Redefine in terms of general_operand.
5929 (nonmemory_operand): Use register_operand for the non-constant cases.
5931 2014-04-01 Richard Biener <rguenther@suse.de>
5933 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
5935 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
5937 * doc/invoke.texi (mapp-regs): Clarify.
5939 2014-03-31 Ulrich Drepper <drepper@gmail.com>
5941 * config/i386/avx512fintrin.h (__v32hi): Define type.
5942 (__v64qi): Likewise.
5943 (_mm512_set1_epi8): Define.
5944 (_mm512_set1_epi16): Define.
5945 (_mm512_set4_epi32): Define.
5946 (_mm512_set4_epi64): Define.
5947 (_mm512_set4_pd): Define.
5948 (_mm512_set4_ps): Define.
5949 (_mm512_setr4_epi64): Define.
5950 (_mm512_setr4_epi32): Define.
5951 (_mm512_setr4_pd): Define.
5952 (_mm512_setr4_ps): Define.
5953 (_mm512_setzero_epi32): Define.
5955 2014-03-31 Martin Jambor <mjambor@suse.cz>
5958 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
5959 callsite_arguments_match_p. Updated all callers. Also check types of
5960 corresponding formal parameters and actual arguments.
5961 (not_all_callers_have_enough_arguments_p) Renamed to
5962 some_callers_have_mismatched_arguments_p.
5964 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
5966 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
5968 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
5971 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
5974 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
5976 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
5977 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
5979 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
5980 Use FMAMODE_NOVF512 mode iterator.
5981 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
5982 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
5983 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
5984 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
5986 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
5987 Use VF_128_256 mode iterator.
5988 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
5991 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
5993 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
5994 static chain if needed.
5996 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
5999 * lra-constraints.c (index_part_to_reg): New.
6000 (process_address): Use it.
6002 2014-03-27 Jeff Law <law@redhat.com>
6003 Jakub Jelinek <jakub@redhat.com>
6006 * expr.c (do_tablejump): Use simplify_gen_binary rather than
6007 gen_rtx_{PLUS,MULT} to build up the address expression.
6009 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
6010 creating non-canonical RTL.
6012 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
6015 * ipa-inline.c (want_inline_small_function_p): Short circuit large
6016 functions; reorganize to make cheap checks first.
6017 (inline_small_functions): Do not estimate growth when dumping;
6019 * ipa-inline.h (inline_summary): Add min_size.
6020 (growth_likely_positive): New function.
6021 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
6022 (set_cond_stmt_execution_predicate): Cleanup.
6023 (estimate_edge_size_and_time): Compute min_size.
6024 (estimate_calls_size_and_time): Likewise.
6025 (estimate_node_size_and_time): Likewise.
6026 (inline_update_overall_summary): Update min_size.
6027 (do_estimate_edge_time): Likewise.
6028 (do_estimate_edge_size): Update.
6029 (do_estimate_edge_hints): Update.
6030 (growth_likely_positive): New function.
6032 2014-03-28 Jakub Jelinek <jakub@redhat.com>
6035 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
6036 also if addr has VOIDmode.
6038 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6040 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
6041 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
6043 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
6044 instructions as well as AdvancedSIMD loads.
6046 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6048 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
6049 Use crypto_aese type.
6050 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
6051 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
6052 crypto_aese, crypto_aesmc. Move to types.md.
6053 * config/arm/types.md (crypto_aes): Split into crypto_aese,
6055 * config/arm/iterators.md (crypto_type): Likewise.
6057 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
6059 * cgraph.c: Include expr.h and tree-dfa.h.
6060 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
6063 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
6066 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
6067 regs from checking multi-reg pseudos.
6069 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6071 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
6073 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6075 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
6076 if it would clobber the stack pointer, even temporarily.
6078 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
6080 * mode-switching.c: Make small adjustments to the top comment.
6082 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
6084 * config/rs6000/constraints.md (wD constraint): New constraint to
6085 match the constant integer to get the top DImode/DFmode out of a
6086 vector in a VSX register.
6088 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
6089 match the constant integer to get the top DImode/DFmode out of a
6090 vector in a VSX register.
6092 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
6095 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6098 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
6099 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
6101 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
6102 Optimize vec_extract of 64-bit values, where the value being
6103 extracted is in the top word, where we can use scalar
6104 instructions. Add direct move and store support. Combine the big
6105 endian/little endian vector select load support into a single insn.
6106 (vsx_extract_<mode>_internal1): Likewise.
6107 (vsx_extract_<mode>_internal2): Likewise.
6108 (vsx_extract_<mode>_load): Likewise.
6109 (vsx_extract_<mode>_store): Likewise.
6110 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
6111 combined into vsx_extract_<mode>_load.
6112 (vsx_extract_<mode>_one_le): Likewise.
6114 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
6115 define the top 64-bit vector element.
6117 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
6120 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6121 Document vec_vbpermq builtin.
6124 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
6125 enable use of xxsldwi and xxpermdi builtin functions.
6126 (vec_xxpermdi): Likewise.
6128 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6129 Document use of vec_xxsldwi and vec_xxpermdi builtins.
6131 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
6133 PR rtl-optimization/60650
6134 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
6136 (find_spills_for): New.
6137 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
6138 Spill all pseudos on the second iteration.
6140 2014-03-27 Marek Polacek <polacek@redhat.com>
6143 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
6146 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6148 * config/s390/s390.c (s390_can_use_return_insn): Check for
6149 call-saved FPRs on 31 bit.
6151 2014-03-27 Jakub Jelinek <jakub@redhat.com>
6154 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
6155 if they need regimplification, just drop them instead of
6156 calling gimple_regimplify_operands on them.
6158 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
6161 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
6162 (aarch64_frame_pointer_required): Adjust logic.
6163 (aarch64_can_eliminate): Adjust logic.
6164 (aarch64_override_options_after_change): Adjust logic.
6166 2014-03-27 Dehao Chen <dehao@google.com>
6168 * ipa-inline.c (early_inliner): Update node's inline info.
6170 2014-03-26 Dehao Chen <dehao@google.com>
6172 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
6173 compiler inserted conditional jumps for NAN float check.
6175 2014-03-26 Jakub Jelinek <jakub@redhat.com>
6177 * ubsan.h (ubsan_create_data): Change second argument's type
6178 to const location_t *.
6179 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
6181 (ubsan_create_data): Change second argument to const location_t *PLOC.
6182 Create Loc field whenever PLOC is non-NULL.
6183 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
6184 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
6188 * real.c (real_to_integer2): Change type of low to UHWI.
6190 2014-03-26 Tobias Burnus <burnus@net-b.de>
6192 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
6193 (CILK_SELF_SPECS): New define.
6194 (driver_self_specs): Use it.
6196 2014-03-26 Richard Biener <rguenther@suse.de>
6198 * tree-pretty-print.c (percent_K_format): Implement special
6199 case for LTO and its stripped down BLOCK tree.
6201 2014-03-26 Jakub Jelinek <jakub@redhat.com>
6204 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
6206 * tree-vrp.c (simplify_internal_call_using_ranges): If only
6207 one range is range_int_cst_p, but not both, at least optimize
6208 addition/subtraction of 0 and multiplication by 0 or 1.
6209 * gimple-fold.c (gimple_fold_call): Fold
6210 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
6211 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
6212 INTEGER_CSTs, try to fold at least x * 0 and y - y.
6214 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
6216 PR rtl-optimization/60452
6217 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
6218 <case REG>: Return 1 for invalid offsets from the frame pointer.
6220 2014-03-26 Marek Polacek <polacek@redhat.com>
6223 * doc/extend.texi (C Extensions): Mention variable-length arrays in
6226 2014-03-26 Marek Polacek <polacek@redhat.com>
6229 * doc/extend.texi (Designated Inits): Describe what happens to omitted
6232 2014-03-26 Marek Polacek <polacek@redhat.com>
6235 * ira-color.c (update_conflict_hard_regno_costs): Perform the
6236 multiplication in unsigned type.
6238 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
6240 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
6242 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
6244 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
6246 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
6249 * cif-code.def (UNREACHABLE) New code.
6250 * ipa-inline.c (inline_small_functions): Skip edges to
6251 __builtlin_unreachable.
6252 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
6253 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
6254 predicate to __bulitin_unreachable.
6255 (set_cond_stmt_execution_predicate): Fix issue when
6256 invert_tree_comparison returns ERROR_MARK.
6257 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
6258 propagate to inline clones.
6259 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
6261 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
6262 * cgraphclones.c (cgraph_clone_node): If call destination is already
6263 ureachable, do not redirect it back.
6264 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
6267 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
6269 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
6270 Do not modify inline clones.
6272 2014-03-25 Jakub Jelinek <jakub@redhat.com>
6274 * config/i386/i386.md (general_sext_operand): New mode attr.
6275 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
6276 don't generate (sign_extend (const_int)).
6277 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
6278 operands[2]. Use We constraint instead of <i> and
6279 <general_sext_operand> predicate instead of <general_operand>.
6280 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
6281 * config/i386/constraints.md (We): New constraint.
6282 * config/i386/predicates.md (x86_64_sext_operand,
6283 sext_operand): New predicates.
6285 2014-03-25 Martin Jambor <mjambor@suse.cz>
6288 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
6289 inconsistent devirtualizations to __builtin_unreachable.
6291 2014-03-25 Marek Polacek <polacek@redhat.com>
6294 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
6296 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
6298 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
6299 order of elements for big-endian.
6301 2014-03-25 Richard Biener <rguenther@suse.de>
6304 * gimplify-me.c (gimple_regimplify_operands): Update the
6307 2014-03-25 Martin Jambor <mjambor@suse.cz>
6310 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
6311 (lto_output_varpool_node): Likewise.
6312 (input_overwrite_node): Likewise.
6313 (input_varpool_node): Likewise.
6315 2014-03-25 Richard Biener <rguenther@suse.de>
6317 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
6318 (run_gcc): Likewise.
6320 2014-03-25 Jakub Jelinek <jakub@redhat.com>
6322 * combine.c (simplify_compare_const): Add MODE argument.
6323 Handle mode_width 0 as very large mode_width.
6324 (try_combine, simplify_comparison): Adjust callers.
6326 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
6327 type to avoid signed integer overflow.
6328 * explow.c (plus_constant): Likewise.
6330 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
6332 * doc/generic.texi: Correct typos.
6334 2014-03-24 Tobias Burnus <burnus@net-b.de>
6336 * doc/invoke.texi (-flto): Expand section about
6337 using static libraries with LTO.
6339 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6341 PR rtl-optimization/60501
6342 * optabs.def (addptr3_optab): New optab.
6343 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
6344 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
6345 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
6347 * lra.c (emit_add3_insn): Use the addptr pattern if available.
6349 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
6351 2014-03-24 Ulrich Drepper <drepper@gmail.com>
6353 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
6356 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
6357 (_mm256_undefined_ps): Define.
6358 (_mm256_undefined_pd): Define.
6359 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
6360 (_mm_undefined_pd): Define.
6361 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
6362 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
6363 (_mm512_undefined_ps): Define.
6364 (_mm512_undefined_pd): Define.
6365 Use _mm*_undefined_*.
6366 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
6368 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
6370 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
6371 (lshr_simd): DI mode added.
6372 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
6373 (aarch64_ushr_simddi): Likewise.
6374 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
6375 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
6376 (vshrd_n_u64): Likewise.
6378 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6380 * Makefile.in (s-macro_list): Depend on cc1.
6382 2014-03-23 Teresa Johnson <tejohnson@google.com>
6384 * ipa-utils.c (ipa_print_order): Use specified dump file.
6386 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
6388 PR rtl-optimization/60601
6389 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
6391 * gcc.c (eval_spec_function): Initialize save_growing_value.
6393 2014-03-22 Jakub Jelinek <jakub@redhat.com>
6396 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
6397 code == MINUS_EXPR, never swap op0 with op1.
6399 * toplev.c (init_local_tick): Avoid signed integer multiplication
6401 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
6402 shift by first operand's bitsize.
6404 2014-03-21 Jakub Jelinek <jakub@redhat.com>
6407 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
6409 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
6410 TARGET_ISA_64BIT_P(x).
6412 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6414 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
6415 pattern for vector nor instead of subtract from splat(-1).
6416 (altivec_expand_vec_perm_const_le): Likewise.
6418 2014-03-21 Richard Henderson <rth@twiddle.net>
6421 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
6422 related insns after epilogue_completed.
6424 2014-03-21 Martin Jambor <mjambor@suse.cz>
6427 * cgraph.h (symtab_node): New flag body_removed.
6428 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
6429 when removing bodies.
6430 * symtab.c (dump_symtab_base): Dump body_removed flag.
6431 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
6432 had their bodies removed.
6434 2014-03-21 Martin Jambor <mjambor@suse.cz>
6437 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
6440 2014-03-21 Richard Biener <rguenther@suse.de>
6442 PR tree-optimization/60577
6443 * tree-core.h (struct tree_base): Document nothrow_flag use
6445 * tree.h (DECL_NONALIASED): New.
6446 (may_be_aliased): Adjust.
6447 * coverage.c (build_var): Set DECL_NONALIASED.
6449 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
6451 * expr.c (expand_expr_real_1): Remove outdated comment.
6453 2014-03-20 Jakub Jelinek <jakub@redhat.com>
6456 * ira.c (adjust_cleared_regs): Call copy_rtx on
6457 *reg_equiv[REGNO (loc)].src_p before passing it to
6458 simplify_replace_fn_rtx.
6461 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
6462 into CONST, put pic register as first operand of PLUS. Use
6463 gen_const_mem for both 32-bit and 64-bit PIC got loads.
6465 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6467 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
6469 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
6471 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
6472 around for store forwarding issue in the FPU on the UT699.
6473 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
6474 loads and operations if -mfix-ut699 is specified.
6475 (divtf3_hq): Tweak attribute.
6476 (sqrttf2_hq): Likewise.
6478 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
6480 * calls.c (store_one_arg): Remove incorrect const qualification on the
6481 type of the temporary.
6482 * cfgexpand.c (expand_return): Likewise.
6483 * expr.c (expand_constructor): Likewise.
6484 (expand_expr_real_1): Likewise.
6486 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6488 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
6491 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
6494 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
6496 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
6498 * config/arm/aarch-common-protos.h
6499 (alu_cost_table): Fix spelling of "extend".
6500 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
6502 2014-03-19 Richard Biener <rguenther@suse.de>
6505 * tree-core.h (tree_type_common): Re-order pointer members
6506 to reduce recursion depth during GC walks.
6508 2014-03-19 Marek Polacek <polacek@redhat.com>
6511 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
6512 before accessing it.
6514 2014-03-19 Richard Biener <rguenther@suse.de>
6517 * lto-streamer-in.c (input_function): In WPA stage do not drop
6520 2014-03-19 Jakub Jelinek <jakub@redhat.com>
6522 PR tree-optimization/60559
6523 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
6524 with build_zero_cst assignment.
6526 2014-03-18 Kai Tietz <ktietz@redhat.com>
6528 PR rtl-optimization/56356
6529 * sdbout.c (sdbout_parms): Verify that parms'
6530 incoming argument is valid.
6531 (sdbout_reg_parms): Likewise.
6533 2014-03-18 Richard Henderson <rth@redhat.com>
6536 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
6537 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
6538 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
6540 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
6542 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
6543 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
6544 Italicize plugin event names in description. Explain that
6545 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
6546 Remind that no GCC functions should be called after PLUGIN_FINISH.
6547 Explain what pragmas with expansion are.
6549 2014-03-18 Martin Liska <mliska@suse.cz>
6551 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
6552 gimple call statement is update.
6553 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
6554 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
6556 2014-03-18 Jakub Jelinek <jakub@redhat.com>
6559 * ubsan.c (ubsan_instrument_unreachable): Call
6560 initialize_sanitizer_builtins.
6561 (ubsan_pass): Likewise.
6564 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
6565 varpool_finalize_decl instead of rest_of_decl_compilation.
6567 2014-03-18 Richard Biener <rguenther@suse.de>
6569 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
6570 by using bitmap_and_compl instead of bitmap_and_compl_into.
6571 (df_rd_transfer_function): Likewise.
6573 2014-03-18 Richard Biener <rguenther@suse.de>
6575 * doc/lto.texi (fresolution): Fix typo.
6577 2014-03-18 Richard Biener <rguenther@suse.de>
6579 * doc/invoke.texi (flto): Update for changes in 4.9.
6581 2014-03-18 Richard Biener <rguenther@suse.de>
6583 * doc/loop.texi: Remove section on the removed lambda framework.
6584 Update loop docs with recent changes in preserving loop structure.
6586 2014-03-18 Richard Biener <rguenther@suse.de>
6588 * doc/lto.texi (-fresolution): Document.
6590 2014-03-18 Richard Biener <rguenther@suse.de>
6592 * doc/contrib.texi: Adjust my name.
6594 2014-03-18 Jakub Jelinek <jakub@redhat.com>
6597 * internal-fn.c: Include diagnostic-core.h.
6598 (expand_BUILTIN_EXPECT): New function.
6599 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
6600 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
6601 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
6602 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
6604 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
6605 Revert 3 argument __builtin_expect code.
6606 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
6607 * gimple-fold.c (gimple_fold_call): Likewise.
6608 * tree.h (fold_builtin_expect): New prototype.
6609 * builtins.c (build_builtin_expect_predicate): Add predictor
6610 argument, if non-NULL, create 3 argument __builtin_expect.
6611 (fold_builtin_expect): No longer static. Add ARG2 argument,
6612 pass it through to build_builtin_expect_predicate.
6613 (fold_builtin_2): Adjust caller.
6614 (fold_builtin_3): Handle BUILT_IN_EXPECT.
6615 * internal-fn.def (BUILTIN_EXPECT): New.
6617 2014-03-18 Tobias Burnus <burnus@net-b.de>
6620 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
6621 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
6622 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
6624 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
6627 * predict.c (combine_predictions_for_bb): Fix up formatting.
6628 (expr_expected_value_1, expr_expected_value): Add predictor argument,
6629 fill what it points to if non-NULL.
6630 (tree_predict_by_opcode): Adjust caller, use the predictor.
6631 * predict.def (PRED_COMPARE_AND_SWAP): Add.
6633 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
6635 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
6636 proper constant for the store mode.
6638 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
6640 * symtab.c (change_decl_assembler_name): Fix transparent alias
6643 2014-03-16 Renlin Li <Renlin.Li@arm.com>
6645 * config/aarch64/aarch64.c: Correct the comments about the
6646 aarch64 stack layout.
6648 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
6650 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
6651 check for GF_OMP_FOR_KIND_FOR.
6653 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
6655 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
6656 ymm and zmm register names.
6658 2014-03-17 Jakub Jelinek <jakub@redhat.com>
6661 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
6662 note creation for the 2010-08-31 changes.
6664 2014-03-17 Marek Polacek <polacek@redhat.com>
6667 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
6668 as -fno-tree-loop-vectorize.
6669 (expand_omp_simd): Likewise.
6671 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
6673 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
6674 (eligible_for_call_delay): New prototype.
6675 * config/sparc/sparc.c (tls_call_delay): Rename into...
6676 (eligible_for_call_delay): ...this. Return false if the instruction
6677 cannot be put in the delay slot of a branch.
6678 (eligible_for_restore_insn): Simplify.
6679 (eligible_for_return_delay): Return false if the instruction cannot be
6680 put in the delay slot of a branch and simplify.
6681 (eligible_for_sibcall_delay): Return false if the instruction cannot be
6682 put in the delay slot of a branch.
6683 * config/sparc/sparc.md (fix_ut699): New attribute.
6684 (tls_call_delay): Delete.
6685 (in_call_delay): Reimplement.
6686 (eligible_for_sibcall_delay): Rename into...
6687 (in_sibcall_delay): ...this.
6688 (eligible_for_return_delay): Rename into...
6689 (in_return_delay): ...this.
6690 (in_branch_delay): Reimplement.
6691 (in_uncond_branch_delay): Delete.
6692 (in_annul_branch_delay): Delete.
6694 2014-03-14 Richard Henderson <rth@redhat.com>
6697 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
6698 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
6699 (*floathi<X87MODEF>2_i387_with_temp): Remove.
6700 (floathi splitters): Remove.
6701 (float<SWI48x>xf2): New pattern.
6702 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
6703 code that tried to handle DImode for 32-bit, but which was excluded
6704 by the pattern's condition. Drop allocation of stack temporary.
6705 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
6706 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
6707 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
6708 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
6709 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
6710 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
6711 (*float<SWI48><MODEF>2_sse_interunit): Remove.
6712 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
6713 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
6714 (*float<SWI48x><X87MODEF>2_i387): Remove.
6715 (all float _with_temp splitters): Remove.
6716 (*float<SWI48x><MODEF>2_i387): New pattern.
6717 (*float<SWI48><MODEF>2_sse): New pattern.
6718 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
6719 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
6721 2014-03-14 Jakub Jelinek <jakub@redhat.com>
6722 Marek Polacek <polacek@redhat.com>
6725 * common.opt (dump_base_name_prefixed): New Variable.
6726 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
6727 if x_dump_base_name_prefixed is already set, set it at the end.
6729 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
6731 PR rtl-optimization/60508
6732 * lra-constraints.c (get_reload_reg): Add new parameter
6734 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
6735 Pass the new parameter values.
6737 2014-03-14 Richard Biener <rguenther@suse.de>
6739 * common.opt: Revert unintented changes from r205065.
6742 2014-03-14 Richard Biener <rguenther@suse.de>
6745 * cfghooks.c (split_block): Properly adjust all loops the
6746 block was a latch of.
6748 2014-03-14 Martin Jambor <mjambor@suse.cz>
6751 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
6754 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
6757 * config/avr/avr.c (avr_set_current_function): Pass function name
6758 through default_strip_name_encoding before sanity checking instead
6759 of skipping the first char of the assembler name.
6761 2014-03-13 Richard Henderson <rth@redhat.com>
6764 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
6765 (ix86_force_to_memory, ix86_free_from_memory): Remove.
6766 * config/i386/i386-protos.h: Likewise.
6767 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
6768 in the expander instead of a splitter.
6769 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
6770 any possibility of requiring a memory.
6771 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
6772 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
6773 (fp branch splitters): Update for ix86_split_fp_branch.
6774 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
6775 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
6776 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
6777 (*fop_<MODEF>_2_i387): Remove f/r alternative.
6778 (*fop_<MODEF>_3_i387): Likewise.
6779 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
6780 (splitters for the fop_* register patterns): Remove.
6781 (fscalexf4_i387): Rename from *fscalexf4_i387.
6782 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
6784 2014-03-13 Jakub Jelinek <jakub@redhat.com>
6786 PR tree-optimization/59779
6787 * tree-dfa.c (get_ref_base_and_extent): Use double_int
6788 type for bitsize and maxsize instead of HOST_WIDE_INT.
6790 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
6792 PR rtl-optimization/57320
6793 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
6794 the CFG after thread_prologue_and_epilogue_insns.
6796 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
6798 PR rtl-optimization/57189
6799 * lra-constraints.c (process_alt_operands): Disfavor spilling
6802 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
6804 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
6806 2014-03-13 Jakub Jelinek <jakub@redhat.com>
6808 PR tree-optimization/59025
6810 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
6811 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
6813 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
6816 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
6817 calls of avr_out_plus_1.
6819 2014-03-13 Bin Cheng <bin.cheng@arm.com>
6821 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
6822 BB's single pred and update the father loop's latch info later.
6824 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
6826 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
6830 (VEC_base): Likewise.
6831 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
6832 registers, we need to swap double words in little endian mode.
6834 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
6835 to be a container mode for 128-bit integer operations added in ISA
6836 2.07. Unlike TImode and PTImode, the preferred register set is
6837 the Altivec/VMX registers for the 128-bit operations.
6839 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
6841 (rs6000_split_128bit_ok_p): Likewise.
6843 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
6844 macros for creating ISA 2.07 normal and overloaded builtin
6845 functions with 3 arguments.
6846 (BU_P8V_OVERLOAD_3): Likewise.
6847 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
6848 for use as overloaded functions.
6849 (VPERM_1TI_UNS): Likewise.
6850 (VSEL_1TI): Likewise.
6851 (VSEL_1TI_UNS): Likewise.
6852 (ST_INTERNAL_1ti): Likewise.
6853 (LD_INTERNAL_1ti): Likewise.
6854 (XXSEL_1TI): Likewise.
6855 (XXSEL_1TI_UNS): Likewise.
6856 (VPERM_1TI): Likewise.
6857 (VPERM_1TI_UNS): Likewise.
6858 (XXPERMDI_1TI): Likewise.
6859 (SET_1TI): Likewise.
6860 (LXVD2X_V1TI): Likewise.
6861 (STXVD2X_V1TI): Likewise.
6862 (VEC_INIT_V1TI): Likewise.
6863 (VEC_SET_V1TI): Likewise.
6864 (VEC_EXT_V1TI): Likewise.
6865 (EQV_V1TI): Likewise.
6866 (NAND_V1TI): Likewise.
6867 (ORC_V1TI): Likewise.
6868 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
6869 added in ISA 2.07. Add both normal 'altivec' builtins, and the
6871 (VADDUQM): Likewise.
6872 (VSUBCUQ): Likewise.
6873 (VADDEUQM): Likewise.
6874 (VADDECUQ): Likewise.
6875 (VSUBEUQM): Likewise.
6876 (VSUBECUQ): Likewise.
6878 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
6879 __int128_t and __uint128_t types.
6880 (__uint128_type): Likewise.
6881 (altivec_categorize_keyword): Add support for vector __int128_t,
6882 vector __uint128_t, vector __int128, and vector unsigned __int128
6883 as a container type for TImode operations that need to be done in
6884 VSX/Altivec registers.
6885 (rs6000_macro_to_expand): Likewise.
6886 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
6887 to support 128-bit integer instructions vaddcuq, vadduqm,
6888 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
6889 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
6891 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
6892 for V1TImode, and set up preferences to use VSX/Altivec registers.
6893 Setup VSX reload handlers.
6894 (rs6000_debug_reg_global): Likewise.
6895 (rs6000_init_hard_regno_mode_ok): Likewise.
6896 (rs6000_preferred_simd_mode): Likewise.
6897 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
6898 (easy_altivec_constant): Likewise.
6899 (output_vec_const_move): Likewise.
6900 (rs6000_expand_vector_set): Convert V1TImode set and extract to
6902 (rs6000_expand_vector_extract): Likewise.
6903 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
6905 (rs6000_const_vec): Add support for V1TImode.
6906 (rs6000_emit_le_vsx_load): Swap double words when loading or
6907 storing TImode/V1TImode.
6908 (rs6000_emit_le_vsx_store): Likewise.
6909 (rs6000_emit_le_vsx_move): Likewise.
6910 (rs6000_emit_move): Add support for V1TImode.
6911 (altivec_expand_ld_builtin): Likewise.
6912 (altivec_expand_st_builtin): Likewise.
6913 (altivec_expand_vec_init_builtin): Likewise.
6914 (altivec_expand_builtin): Likewise.
6915 (rs6000_init_builtins): Add support for V1TImode type. Add
6916 support for ISA 2.07 128-bit integer builtins. Define type names
6917 for the VSX/Altivec vector types.
6918 (altivec_init_builtins): Add support for overloaded vector
6919 functions with V1TImode type.
6920 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
6921 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
6923 (rs6000_split_128bit_ok_p): Likewise.
6924 (rs6000_handle_altivec_attribute): Create V1TImode from vector
6925 __int128_t and vector __uint128_t.
6927 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
6928 and mode attributes.
6935 (VS_scalar): Likewise.
6936 (VS_double): Likewise.
6937 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
6939 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
6940 we support the ISA 2.07 128-bit integer arithmetic instructions.
6941 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
6942 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
6943 and TImode types for use with the builtin functions.
6944 (V1TI_type_node): Likewise.
6945 (unsigned_V1TI_type_node): Likewise.
6946 (intTI_type_internal_node): Likewise.
6947 (uintTI_type_internal_node): Likewise.
6949 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
6950 128-bit builtin functions.
6951 (UNSPEC_VADDEUQM): Likewise.
6952 (UNSPEC_VADDECUQ): Likewise.
6953 (UNSPEC_VSUBCUQ): Likewise.
6954 (UNSPEC_VSUBEUQM): Likewise.
6955 (UNSPEC_VSUBECUQ): Likewise.
6956 (VM): Add V1TImode to vector mode iterators.
6958 (VI_unit): Likewise.
6959 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
6960 (altivec_vaddcuq): Likewise.
6961 (altivec_vsubuqm): Likewise.
6962 (altivec_vsubcuq): Likewise.
6963 (altivec_vaddeuqm): Likewise.
6964 (altivec_vaddecuq): Likewise.
6965 (altivec_vsubeuqm): Likewise.
6966 (altivec_vsubecuq): Likewise.
6968 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
6970 (BOOL_128): Likewise.
6971 (BOOL_REGS_OUTPUT): Likewise.
6972 (BOOL_REGS_OP1): Likewise.
6973 (BOOL_REGS_OP2): Likewise.
6974 (BOOL_REGS_UNARY): Likewise.
6975 (BOOL_REGS_AND_CR0): Likewise.
6977 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
6978 128-bit integer builtin support.
6979 (vec_vadduqm): Likewise.
6980 (vec_vaddecuq): Likewise.
6981 (vec_vaddeuqm): Likewise.
6982 (vec_vsubecuq): Likewise.
6983 (vec_vsubeuqm): Likewise.
6984 (vec_vsubcuq): Likewise.
6985 (vec_vsubuqm): Likewise.
6987 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6988 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
6989 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
6990 128-bit integer add/subtract to ISA 2.07.
6992 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
6994 * config/arc/arc.c (arc_predicate_delay_insns):
6995 Fix third argument passed to conditionalize_nonjump.
6997 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
6999 * config/aarch64/aarch64-builtins.c
7000 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
7001 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
7002 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
7003 instead of __builtin_lfloor.
7004 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
7006 2014-03-12 Jakub Jelinek <jakub@redhat.com>
7008 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
7009 (tree_ssa_ifcombine_bb_1): New function.
7010 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
7011 is an empty forwarder block to then_bb or vice versa and then_bb
7012 and else_bb are effectively swapped.
7014 2014-03-12 Christian Bruel <christian.bruel@st.com>
7017 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
7018 REG_CFA_DEF_CFA note.
7019 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
7020 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
7022 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
7024 PR tree-optimization/60454
7025 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
7027 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7029 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
7030 Do not define target_cpu_default2 to generic.
7031 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
7032 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
7033 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
7035 2014-03-12 Jakub Jelinek <jakub@redhat.com>
7036 Marc Glisse <marc.glisse@inria.fr>
7038 PR tree-optimization/60502
7039 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
7040 instead of build_low_bits_mask.
7042 2014-03-12 Jakub Jelinek <jakub@redhat.com>
7045 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
7046 if there are multiple uses, but op doesn't live on E edge.
7047 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
7048 clobber stmts before __builtin_unreachable.
7050 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
7052 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
7053 hard_frame_pointer_rtx.
7054 * cse.c (cse_insn): Remove volatile check.
7055 * cselib.c (cselib_process_insn): Likewise.
7056 * dse.c (scan_insn): Likewise.
7058 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
7060 * config/arc/arc.c (conditionalize_nonjump): New function,
7062 (arc_ifcvt): ... this.
7063 (arc_predicate_delay_insns): Use it.
7065 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
7067 * config/arc/predicates.md (extend_operand): During/after reload,
7068 allow const_int_operand.
7069 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
7070 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
7071 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
7073 (umulsi3_highpart_i): Likewise.
7075 2014-03-11 Richard Biener <rguenther@suse.de>
7077 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
7078 Add asserts to guard possible wrong-code bugs.
7080 2014-03-11 Richard Biener <rguenther@suse.de>
7082 PR tree-optimization/60429
7083 PR tree-optimization/60485
7084 * tree-ssa-structalias.c (set_union_with_increment): Properly
7085 take into account all fields that overlap the shifted vars.
7086 (do_sd_constraint): Likewise.
7087 (do_ds_constraint): Likewise.
7088 (get_constraint_for_ptr_offset): Likewise.
7090 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
7092 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
7093 (nios2_compute_frame_layout):
7094 Add calculation of cfun->machine->fp_save_offset.
7095 (nios2_expand_prologue): Correct setting of frame pointer register
7097 (nios2_expand_epilogue): Update recovery of stack pointer from
7098 frame pointer accordingly.
7099 (nios2_initial_elimination_offset): Update calculation of offset
7100 for eliminating to HARD_FRAME_POINTER_REGNUM.
7102 2014-03-10 Jakub Jelinek <jakub@redhat.com>
7105 * ipa.c (symtab_remove_unreachable_nodes): Don't call
7106 cgraph_get_create_node on VAR_DECLs.
7108 2014-03-10 Richard Biener <rguenther@suse.de>
7111 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
7113 2014-03-08 Douglas B Rupp <rupp@gnat.com>
7115 * config/vms/vms.opt (vms_float_format): New variable.
7117 2014-03-08 Tobias Burnus <burnus@net-b.de>
7119 * doc/invoke.texi (-fcilkplus): Update implementation status.
7121 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
7122 Richard Biener <rguenther@suse.de>
7124 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
7125 consistently accross all TUs.
7126 (run_gcc): Enable -fshort-double automatically at link at link-time
7127 and disallow override.
7129 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
7132 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
7133 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
7134 if they can't be used.
7136 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7138 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
7139 for Solaris 11/x86 ld.
7140 * configure: Regenerate.
7142 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7144 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
7145 (LIB_TLS_SPEC): Save as ld_tls_libs.
7146 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
7147 (HAVE_AS_IX86_TLSLDM): New test.
7148 * configure, config.in: Regenerate.
7149 * config/i386/i386.c (legitimize_tls_address): Fall back to
7150 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
7151 cannot support TLS_MODEL_LOCAL_DYNAMIC.
7152 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
7153 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
7155 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
7157 * common.opt (fira-loop-pressure): Mark as optimization.
7159 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
7161 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
7162 an OpenMP mappable type.
7164 2014-03-06 Matthias Klose <doko@ubuntu.com>
7166 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
7167 MULTILIB_OSDIRNAMES is not defined.
7169 2014-03-06 Jakub Jelinek <jakub@redhat.com>
7170 Meador Inge <meadori@codesourcery.com>
7173 * config/arm/arm.c (arm_tls_symbol_p): Remove.
7174 (arm_legitimize_address): Call legitimize_tls_address for any
7175 arm_tls_referenced_p expression, handle constant addend. Call it
7176 before testing for !TARGET_ARM.
7177 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
7179 2014-03-06 Richard Biener <rguenther@suse.de>
7185 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
7187 * tree-streamer.c (record_common_node): Assert we don't record
7188 nodes with type double.
7189 (preload_common_node): Skip type double, complex double and double
7190 pointer since it is now frontend dependent due to fshort-double option.
7192 2014-03-06 Richard Biener <rguenther@suse.de>
7194 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
7195 or -fno-lto is specified and the linker has full plugin support.
7196 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
7197 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
7198 * lto-wrapper.c (merge_and_complain): Merge compile-time
7199 optimization levels.
7200 (run_gcc): And pass it through to the link options.
7202 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
7206 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
7208 * cselib.c (remove_useless_values): Skip to avoid quadratic
7209 behavior if the condition moved from...
7210 (cselib_process_insn): ... here holds.
7212 2014-03-05 Jakub Jelinek <jakub@redhat.com>
7215 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
7216 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
7219 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
7220 (TM_H): Add x86-tune.def.
7222 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7224 * config/aarch64/aarch64.c (generic_tunings):
7225 Use cortexa57_extra_costs.
7227 2014-03-05 Jakub Jelinek <jakub@redhat.com>
7230 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
7231 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
7232 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
7235 2014-03-04 Heiher <r@hev.cc>
7237 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
7238 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
7240 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
7242 * config/i386/predicates.md (const2356_operand): Change to ...
7243 (const2367_operand): ... this.
7244 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
7246 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7247 (*avx512pf_scatterpf<mode>sf): Ditto.
7248 (avx512pf_scatterpf<mode>df): Ditto.
7249 (*avx512pf_scatterpf<mode>df_mask): Ditto.
7250 (*avx512pf_scatterpf<mode>df): Ditto.
7251 * config/i386/i386.c (ix86_expand_builtin): Update
7252 incorrect hint operand error message.
7254 2014-03-04 Richard Biener <rguenther@suse.de>
7256 * lto-section-in.c (lto_get_section_data): Fix const cast.
7258 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
7260 * tree-streamer.c (record_common_node): Assert we don't record
7261 nodes with type double.
7262 (preload_common_node): Skip type double, complex double and double
7263 pointer since it is now frontend dependent due to fshort-double option.
7265 2014-03-04 Richard Biener <rguenther@suse.de>
7268 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
7269 (lto_input_toplevel_asms): Likewise.
7270 * lto-section-in.c (lto_get_section_data): Instead do it here
7273 2014-03-04 Richard Biener <rguenther@suse.de>
7275 PR tree-optimization/60382
7276 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
7277 dead PHIs a reduction.
7279 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
7281 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
7283 (_mm_prefetch): Move out of GCC target("sse") pragma.
7284 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
7285 GCC target("prfchw") pragma.
7286 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
7288 * config/i386/i386.c (ix86_option_override_internal): Enable
7289 -mprfchw with -mprefetchwt1.
7291 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
7293 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
7296 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
7298 * opts.h (CL_PCH_IGNORE): Define.
7299 * targhooks.c (option_affects_pch_p):
7300 Return false for options that have CL_PCH_IGNORE set.
7301 * opt-functions.awk: Process PchIgnore.
7302 * doc/options.texi: Document PchIgnore.
7304 * config/arc/arc.opt (misize): Add PchIgnore property.
7306 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7308 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
7309 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
7310 constraint on constants to permit them being loaded into
7311 GENERAL_REGS or BASE_REGS.
7313 2014-03-03 Nick Clifton <nickc@redhat.com>
7315 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
7316 anti-cacnonical alternatives.
7317 (negandhi3_real): New pattern.
7318 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
7320 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7322 * config/avr/avr-mcus.def: Remove atxmega16x1.
7323 * config/avr/avr-tables.opt: Regenerate.
7324 * config/avr/t-multilib: Regenerate.
7325 * doc/avr-mmcu.texi: Regenerate.
7327 2014-03-03 Tobias Grosser <tobias@grosser.es>
7328 Mircea Namolaru <mircea.namolaru@inria.fr>
7330 PR tree-optimization/58028
7331 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
7334 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7336 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
7337 not handled by recognizers.
7339 2014-03-03 Jakub Jelinek <jakub@redhat.com>
7342 * function.c (expand_function_end): Don't emit
7343 clobber_return_register sequence if clobber_after is a BARRIER.
7344 * cfgexpand.c (construct_exit_block): Append instructions before
7345 return_label to prev_bb.
7347 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7349 * config/rs6000/constraints.md: Document reserved use of "wc".
7351 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
7354 * ipa.c (function_and_variable_visibility): When dissolving comdat
7355 group, also set all symbols to local.
7357 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
7362 2013-12-14 Jan Hubicka <jh@suse.cz>
7364 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
7366 2014-03-02 Jon Beniston <jon@beniston.com>
7372 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
7373 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
7374 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
7375 (simple_return, *simple_return): New patterns
7376 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
7377 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
7379 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
7381 * dwarf2out.c (gen_subprogram_die): Tidy.
7383 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
7386 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
7387 (*mov_t_msb_neg_negc): ... this new insn.
7389 2014-02-28 Jason Merrill <jason@redhat.com>
7392 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
7395 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
7398 * dwarf2out.c (decltype_auto_die): New static.
7399 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
7400 (gen_type_die_with_usage): Handle 'decltype(auto)'.
7401 (is_cxx_auto): Likewise.
7403 2014-02-28 Ian Bolton <ian.bolton@arm.com>
7405 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
7406 we are not using general regs only.
7408 2014-02-28 Richard Biener <rguenther@suse.de>
7411 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
7412 previous fix and only allow to remove trivial pre-headers
7413 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
7414 (remove_forwarder_block): Properly update the latch of a loop.
7416 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
7419 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
7420 (cselib_preserved_hash_table): New.
7421 (preserve_constants_and_equivs): Move preserved vals to it.
7422 (cselib_find_slot): Look it up first.
7423 (cselib_init): Initialize it.
7424 (cselib_finish): Release it.
7425 (dump_cselib_table): Dump it.
7427 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
7430 * cselib.c (remove_useless_values): Skip to avoid quadratic
7431 behavior if the condition moved from...
7432 (cselib_process_insn): ... here holds.
7434 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
7437 * var-tracking.c (vt_initialize): Apply the same condition to
7438 preserve the CFA base value.
7440 2014-02-28 Joey Ye <joey.ye@arm.com>
7443 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
7444 if reload in progress or completed.
7446 2014-02-28 Tobias Burnus <burnus@net-b.de>
7449 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
7452 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
7454 * doc/tm.texi.in (Condition Code Status): Update documention for
7455 relative locations of cc0-setter and cc0-user.
7457 2014-02-27 Jeff Law <law@redhat.com>
7459 PR rtl-optimization/52714
7460 * combine.c (try_combine): When splitting an unrecognized PARALLEL
7461 into two independent simple sets, if I3 is a jump, ensure the
7462 pattern we place into I3 is a (set (pc) ...).
7464 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
7465 Jeff Law <law@redhat.com>
7467 PR rtl-optimization/49847
7468 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
7469 are in different blocks.
7470 * doc/tm.texi (Condition Code Status): Update documention for
7471 relative locations of cc0-setter and cc0-user.
7473 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
7476 * lra.c (lra_emit_add): Check SUBREG too.
7478 2014-02-27 Andreas Schwab <schwab@suse.de>
7480 * config/m68k/m68k.c (m68k_option_override): Disable
7481 -flive-range-shrinkage for classic m68k.
7482 (m68k_override_options_after_change): Likewise.
7484 2014-02-27 Marek Polacek <polacek@redhat.com>
7487 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
7488 -Wmaybe-uninitialized.
7490 2014-02-27 Alan Modra <amodra@gmail.com>
7493 * reload1.c (emit_input_reload_insns): When reload_override_in,
7494 set old to rl->in_reg when rl->in_reg is a subreg.
7496 2014-02-26 Richard Biener <rguenther@suse.de>
7499 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
7501 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
7503 * common/config/i386/predicates.md (const1256_operand): Remove.
7504 (const2356_operand): New.
7505 (const_1_to_2_operand): Remove.
7506 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
7507 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
7508 (*avx512pf_gatherpf<mode>sf): Ditto.
7509 (avx512pf_gatherpf<mode>df): Ditto.
7510 (*avx512pf_gatherpf<mode>df_mask): Ditto.
7511 (*avx512pf_gatherpf<mode>df): Ditto.
7512 (avx512pf_scatterpf<mode>sf): Ditto.
7513 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7514 (*avx512pf_scatterpf<mode>sf): Ditto.
7515 (avx512pf_scatterpf<mode>df): Ditto.
7516 (*avx512pf_scatterpf<mode>df_mask): Ditto.
7517 (*avx512pf_scatterpf<mode>df): Ditto.
7518 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
7520 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
7522 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
7523 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
7524 (_mm512_mask_testn_epi64_mask): Move to ...
7525 * config/i386/avx512cdintrin.h: Here.
7526 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
7527 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
7528 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
7529 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
7530 TARGET_AVX512F from TARGET_AVX512CD.
7532 2014-02-26 Richard Biener <rguenther@suse.de>
7535 * ipa.c (walk_polymorphic_call_targets): Properly guard
7536 call to inline_update_overall_summary.
7538 2014-02-26 Bin Cheng <bin.cheng@arm.com>
7541 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
7542 and latches only if requested. Fix latch if it is removed.
7543 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
7544 LOOPS_HAVE_PREHEADERS.
7546 2014-02-25 Andrew Pinski <apinski@cavium.com>
7548 * builtins.c (expand_builtin_thread_pointer): Create a new target
7549 when the target is NULL.
7551 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
7553 PR rtl-optimization/60317
7554 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
7555 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
7556 * lra-assigns.c: Include params.h.
7557 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
7558 other reload pseudos considerations.
7560 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7562 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
7563 to use canonical form for nor<mode>3.
7565 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7568 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
7571 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
7573 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
7574 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
7575 (ix86_handle_option): Handle OPT_mprefetchwt1.
7576 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
7577 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7579 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7580 OPTION_MASK_ISA_PREFETCHWT1.
7581 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
7582 (PTA_PREFETCHWT1): New.
7583 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
7584 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
7585 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
7586 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
7587 (*prefetch_avx512pf_<mode>_: Change into ...
7588 (*prefetch_prefetchwt1_<mode>: This.
7589 * config/i386/i386.opt (mprefetchwt1): New.
7590 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
7591 (_mm_prefetch): Handle intent to write.
7592 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
7594 2014-02-25 Richard Biener <rguenther@suse.de>
7597 * emit-rtl.c (mem_attrs_htab): Remove.
7598 (mem_attrs_htab_hash): Likewise.
7599 (mem_attrs_htab_eq): Likewise.
7600 (set_mem_attrs): Always allocate new mem-attrs when something changed.
7601 (init_emit_once): Do not allocate mem_attrs_htab.
7603 2014-02-25 Richard Biener <rguenther@suse.de>
7606 * lto-opts.c (lto_write_options): Output non-explicit conservative
7607 -fwrapv, -fno-trapv and -fno-strict-overflow.
7608 * lto-wrapper.c (merge_and_complain): Handle merging those options.
7609 (run_gcc): And pass them through.
7611 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
7613 * sel-sched.c (calculate_new_fences): New parameter ptime.
7614 Calculate it as a maximum over all fence cycles.
7615 (sel_sched_region_2): Adjust the call to calculate_new_fences.
7616 Print the final schedule timing when sched_verbose.
7618 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
7620 PR rtl-optimization/60292
7621 * sel-sched.c (fill_vec_av_set): Do not reset target availability
7622 bit fot the fence instruction.
7624 2014-02-24 Alangi Derick <alangiderick@gmail.com>
7626 * calls.h: Fix typo in comment.
7628 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
7630 * config/pa/pa.c (pa_output_move_double): Don't valididate when
7631 adjusting offsetable addresses.
7633 2014-02-24 Guozhi Wei <carrot@google.com>
7635 * sparseset.h (sparseset_pop): Fix the wrong index.
7637 2014-02-24 Walter Lee <walt@tilera.com>
7639 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
7640 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
7642 * common/config/tilegx/tilegx-common.c
7643 (TARGET_DEFAULT_TARGET_FLAGS): Define.
7644 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
7646 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
7647 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
7648 (tilegx_gimplify_va_arg_expr): Handle big endian.
7649 (tilegx_expand_unaligned_load): Ditto.
7650 (tilegx_expand_unaligned_store): Ditto.
7651 (TARGET_RETURN_IN_MSB): New.
7652 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
7653 (TARGET_ENDIAN_DEFAULT): New.
7654 (TARGET_BIG_ENDIAN): Handle big endian.
7655 (BYTES_BIG_ENDIAN): Ditto.
7656 (WORDS_BIG_ENDIAN): Ditto.
7657 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
7660 * config/tilegx/tilegx.md (extv): Handle big endian.
7662 (insn_st<n>): Ditto.
7663 (insn_st<n>_add<bitsuffix>): Ditto.
7664 (insn_stnt<n>): Ditto.
7665 (insn_stnt<n>_add<bitsuffix>):Ditto.
7666 (vec_interleave_highv8qi): Handle big endian.
7667 (vec_interleave_highv8qi_be): New.
7668 (vec_interleave_highv8qi_le): New.
7669 (insn_v1int_h): Handle big endian.
7670 (vec_interleave_lowv8qi): Handle big endian.
7671 (vec_interleave_lowv8qi_be): New.
7672 (vec_interleave_lowv8qi_le): New.
7673 (insn_v1int_l): Handle big endian.
7674 (vec_interleave_highv4hi): Handle big endian.
7675 (vec_interleave_highv4hi_be): New.
7676 (vec_interleave_highv4hi_le): New.
7677 (insn_v2int_h): Handle big endian.
7678 (vec_interleave_lowv4hi): Handle big endian.
7679 (vec_interleave_lowv4hi_be): New.
7680 (vec_interleave_lowv4hi_le): New.
7681 (insn_v2int_l): Handle big endian.
7682 (vec_interleave_highv2si): Handle big endian.
7683 (vec_interleave_highv2si_be): New.
7684 (vec_interleave_highv2si_le): New.
7685 (insn_v4int_h): Handle big endian.
7686 (vec_interleave_lowv2si): Handle big endian.
7687 (vec_interleave_lowv2si_be): New.
7688 (vec_interleave_lowv2si_le): New.
7689 (insn_v4int_l): Handle big endian.
7690 * config/tilegx/tilegx.opt (mbig-endian): New option.
7691 (mlittle-endian): New option.
7692 * doc/install.texi: Document tilegxbe-linux.
7693 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
7695 2014-02-24 Martin Jambor <mjambor@suse.cz>
7698 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
7699 there are no parameter descriptors.
7701 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
7703 PR rtl-optimization/60268
7704 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
7705 initialization to ...
7706 (sched_rgn_init): ... here.
7707 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
7709 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
7711 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
7714 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
7716 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
7719 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
7721 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
7722 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
7724 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
7726 * config/microblaze/predicates.md: Add cmp_op predicate.
7727 * config/microblaze/microblaze.md: Add branch_compare instruction
7728 which uses cmp_op predicate and emits cmp insn before branch.
7729 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
7730 to microblaze_expand_conditional_branch and consolidate logic.
7731 (microblaze_expand_conditional_branch): emit branch_compare
7732 insn instead of handling cmp op separate from branch insn.
7734 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7736 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
7739 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7741 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
7742 define_insn with define_expand and new define_insn
7743 *altivec_lve<VI_char>x_internal.
7744 (altivec_stve<VI_char>x): Replace define_insn with define_expand
7745 and new define_insn *altivec_stve<VI_char>x_internal.
7746 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
7748 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
7750 (altivec_expand_stvex_be): New function.
7752 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
7754 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
7755 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
7756 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
7757 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
7759 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
7762 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
7763 instead of emit_move_insn.
7765 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7767 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
7769 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
7770 gen_altivec_vsumsws.
7772 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7774 * config/rs6000/altivec.md (altivec_lvxl): Rename as
7775 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
7776 (altivec_lvxl_<mode>): New define_expand incorporating
7777 -maltivec=be semantics where needed.
7778 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
7779 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
7780 semantics where needed.
7781 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
7782 (altivec_stvx_<mode>): New define_expand incorporating
7783 -maltivec=be semantics where needed.
7784 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
7785 VM2 iterator instead of V4SI.
7786 (altivec_stvxl_<mode>): New define_expand incorporating
7787 -maltivec=be semantics where needed.
7788 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
7789 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
7790 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
7791 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
7792 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
7793 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
7794 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
7795 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
7796 ALTIVEC_BUILTIN_STVXL.
7797 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
7798 (altivec_expand_stvx_be): Likewise.
7799 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
7800 (altivec_expand_lvx_be): Likewise.
7801 (altivec_expand_stvx_be): Likewise.
7802 (altivec_expand_builtin): Add cases for
7803 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
7804 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
7805 (altivec_init_builtins): Add definitions for
7806 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
7807 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
7809 2014-02-21 Catherine Moore <clm@codesourcery.com>
7811 * doc/invoke.texi (mvirt, mno-virt): Document.
7812 * config/mips/mips.opt (mvirt): New option.
7813 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
7815 2014-02-21 Richard Biener <rguenther@suse.de>
7817 PR tree-optimization/60276
7818 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
7819 (STMT_VINFO_MIN_NEG_DIST): New macro.
7820 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
7821 STMT_VINFO_MIN_NEG_DIST.
7822 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
7823 made for negative dependence distances still hold.
7825 2014-02-21 Richard Biener <rguenther@suse.de>
7828 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
7829 DECL_INITIAL for globals not in the current function context.
7831 2014-02-21 Jakub Jelinek <jakub@redhat.com>
7833 PR tree-optimization/56490
7834 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
7835 * tree-ssa-uninit.c: Include params.h.
7836 (compute_control_dep_chain): Add num_calls argument, return false
7837 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
7838 num_calls to recursive call.
7839 (find_predicates): Change dep_chain into normal array,
7840 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
7841 variable and adjust compute_control_dep_chain caller.
7842 (find_def_preds): Likewise.
7844 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
7846 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
7847 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
7849 2014-02-21 Nick Clifton <nickc@redhat.com>
7851 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
7852 (pushhi1): Likewise.
7853 (popqi1): Add mode to pre_dec.
7856 2014-02-21 Jakub Jelinek <jakub@redhat.com>
7858 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
7859 mode for mask of V8SFmode permutation.
7861 2014-02-20 Richard Henderson <rth@redhat.com>
7864 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
7865 a new pseudo for OLDVAL.
7867 2014-02-20 Jakub Jelinek <jakub@redhat.com>
7870 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
7871 gen_reg_rtx if d->testing_p.
7872 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
7873 if d->testing_p and we will certainly return true.
7874 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
7877 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
7879 * emit-rtl.c (gen_reg_rtx): Assert that
7880 crtl->emit.regno_pointer_align_length is non-zero.
7882 2014-02-20 Richard Henderson <rth@redhat.com>
7885 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
7886 on failure the store back into EXPECT.
7888 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
7889 Sandra Loosemore <sandra@codesourcery.com>
7891 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
7892 * config/nios2/nios2.c (nios2_function_profiler): Add
7893 -fPIC (flag_pic == 2) support.
7894 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
7895 (nios2_large_offset_p): New function.
7896 (nios2_unspec_reloc_p): Move up position, update to use
7897 nios2_large_offset_p.
7898 (nios2_unspec_address): Remove function.
7899 (nios2_unspec_offset): New function.
7900 (nios2_large_got_address): New function.
7901 (nios2_got_address): Add large offset support.
7902 (nios2_legitimize_tls_address): Update usage of removed and new
7904 (nios2_symbol_binds_local_p): New function.
7905 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
7906 (nios2_legitimize_address): Update to use nios2_large_offset_p.
7907 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
7908 (nios2_print_operand): Merge H/L processing, add hiadj/lo
7909 processing for (const (unspec ...)).
7910 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
7912 2014-02-20 Richard Biener <rguenther@suse.de>
7914 * tree-cfg.c (replace_uses_by): Mark altered BBs before
7915 doing the substitution.
7916 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
7918 2014-02-20 Martin Jambor <mjambor@suse.cz>
7921 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
7922 info when checking whether lattices are bottom.
7924 2014-02-20 Richard Biener <rguenther@suse.de>
7927 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
7930 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
7933 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
7934 parameter specifying the scaling.
7935 (inline_call): Update.
7936 (want_inline_recursively): Guard division by zero.
7937 (recursive_inlining): Update.
7938 * ipa-inline.h (clone_inlined_nodes): Update.
7940 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
7943 * config/i386/i386.c (classify_argument): Pass structures of size
7944 64 bytes or less in register.
7946 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
7947 Kirill Yukhin <kirill.yukhin@intel.com>
7949 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
7950 (_mm_rcp28_round_ss): Ditto.
7951 (_mm_rsqrt28_round_sd): Ditto.
7952 (_mm_rsqrt28_round_ss): Ditto.
7953 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
7954 (_mm_rcp14_round_ss): Ditto.
7955 (_mm_rsqrt14_round_sd): Ditto.
7956 (_mm_rsqrt14_round_ss): Ditto.
7957 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
7958 the first input operand, get rid of match_dup.
7959 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
7961 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
7963 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
7964 operand as the first input operand, set type attribute.
7965 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
7967 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
7968 operand as the first input operand, set type attribute.
7970 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7972 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
7975 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
7978 * config/i386/i386.c (construct_container): Remove TFmode check
7979 for X86_64_INTEGER_CLASS.
7981 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
7984 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
7985 only when -Wpsabi is enabled.
7987 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
7990 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
7991 passing arrays in registers are the same as for structs, so remove the
7992 special case for them.
7994 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
7996 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
7997 destination type, extract only the valid bits if the source type is not
7998 integral and has a different mode.
8000 2014-02-19 Richard Biener <rguenther@suse.de>
8003 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
8006 2014-02-19 Richard Biener <rguenther@suse.de>
8009 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
8010 (ipa_modify_call_arguments): Emit an argument load explicitely and
8011 preserve virtual SSA form there and for the replacement call.
8012 Do not update SSA form nor free dominance info.
8014 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
8016 * ipa.c (function_and_variable_visibility): Also clear WEAK
8017 flag when disolving COMDAT_GROUP.
8019 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
8021 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
8022 * ipa-prop.c (ipa_set_jf_known_type): Return early when
8024 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
8025 do more sanity checks.
8026 (detect_type_change): Return true when giving up early.
8027 (compute_complex_assign_jump_func): Fix type parameter of
8028 ipa_set_ancestor_jf.
8029 (compute_complex_ancestor_jump_func): Likewise.
8030 (update_jump_functions_after_inlining): Fix updating of
8032 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
8034 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
8036 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
8037 inline clones when edge disappears.
8039 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
8042 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
8043 Split 64-bit moves into 2 patterns. Do not allow the use of
8044 direct move for TDmode in little endian, since the decimal value
8045 has little endian bytes within a word, but the 64-bit pieces are
8046 ordered in a big endian fashion, and normal subreg's of TDmode are
8048 (mov<mode>_64bit_dm): Likewise.
8049 (movtd_64bit_nodm): Likewise.
8051 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
8053 PR tree-optimization/60174
8054 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
8055 statement of an SSA_NAME that occurs in an abnormal PHI node.
8057 2014-02-18 Jakub Jelinek <jakub@redhat.com>
8060 * final.c (SEEN_BB): Remove.
8061 (SEEN_NOTE, SEEN_EMITTED): Renumber.
8062 (final_scan_insn): Don't force_source_line on second
8063 NOTE_INSN_BASIC_BLOCK.
8065 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
8068 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
8069 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
8070 (type_natural_mode): Warn ABI change when %zmm register is not
8071 available for AVX512F vector value passing.
8073 2014-02-18 Kai Tietz <ktietz@redhat.com>
8076 * config/i386/i386.c (ix86_expand_prologue): Use value in
8077 rax register as displacement when restoring %r10 or %rax.
8078 Fix wrong offset when restoring both registers.
8080 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
8082 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
8083 assertion with conditional return.
8085 2014-02-18 Jakub Jelinek <jakub@redhat.com>
8086 Uros Bizjak <ubizjak@gmail.com>
8089 * config/i386/driver-i386.c (host_detect_local_cpu): If
8090 YMM state is not saved by the OS, also clear has_f16c. Move
8091 CPUID 0x80000001 handling before YMM state saving checking.
8093 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
8095 PR rtl-optimization/58960
8096 * haifa-sched.c (alloc_global_sched_pressure_data): New,
8097 factored out from ...
8098 (sched_init): ... here.
8099 (free_global_sched_pressure_data): New, factored out from ...
8100 (sched_finish): ... here.
8101 * sched-int.h (free_global_sched_pressure_data): Declare.
8102 * sched-rgn.c (nr_regions_initial): New static global.
8103 (haifa_find_rgns): Initialize it.
8104 (schedule_region): Disable sched-pressure for the newly
8107 2014-02-17 Richard Biener <rguenther@suse.de>
8109 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
8110 release SSA defs of pattern stmts.
8112 2014-02-17 Richard Biener <rguenther@suse.de>
8114 * tree-inline.c (expand_call_inline): Release the virtual
8115 operand defined by the call we are about to inline.
8117 2014-02-17 Richard Biener <rguenther@suse.de>
8119 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
8121 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
8122 Ilya Tocar <ilya.tocar@intel.com>
8124 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
8125 arguments order in builtin.
8126 (_mm512_permutexvar_epi64): Ditto.
8127 (_mm512_mask_permutexvar_epi64): Ditto
8128 (_mm512_maskz_permutexvar_epi32): Ditto
8129 (_mm512_permutexvar_epi32): Ditto
8130 (_mm512_mask_permutexvar_epi32): Ditto
8132 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8134 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
8135 (p8_vmrgow): Likewise.
8137 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8139 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
8142 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
8145 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
8146 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
8147 into 64-bit and 32-bit moves. On 64-bit moves, add support for
8148 using direct move instructions on ISA 2.07. Also adjust
8149 instruction length for 64-bit.
8150 (mov<mode>_64bit, TFmode/TDmode): Likewise.
8151 (mov<mode>_32bit, TFmode/TDmode): Likewise.
8153 2014-02-15 Alan Modra <amodra@gmail.com>
8157 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
8158 find_replacement on parts of insn rtl that might be reloaded.
8160 2014-02-15 Richard Biener <rguenther@suse.de>
8162 PR tree-optimization/60183
8163 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
8164 (tree_ssa_phiprop): Calculate and free post-dominators.
8166 2014-02-14 Jeff Law <law@redhat.com>
8168 PR rtl-optimization/60131
8169 * ree.c (get_extended_src_reg): New function.
8170 (combine_reaching_defs): Use it rather than assuming location of REG.
8171 (find_and_remove_re): Verify first operand of extension is
8172 a REG before adding the insns to the copy list.
8174 2014-02-14 Roland McGrath <mcgrathr@google.com>
8176 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
8177 * configure: Regenerated.
8178 * config.in: Regenerated.
8179 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
8180 instead of ASM_SHORT.
8182 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
8183 Richard Earnshaw <rearnsha@arm.com>
8185 PR rtl-optimization/59535
8186 * lra-constraints.c (process_alt_operands): Encourage alternative
8187 when unassigned pseudo class is superset of the alternative class.
8188 (inherit_reload_reg): Don't inherit when optimizing for code size.
8189 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
8190 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
8191 modes not less than 4 for Thumb1.
8193 2014-02-14 Kyle McMartin <kyle@redhat.com>
8196 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
8198 2014-02-14 Richard Biener <rguenther@suse.de>
8200 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
8201 (get_frame_arg): Drop the assert with langhook types_compatible_p.
8202 Do not strip INDIRECT_REFs.
8204 2014-02-14 Richard Biener <rguenther@suse.de>
8207 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
8208 DECL_FUNCTION_SPECIFIC_TARGET.
8209 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
8210 * tree-streamer-out.c (pack_ts_target_option): Remove.
8211 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
8212 (write_ts_function_decl_tree_pointers): Do not stream
8213 DECL_FUNCTION_SPECIFIC_TARGET.
8214 * tree-streamer-in.c (unpack_ts_target_option): Remove.
8215 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
8216 (lto_input_ts_function_decl_tree_pointers): Do not stream
8217 DECL_FUNCTION_SPECIFIC_TARGET.
8219 2014-02-14 Jakub Jelinek <jakub@redhat.com>
8221 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
8222 (get_initial_def_for_induction, vectorizable_induction): Ignore
8223 debug stmts when looking for exit_phi.
8224 (vectorizable_live_operation): Fix up condition.
8226 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
8228 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
8229 nreverse() because it changes the content of original tree list.
8231 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
8233 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
8234 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
8236 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
8238 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
8239 GNU coding standards.
8241 2014-02-13 Jakub Jelinek <jakub@redhat.com>
8244 * dwarf2out.c (gen_subprogram_die): Don't call
8245 add_calling_convention_attribute if subr_die is old_die.
8247 2014-02-13 Sharad Singhai <singhai@google.com>
8249 * doc/optinfo.texi: Fix order of nodes.
8251 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
8253 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
8254 operands[2], not operands[3].
8256 2014-02-13 Richard Biener <rguenther@suse.de>
8259 * doc/install.texi (ISL): Update recommended version to 0.12.2,
8260 mention the possibility of an in-tree build.
8261 (CLooG): Update recommended version to 0.18.1, mention the
8262 possibility of an in-tree build and clarify that the ISL
8263 bundled with CLooG does not work.
8265 2014-02-13 Jakub Jelinek <jakub@redhat.com>
8268 * expr.c (compress_float_constant): If x is a hard register,
8269 extend into a pseudo and then move to x.
8271 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
8273 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
8274 caused by bad second argument to warning_at() with -mhotpatch and
8275 nested functions (e.g. with gfortran).
8277 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
8279 * opts.c (option_name): Remove "enabled by default" rider.
8281 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
8283 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
8285 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
8286 Uros Bizjak <ubizjak@gmail.com>
8289 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
8290 * configure: Regenerated.
8292 2014-02-12 Richard Biener <rguenther@suse.de>
8294 * vec.c (vec_prefix::calculate_allocation): Move as
8295 inline variant to vec.h.
8296 (vec_prefix::calculate_allocation_1): New out-of-line version.
8297 * vec.h (vec_prefix::calculate_allocation_1): Declare.
8298 (vec_prefix::m_has_auto_buf): Rename to ...
8299 (vec_prefix::m_using_auto_storage): ... this.
8300 (vec_prefix::calculate_allocation): Inline the easy cases
8301 and dispatch to calculate_allocation_1 which doesn't need the
8303 (va_heap::reserve): Use gcc_checking_assert.
8304 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
8305 m_using_auto_storage.
8306 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
8308 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
8309 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
8310 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
8312 2014-02-12 Richard Biener <rguenther@suse.de>
8314 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
8315 when we found a dependence.
8317 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
8319 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
8321 (maybe_fold_stmt): ... into this new function.
8322 * omp-low.c (lower_omp): Update comment.
8324 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
8327 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
8330 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
8332 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
8333 identifiers in comments.
8334 (cortexa53_extra_costs): Likewise.
8335 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
8336 (cortexa7_extra_costs): Likewise.
8337 (cortexa12_extra_costs): Likewise.
8338 (cortexa15_extra_costs): Likewise.
8339 (v7m_extra_costs): Likewise.
8341 2014-02-12 Richard Biener <rguenther@suse.de>
8344 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
8345 of posix_memalign being successful.
8346 (lower_stmt): Restrict lowering of posix_memalign to when
8347 -ftree-bit-ccp is enabled.
8349 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8351 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
8353 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
8355 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
8357 PR rtl-optimization/60116
8358 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
8359 other_insn once the combination has been validated.
8361 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
8364 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
8366 * ipa-devirt.c: Include demangle.h
8367 (odr_violation_reported): New static variable.
8368 (add_type_duplicate): Update odr_violations.
8369 (maybe_record_node): Add completep parameter; update it.
8370 (record_target_from_binfo): Add COMPLETEP parameter;
8371 update it as needed.
8372 (possible_polymorphic_call_targets_1): Likewise.
8373 (struct polymorphic_call_target_d): Add nonconstruction_targets;
8374 rename FINAL to COMPLETE.
8375 (record_targets_from_bases): Sanity check we found the binfo;
8376 fix COMPLETEP updating.
8377 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
8378 parameter, fix computing of COMPLETEP.
8379 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
8380 at LTO time do demangling.
8381 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
8382 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
8384 (gimple_get_virt_method_for_binfo): Likewise.
8385 * gimple-fold.h (gimple_get_virt_method_for_binfo,
8386 gimple_get_virt_method_for_vtable): Update prototypes.
8388 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
8391 * genautomata.c (add_presence_absence): Fix typo with
8392 {final_}presence_list.
8394 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
8397 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
8398 for VSX/Altivec vectors that land in GPR registers.
8400 2014-02-11 Richard Henderson <rth@redhat.com>
8401 Jakub Jelinek <jakub@redhat.com>
8404 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
8405 around drhs if type conversion to lacc->type is not useless.
8407 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8409 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
8411 (cortex-a57.cortex-a53): Likewise.
8412 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
8414 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8416 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
8419 2014-02-11 Renlin Li <Renlin.Li@arm.com>
8421 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
8422 add_options_for_arm_vfp3.
8424 2014-02-11 Jeff Law <law@redhat.com>
8427 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
8428 object with an undesirable mode.
8430 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8433 * config/i386/sol2-9.h: New file.
8434 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
8435 *-*-solaris2.9*): Use it.
8437 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
8439 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
8440 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
8442 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
8444 * config/microblaze/microblaze.c: Extend mcpu version format
8446 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
8448 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
8450 2014-02-10 Richard Henderson <rth@redhat.com>
8453 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
8454 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
8455 ms-abi vs -mno-accumulate-outgoing-args.
8456 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
8457 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
8460 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
8463 * cfgexpand.c (expand_asm_operands): Attach source location to
8464 ASM_INPUT rtx objects.
8465 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
8467 2014-02-10 Nick Clifton <nickc@redhat.com>
8469 * config/mn10300/mn10300.c (popcount): New function.
8470 (mn10300_expand_prologue): Include saved registers in stack usage
8473 2014-02-10 Jeff Law <law@redhat.com>
8476 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
8477 when changing the SET_DEST of a prior insn to avoid an input reload.
8479 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8481 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
8482 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
8483 -mcall-openbsd, or -mcall-linux.
8484 (CC1_ENDIAN_BIG_SPEC): Remove.
8485 (CC1_ENDIAN_LITTLE_SPEC): Remove.
8486 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
8487 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
8488 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
8489 and %cc1_endian_default.
8490 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
8492 2014-02-10 Richard Biener <rguenther@suse.de>
8494 PR tree-optimization/60115
8495 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
8496 MEM_REF handling. Properly verify that the accesses are not
8497 out of the objects bound.
8499 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8501 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
8504 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
8506 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
8507 proper constants and fix formatting.
8508 (possible_polymorphic_call_targets): Fix formatting.
8510 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
8511 Ilya Tocar <ilya.tocar@intel.com>
8513 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
8514 (_mm512_loadu_epi32): Renamed into...
8515 (_mm512_loadu_si512): This.
8516 (_mm512_storeu_epi32): Renamed into...
8517 (_mm512_storeu_si512): This.
8518 (_mm512_maskz_ceil_ps): Removed.
8519 (_mm512_maskz_ceil_pd): Ditto.
8520 (_mm512_maskz_floor_ps): Ditto.
8521 (_mm512_maskz_floor_pd): Ditto.
8522 (_mm512_floor_round_ps): Ditto.
8523 (_mm512_floor_round_pd): Ditto.
8524 (_mm512_ceil_round_ps): Ditto.
8525 (_mm512_ceil_round_pd): Ditto.
8526 (_mm512_mask_floor_round_ps): Ditto.
8527 (_mm512_mask_floor_round_pd): Ditto.
8528 (_mm512_mask_ceil_round_ps): Ditto.
8529 (_mm512_mask_ceil_round_pd): Ditto.
8530 (_mm512_maskz_floor_round_ps): Ditto.
8531 (_mm512_maskz_floor_round_pd): Ditto.
8532 (_mm512_maskz_ceil_round_ps): Ditto.
8533 (_mm512_maskz_ceil_round_pd): Ditto.
8534 (_mm512_expand_pd): Ditto.
8535 (_mm512_expand_ps): Ditto.
8536 * config/i386/i386.c (ix86_builtins): Remove
8537 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
8538 (bdesc_args): Ditto.
8539 * config/i386/predicates.md (const1256_operand): New.
8540 (const_1_to_2_operand): Ditto.
8541 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
8542 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
8543 (*avx512pf_gatherpf<mode>sf): Ditto.
8544 (avx512pf_gatherpf<mode>df): Ditto.
8545 (*avx512pf_gatherpf<mode>df_mask): Ditto.
8546 (*avx512pf_gatherpf<mode>df): Ditto.
8547 (avx512pf_scatterpf<mode>sf): Ditto.
8548 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
8549 (*avx512pf_scatterpf<mode>sf): Ditto.
8550 (avx512pf_scatterpf<mode>df): Ditto.
8551 (*avx512pf_scatterpf<mode>df_mask): Ditto.
8552 (*avx512pf_scatterpf<mode>df): Ditto.
8553 (avx512f_expand<mode>): Removed.
8554 (<shift_insn><mode>3<mask_name>): Change predicate type.
8556 2014-02-08 Jakub Jelinek <jakub@redhat.com>
8558 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
8559 not at the end of datarefs vector use ordered_remove to avoid
8560 reordering datarefs vector.
8563 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
8564 mark local addressable non-static vars as GOVD_PRIVATE
8565 instead of GOVD_LOCAL.
8566 * omp-low.c (lower_omp_for): Move gimple_bind_vars
8567 and BLOCK_VARS of gimple_bind_block to new_stmt rather
8571 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
8572 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
8573 assume_aligned or alloc_align attributes.
8574 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
8575 arguments. Handle also assume_aligned and alloc_align attributes.
8576 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
8577 calls to functions with assume_aligned or alloc_align attributes.
8578 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
8580 2014-02-08 Terry Guo <terry.guo@arm.com>
8582 * doc/invoke.texi: Document ARM -march=armv7e-m.
8584 2014-02-08 Jakub Jelinek <jakub@redhat.com>
8586 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
8587 flag on __cilkrts_rethrow builtin.
8590 * ipa-cp.c (determine_versionability): Fail at -O0
8591 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
8592 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
8595 2014-02-04 Jakub Jelinek <jakub@redhat.com>
8598 * tree-inline.c (copy_forbidden): Fail for
8599 __attribute__((optimize (0))) functions.
8601 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
8603 * varpool.c: Include pointer-set.h.
8604 (varpool_remove_unreferenced_decls): Variables in other partitions
8605 will not be output; be however careful to not lose information
8608 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
8610 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
8611 lookup in the vtable constructor.
8613 2014-02-07 Jeff Law <law@redhat.com>
8616 * config/m68k/m68k.md (ashldi_extsi): Turn into a
8617 define_insn_and_split.
8619 * ipa-inline.c (inline_small_functions): Fix typos.
8621 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
8623 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
8624 (s390_can_use_return_insn): Declare.
8625 * config/s390/s390.h (EPILOGUE_USES): Define.
8626 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
8628 (s390_chunkify_start): Handle return JUMP_LABELs.
8629 (s390_early_mach): Emit a main_pool instruction on the entry edge.
8630 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
8631 (s390_can_use_return_insn): New functions.
8632 (s390_fix_long_loop_prediction): Handle conditional returns.
8633 (TARGET_SET_UP_BY_PROLOGUE): Define.
8634 * config/s390/s390.md (ANY_RETURN): New code iterator.
8635 (*creturn, *csimple_return, return, simple_return): New patterns.
8637 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
8639 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
8640 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
8641 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
8642 REG_CFA_RESTORE list when deciding not to restore a register.
8644 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
8646 * config/s390/s390.c: Include tree-pass.h and context.h.
8647 (s390_early_mach): New function, split out from...
8648 (s390_emit_prologue): ...here.
8649 (pass_data_s390_early_mach): New pass structure.
8650 (pass_s390_early_mach): New class.
8651 (s390_option_override): Create and register early_mach pass.
8652 Move to end of file.
8654 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
8656 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
8657 to match for the exit block.
8659 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8661 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
8662 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
8663 Reject misaligned operands.
8665 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8667 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
8669 2014-02-07 Richard Biener <rguenther@suse.de>
8672 * gimple-low.c (lower_builtin_posix_memalign): New function.
8673 (lower_stmt): Call it to lower posix_memalign in a way
8674 to make alignment info accessible.
8676 2014-02-07 Jakub Jelinek <jakub@redhat.com>
8679 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
8680 __builtin_setjmp_receiver.
8682 2014-02-07 Richard Biener <rguenther@suse.de>
8685 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
8686 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
8687 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8688 Handle BUILT_IN_POSIX_MEMALIGN.
8689 (find_func_clobbers): Likewise.
8690 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
8691 (call_may_clobber_ref_p_1): Likewise.
8693 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8696 * ipa-devirt.c (record_target_from_binfo): Remove overactive
8699 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8702 * lto-cgraph.c (lto_output_node): Use
8703 symtab_get_symbol_partitioning_class.
8704 (lto_output_varpool_node): likewise.
8705 (symtab_get_symbol_partitioning_class): Move here from
8707 * cgraph.h (symbol_partitioning_class): Likewise.
8708 (symtab_get_symbol_partitioning_class): Declare.
8710 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8712 * ggc.h (ggc_internal_cleared_alloc): New macro.
8713 * vec.h (vec_safe_copy): Handle memory stats.
8714 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
8715 * target-globals.c (save_target_globals): Likewise.
8717 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
8720 * expr.c (emit_move_resolve_push): Export; be bit more selective
8721 on when to clear alias set.
8722 * expr.h (emit_move_resolve_push): Declare.
8723 * function.h (struct function): Add tail_call_marked.
8724 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
8725 * config/i386/i386-protos.h (ix86_expand_push): Remove.
8726 * config/i386/i386.md (TImode move expander): De not call
8728 (FP push expanders): Preserve memory attributes.
8729 * config/i386/sse.md (push<mode>1): Remove.
8730 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
8731 (ix86_expand_push): Remove.
8732 * config/i386/mmx.md (push<mode>1): Remove.
8734 2014-02-06 Jakub Jelinek <jakub@redhat.com>
8736 PR rtl-optimization/60030
8737 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
8738 lopart with paradoxical subreg before shifting it up by hprec.
8740 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8742 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
8743 Remove extra newline at end of file.
8744 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
8745 (arm_issue_rate): Handle cortexa57.
8746 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
8747 (cortex-a57.cortex-a53): Likewise.
8749 2014-02-06 Jakub Jelinek <jakub@redhat.com>
8752 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
8753 don't record in REG_FRAME_RELATED_EXPR registers not set in that
8755 (arm_expand_prologue): Adjust all callers.
8756 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
8757 info, registers also at the lowest numbered registers side. Use
8758 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
8762 * var-tracking.c (adjust_mems): Before adding a SET to
8763 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
8765 2014-02-06 Alan Modra <amodra@gmail.com>
8768 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
8769 change SDmode to DDmode when lra_in_progress.
8771 2014-02-06 Jakub Jelinek <jakub@redhat.com>
8774 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
8775 free_data_ref on the dr first, and before goto again also set dr
8776 to the next dr. For simd_lane_access, free old datarefs[i] before
8777 overwriting it. For get_vectype_for_scalar_type failure, don't
8778 free_data_ref if simd_lane_access.
8780 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
8783 * tree.h (opts_for_fn): New inline function.
8784 (opt_for_fn): Define.
8785 * config/i386/i386.c (ix86_function_regparm): Use
8786 opt_for_fn (decl, optimize) instead of optimize.
8788 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
8790 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
8791 for SYMBOL_REF in large memory model.
8793 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8795 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
8797 (cortex-a57): Likewise.
8798 (cortex-a57.cortex-a53): Likewise.
8800 2014-02-06 Yury Gribov <y.gribov@samsung.com>
8801 Kugan Vivekanandarajah <kuganv@linaro.org>
8803 * config/arm/arm.c (arm_vector_alignment_reachable): Check
8805 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
8807 2014-02-06 Richard Biener <rguenther@suse.de>
8809 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
8810 set_loop_copy and initialize_original_copy_tables.
8812 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
8814 * config/aarch64/aarch64-simd.md
8815 (aarch64_ashr_simddi): Change QI to SI.
8817 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
8818 Jakub Jelinek <jakub@redhat.com>
8821 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
8824 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8826 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
8827 CODE_FOR_altivec_vpku[hw]um to
8828 CODE_FOR_altivec_vpku[hw]um_direct.
8829 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
8830 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
8831 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
8832 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
8834 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8836 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
8837 generation for -maltivec=be.
8838 (altivec_vsumsws): Simplify redundant test.
8840 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8842 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
8843 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
8844 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
8845 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
8846 gen_altivec_vpkuwum.
8847 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
8849 (altivec_vpks<VI_char>ss): Likewise.
8850 (altivec_vpks<VI_char>us): Likewise.
8851 (altivec_vpku<VI_char>us): Likewise.
8852 (altivec_vpku<VI_char>um): Likewise.
8853 (altivec_vpku<VI_char>um_direct): New (copy of
8854 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
8856 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
8857 target is little endian and -maltivec=be is not specified.
8858 (*altivec_vupkhs<VU_char>_direct): New (copy of
8859 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
8860 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
8861 target is little endian and -maltivec=be is not specified.
8862 (*altivec_vupkls<VU_char>_direct): New (copy of
8863 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
8864 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
8865 little endian and -maltivec=be is not specified.
8866 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
8867 little endian and -maltivec=be is not specified.
8869 2014-02-05 Richard Henderson <rth@redhat.com>
8872 * combine-stack-adj.c: Revert r206943.
8873 * sched-int.h (struct deps_desc): Add last_args_size.
8874 * sched-deps.c (init_deps): Initialize it.
8875 (sched_analyze_insn): Add OUTPUT dependencies between insns that
8876 contain REG_ARGS_SIZE notes.
8878 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
8880 * lto-cgraph.c (asm_nodes_output): Make global.
8881 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
8882 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
8883 (driver_handle_option): Handle OPT_fwpa.
8885 2014-02-05 Jakub Jelinek <jakub@redhat.com>
8888 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
8889 a comment typo and formatting issue. If odr_hash hasn't been
8890 created, return vNULL and set *completep to false.
8893 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
8894 bb with no successors.
8896 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
8899 * doc/invoke.texi (-march): Clarify documentation for ARM.
8903 2014-02-05 Richard Biener <rguenther@suse.de>
8905 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
8906 when not vectorizing because of too many alias checks.
8907 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8908 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
8910 2014-02-05 Nick Clifton <nickc@redhat.com>
8912 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
8913 accept extended registers in any mode when compiling for the MN10300.
8915 2014-02-05 Yury Gribov <y.gribov@samsung.com>
8917 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
8918 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
8919 sanitization attributes.
8920 (can_inline_edge_p): Likewise.
8921 (sanitize_attrs_match_for_inline_p): New function.
8923 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
8925 * ipa-prop.c (detect_type_change): Shor circuit testing of
8926 type changes on THIS pointer.
8928 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
8931 * config/pa/pa.c (legitimize_tls_address): Return original address
8932 if not passed a SYMBOL_REF rtx.
8933 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
8935 (pa_emit_move_sequence): Simplify TLS source operands.
8936 (pa_legitimate_constant_p): Reject all TLS constants.
8937 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
8938 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
8940 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
8942 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
8943 groups when we know they are controlled by LTO.
8944 * varasm.c (default_binds_local_p_1): If object is in other partition,
8945 it will be resolved locally.
8947 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
8949 * config/host-linux.c (linux_gt_pch_use_address): Don't
8950 use SSIZE_MAX because it is not always defined.
8952 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
8955 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
8956 threshold for pseudo splitting.
8957 (update_ebb_live_info): Process call argument hard registers and
8958 hard registers from insn definition too.
8959 (max_small_class_regs_num): New constant.
8960 (inherit_in_ebb): Update live hard regs through EBBs. Update
8961 reloads_num only for small register classes. Don't split for
8964 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
8967 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
8970 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
8972 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
8975 2014-02-04 Marek Polacek <polacek@redhat.com>
8977 * gdbinit.in (pel): Define.
8979 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
8981 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
8984 2014-02-04 Richard Biener <rguenther@suse.de>
8987 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
8988 in function context local.
8989 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
8990 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
8991 similar to LTO_imported_decl_ref.
8993 2014-02-04 Jakub Jelinek <jakub@redhat.com>
8995 PR tree-optimization/60002
8996 * cgraphclones.c (build_function_decl_skip_args): Clear
8999 PR tree-optimization/60023
9000 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
9001 false to gsi_replace.
9002 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
9003 has been in some EH region and vec_stmt could throw, add
9004 vec_stmt into the same EH region.
9005 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
9006 has no lhs, ignore it.
9007 * internal-fn.c (expand_MASK_LOAD): Likewise.
9010 * tree-inline.c (copy_forbidden): Fail for
9011 __attribute__((optimize (0))) functions.
9014 * omp-low.c (simd_clone_struct_copy): If from->inbranch
9015 is set, copy one less argument.
9016 (expand_simd_clones): Don't subtract clone_info->inbranch
9017 from simd_clone_struct_alloc argument.
9019 PR rtl-optimization/57915
9020 * recog.c (simplify_while_replacing): If all unary/binary/relational
9021 operation arguments are constant, attempt to simplify those.
9024 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
9025 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
9027 2014-02-04 Richard Biener <rguenther@suse.de>
9029 PR tree-optimization/60012
9030 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
9031 TBAA disambiguation to all DDRs.
9033 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9036 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
9037 (LINK_SPEC): Use it for -shared, -shared-libgcc.
9039 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
9042 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
9044 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
9046 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
9047 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
9049 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
9052 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
9053 to figure out targets of polymorphic calls with known decl.
9054 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
9055 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
9056 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
9057 (get_polymorphic_call_info): ... here.
9058 (get_polymorphic_call_info_from_invariant): New function.
9060 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
9062 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
9063 lookup via vtable pointer; check for type consistency
9064 and turn inconsitent facts into UNREACHABLE.
9065 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
9066 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
9067 type inconsistent querries; return UNREACHABLE instead.
9069 2014-02-03 Richard Henderson <rth@twiddle.net>
9072 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
9073 already processed this node.
9074 (normalize_one_pred_1): Pass along mark_set.
9075 (normalize_one_pred): Create and destroy a pointer_set_t.
9076 (normalize_one_pred_chain): Likewise.
9078 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
9080 PR gcov-profile/58602
9081 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
9083 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
9086 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
9087 -fno-devirtualize; try to devirtualize by the knowledge of
9088 virtual table pointer given by aggregate propagation.
9089 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
9090 (ipa_print_node_jump_functions): Dump also offset that
9091 is relevant for polymorphic calls.
9092 (determine_known_aggregate_parts): Add arg_type parameter; use it
9093 instead of determining the type from pointer type.
9094 (ipa_compute_jump_functions_for_edge): Update call of
9095 determine_known_aggregate_parts.
9096 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
9097 (gimple_get_virt_method_for_binfo): ... here; simplify using
9098 vtable_pointer_value_to_vtable.
9099 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
9100 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
9101 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
9102 (vtable_pointer_value_to_vtable): Break out from ...; handle also
9104 (vtable_pointer_value_to_binfo): ... here.
9105 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
9107 2014-02-03 Teresa Johnson <tejohnson@google.com>
9109 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
9110 redef of outer loop index variable.
9112 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
9116 * doc/extend.texi (Function Attributes): Typo.
9118 2014-02-03 Cong Hou <congh@google.com>
9120 PR tree-optimization/60000
9121 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
9122 if the vectorized statement is a store. A store statement can only
9123 appear at the end of pattern statements.
9125 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
9127 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
9128 (ix86_option_override_internal): Default long double to 64-bit for
9129 32-bit Bionic and to 128-bit for 64-bit Bionic.
9131 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
9132 TARGET_LONG_DOUBLE_128 is true.
9133 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
9135 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
9136 (mlong-double-64): Negate -mlong-double-128.
9137 (mlong-double-128): New option.
9139 * config/i386/i386-c.c (ix86_target_macros): Define
9140 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
9142 * doc/invoke.texi: Document -mlong-double-128.
9144 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
9146 PR rtl-optimization/60024
9147 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
9149 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
9151 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
9153 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
9155 PR rtl-optimization/57662
9156 * sel-sched.c (code_motion_path_driver): Do not mark already not
9157 existing blocks in the visiting bitmap.
9159 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
9161 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
9162 on the insn being emitted.
9164 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
9165 Will Deacon <will.deacon@arm.com>
9167 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
9169 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9171 * config/arm/arm-tables.opt: Regenerate.
9173 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9175 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
9176 for vector types other than V16QImode.
9177 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
9178 define_expand, and call altivec_expand_vec_perm_le when producing
9179 code with little endian element order.
9180 (*altivec_vperm_<mode>_internal): New insn having previous
9181 behavior of altivec_vperm_<mode>.
9182 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
9183 altivec_expand_vec_perm_le when producing code with little endian
9185 (*altivec_vperm_<mode>_uns_internal): New insn having previous
9186 behavior of altivec_vperm_<mode>_uns.
9188 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9190 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
9191 (altivec_vsumsws): Add handling for -maltivec=be with a little
9193 (altivec_vsumsws_direct): New.
9194 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
9195 gen_altivec_vsumsws.
9197 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
9199 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
9200 vtable_pointer_value_to_binfo): New functions.
9201 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
9202 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
9204 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
9206 * config/nios2/nios2.md (load_got_register): Initialize GOT
9207 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
9208 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
9210 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
9212 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
9213 preserverd by passthrough, do not propagate the type.
9215 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
9217 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
9218 (mips_atomic_assign_expand_fenv): New function.
9219 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
9221 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
9223 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
9224 (__builtin_mips_set_fcsr): Likewise.
9225 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
9226 MIPS_USI_FTYPE_VOID.
9227 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
9228 (mips16_expand_set_fcsr): Likewise.
9229 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
9230 (mips16_set_fcsr_stub): Likewise.
9231 (mips16_get_fcsr_one_only_stub): New class.
9232 (mips16_set_fcsr_one_only_stub): Likewise.
9233 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
9234 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
9235 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
9236 (hard_float): New availability predicate.
9237 (mips_builtins): Add get_fcsr and set_fcsr.
9238 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
9239 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
9240 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
9241 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
9242 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
9245 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
9247 * config/mips/mips.c (mips_one_only_stub): New class.
9248 (mips_need_mips16_rdhwr_p): Replace with...
9249 (mips16_rdhwr_stub): ...this new variable.
9250 (mips16_stub_call_address): New function.
9251 (mips16_rdhwr_one_only_stub): New class.
9252 (mips_expand_thread_pointer): Use mips16_stub_call_address.
9253 (mips_output_mips16_rdhwr): Delete.
9254 (mips_finish_stub): New function.
9255 (mips_code_end): Use it to handle rdhwr stubs.
9257 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
9260 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
9261 when calculating size of integer atomic types.
9263 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
9265 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
9267 2014-02-01 Jakub Jelinek <jakub@redhat.com>
9269 PR tree-optimization/60003
9270 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
9271 * profile.c (branch_prob): Use gimple_call_builtin_p
9272 to check for BUILT_IN_SETJMP_RECEIVER.
9273 * tree-inline.c (copy_bb): Call notice_special_calls.
9275 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
9278 * lra-constraints.c (process_alt_operands): Update reload_sum only
9281 2014-01-31 Richard Henderson <rth@redhat.com>
9284 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
9285 until after else_eh is processed.
9287 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
9289 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
9290 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
9291 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
9292 in smmintrin.h, remove them.
9293 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
9294 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
9295 * config/i386/i386.md (ROUND_SAE): Fix value.
9296 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
9297 (const48_operand): New.
9298 * config/i386/subst.md (round), (round_expand): Use
9299 const_4_or_8_to_11_operand.
9300 (round_saeonly), (round_saeonly_expand): Use const48_operand.
9302 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
9304 * config/i386/constraints.md (Yk): Swap meaning with k.
9305 * config/i386/i386.md (movhi_internal): Change Yk to k.
9306 (movqi_internal): Ditto.
9307 (*k<logic><mode>): Ditto.
9310 (kandn<mode>): Ditto.
9311 (*<code>hi_1): Ditto.
9312 (*<code>qi_1): Ditto.
9313 (kxnor<mode>): Ditto.
9314 (kortestzhi): Ditto.
9315 (kortestchi): Ditto.
9317 (*one_cmplhi2_1): Ditto.
9318 (*one_cmplqi2_1): Ditto.
9319 * config/i386/sse.md (): Change k to Yk.
9320 (avx512f_load<mode>_mask): Ditto.
9321 (avx512f_blendm<mode>): Ditto.
9322 (avx512f_store<mode>_mask): Ditto.
9323 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
9324 (avx512f_storedqu<mode>_mask): Ditto.
9325 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
9327 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
9328 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
9329 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
9330 (avx512f_maskcmp<mode>3): Ditto.
9331 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
9332 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
9333 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
9334 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
9335 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
9336 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
9337 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
9338 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
9339 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
9340 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
9341 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
9342 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
9343 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
9344 (vec_extract_lo_<mode>_maskm): Ditto.
9345 (vec_extract_hi_<mode>_maskm): Ditto.
9346 (avx512f_vternlog<mode>_mask): Ditto.
9347 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
9348 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
9349 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
9350 (avx512f_<code>v8div16qi2_mask): Ditto.
9351 (avx512f_<code>v8div16qi2_mask_store): Ditto.
9352 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
9353 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
9354 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
9355 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
9356 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
9357 (*avx512pf_gatherpf<mode>df_mask): Ditto.
9358 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
9359 (*avx512pf_scatterpf<mode>df_mask): Ditto.
9360 (avx512cd_maskb_vec_dupv8di): Ditto.
9361 (avx512cd_maskw_vec_dupv16si): Ditto.
9362 (avx512f_vpermi2var<mode>3_maskz): Ditto.
9363 (avx512f_vpermi2var<mode>3_mask): Ditto.
9364 (avx512f_vpermi2var<mode>3_mask): Ditto.
9365 (avx512f_vpermt2var<mode>3_maskz): Ditto.
9366 (*avx512f_gathersi<mode>): Ditto.
9367 (*avx512f_gathersi<mode>_2): Ditto.
9368 (*avx512f_gatherdi<mode>): Ditto.
9369 (*avx512f_gatherdi<mode>_2): Ditto.
9370 (*avx512f_scattersi<mode>): Ditto.
9371 (*avx512f_scatterdi<mode>): Ditto.
9372 (avx512f_compress<mode>_mask): Ditto.
9373 (avx512f_compressstore<mode>_mask): Ditto.
9374 (avx512f_expand<mode>_mask): Ditto.
9375 * config/i386/subst.md (mask): Change k to Yk.
9376 (mask_scalar_merge): Ditto.
9379 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
9381 * doc/extend.texi (Vector Extensions): Document ?: in C++.
9383 2014-01-31 Richard Biener <rguenther@suse.de>
9386 * builtins.c (fold_builtin_memory_op): Make sure to not
9387 use a floating-point mode or a boolean or enumeral type for
9390 2014-01-30 DJ Delorie <dj@redhat.com>
9392 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
9393 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
9394 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
9395 whenever main() has an epilogue.
9397 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9399 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
9400 unused variable "field".
9401 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
9402 (vsx_mergeh_<mode>): Likewise.
9403 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
9404 (altivec_vmrghh): Likewise.
9405 (altivec_vmrghw): Likewise.
9406 (altivec_vmrglb): Likewise.
9407 (altivec_vmrglh): Likewise.
9408 (altivec_vmrglw): Likewise.
9409 (altivec_vspltb): Add missing uses.
9410 (altivec_vsplth): Likewise.
9411 (altivec_vspltw): Likewise.
9412 (altivec_vspltsf): Likewise.
9414 2014-01-30 Jakub Jelinek <jakub@redhat.com>
9417 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
9418 frame related instructions.
9420 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
9422 PR rtl-optimization/59959
9423 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
9424 any reload of register whose subreg is invalid.
9426 2014-01-30 Jakub Jelinek <jakub@redhat.com>
9428 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
9429 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
9430 Add missing return type - void.
9432 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9434 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
9435 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
9436 remove element index adjustment for endian (now handled in vsx.md
9438 (altivec_expand_vec_perm_const): Use
9439 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
9440 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
9441 (vsx_xxspltw_<mode>): Adjust element index for little endian.
9442 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
9443 define_expand and a new define_insn *altivec_vspltb_internal;
9444 adjust for -maltivec=be on a little endian target.
9445 (altivec_vspltb_direct): New.
9446 (altivec_vsplth): Divide into a define_expand and a new
9447 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
9448 little endian target.
9449 (altivec_vsplth_direct): New.
9450 (altivec_vspltw): Divide into a define_expand and a new
9451 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
9452 little endian target.
9453 (altivec_vspltw_direct): New.
9454 (altivec_vspltsf): Divide into a define_expand and a new
9455 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
9456 a little endian target.
9458 2014-01-30 Richard Biener <rguenther@suse.de>
9460 PR tree-optimization/59993
9461 * tree-ssa-forwprop.c (associate_pointerplus): Check we
9462 can propagate form the earlier stmt and avoid the transform
9463 when the intermediate result is needed.
9465 2014-01-30 Alangi Derick <alangiderick@gmail.com>
9467 * README.Portability: Fix typo.
9469 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
9471 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
9472 comparison_operator with ordered_comparison_operator.
9474 2014-01-30 Nick Clifton <nickc@redhat.com>
9476 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
9477 Rename to mn10300_store_multiple_regs.
9478 * config/mn10300/mn10300.c: Likewise.
9479 * config/mn10300/mn10300.md (store_movm): Fix typo: call
9480 store_multiple_regs.
9481 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
9482 Call mn10300_store_multiple_regs.
9484 2014-01-30 Nick Clifton <nickc@redhat.com>
9485 DJ Delorie <dj@redhat.com>
9487 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
9488 %fp 2 to keep registers after it properly word-aligned.
9489 (rl78_alloc_physical_registers_umul): Handle the case where both
9490 input operands are the same.
9492 2014-01-30 Richard Biener <rguenther@suse.de>
9494 PR tree-optimization/59903
9495 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
9498 2014-01-30 Jason Merrill <jason@redhat.com>
9501 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
9504 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
9506 2014-01-30 Richard Biener <rguenther@suse.de>
9508 PR tree-optimization/59951
9509 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
9511 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
9514 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
9515 SFmode to DFmode case.
9517 2014-01-29 DJ Delorie <dj@redhat.com>
9519 * config/msp430/msp430.opt (-minrt): New.
9520 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
9522 (ENDFILE_SPEC): Likewise.
9524 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
9526 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
9527 (estimate_function_body_sizes): Use it.
9529 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
9532 * dwarf2out.c (is_cxx_auto): New.
9533 (is_base_type): Use it.
9534 (gen_type_die_with_usage): Likewise.
9536 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9538 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
9539 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
9540 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
9541 -maltivec=be with LE targets.
9542 (vsx_mergeh_<mode>): Likewise.
9543 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
9544 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
9545 (altivec_vmrghb): Replace with define_expand and new
9546 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
9547 (altivec_vmrghb_direct): New define_insn.
9548 (altivec_vmrghh): Replace with define_expand and new
9549 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
9550 (altivec_vmrghh_direct): New define_insn.
9551 (altivec_vmrghw): Replace with define_expand and new
9552 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
9553 (altivec_vmrghw_direct): New define_insn.
9554 (*altivec_vmrghsf): Adjust for endianness.
9555 (altivec_vmrglb): Replace with define_expand and new
9556 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
9557 (altivec_vmrglb_direct): New define_insn.
9558 (altivec_vmrglh): Replace with define_expand and new
9559 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
9560 (altivec_vmrglh_direct): New define_insn.
9561 (altivec_vmrglw): Replace with define_expand and new
9562 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
9563 (altivec_vmrglw_direct): New define_insn.
9564 (*altivec_vmrglsf): Adjust for endianness.
9565 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
9566 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
9567 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
9568 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
9569 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
9570 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
9571 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
9572 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
9574 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
9576 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
9577 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
9580 2014-01-29 Richard Biener <rguenther@suse.de>
9582 PR tree-optimization/58742
9583 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
9584 associate_pointerplus_align.
9585 (associate_pointerplus_diff): New function.
9586 (associate_pointerplus): Likewise. Call associate_pointerplus_align
9587 and associate_pointerplus_diff.
9589 2014-01-29 Richard Biener <rguenther@suse.de>
9591 * lto-streamer.h (LTO_major_version): Bump to 3.
9592 (LTO_minor_version): Reset to 0.
9594 2014-01-29 Renlin Li <Renlin.Li@arm.com>
9596 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
9597 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
9598 (arm_file_start): Generate correct asm header for armv7ve.
9599 * config/arm/bpabi.h: Add multilib support for armv7ve.
9600 * config/arm/driver-arm.c: Change the architectures of cortex-a7
9601 and cortex-a15 to armv7ve.
9602 * config/arm/t-aprofile: Add multilib support for armv7ve.
9603 * doc/invoke.texi: Document -march=armv7ve.
9605 2014-01-29 Richard Biener <rguenther@suse.de>
9607 PR tree-optimization/58742
9608 * tree-ssa-forwprop.c (associate_plusminus): Return true
9609 if we changed sth, defer EH cleanup to ...
9610 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
9611 (simplify_mult): New function.
9613 2014-01-29 Jakub Jelinek <jakub@redhat.com>
9616 PR tree-optimization/59920
9617 * tree.c (build_common_builtin_nodes): Remove
9618 __builtin_setjmp_dispatcher initialization.
9619 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
9620 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
9621 instead of gsi_after_labels + manually skipping debug stmts.
9622 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
9623 ignore bbs with IFN_ABNORMAL_DISPATCHER.
9624 * tree-inline.c (copy_edges_for_bb): Remove
9625 can_make_abnormal_goto argument, instead add abnormal_goto_dest
9626 argument. Ignore computed_goto_p stmts. Don't call
9627 make_abnormal_goto_edges. If a call might need abnormal edges
9628 for non-local gotos, see if it already has an edge to
9629 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
9630 with true argument, don't do anything then, otherwise add
9631 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
9632 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
9634 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
9635 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
9636 (lower_stmt): Don't set data->calls_builtin_setjmp.
9637 (lower_builtin_setjmp): Adjust comment.
9638 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
9639 * tree-cfg.c (found_computed_goto): Remove.
9640 (factor_computed_gotos): Remove.
9641 (make_goto_expr_edges): Return bool, true for computed gotos.
9642 Don't call make_abnormal_goto_edges.
9643 (build_gimple_cfg): Don't set found_computed_goto, don't call
9644 factor_computed_gotos.
9645 (computed_goto_p): No longer static.
9646 (make_blocks): Don't set found_computed_goto.
9647 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
9648 (make_edges): If make_goto_expr_edges returns true, push bb
9649 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
9650 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
9651 vector. Record mapping between bbs and OpenMP regions if there
9652 are any, adjust make_gimple_omp_edges caller. Call
9653 handle_abnormal_edges.
9654 (make_abnormal_goto_edges): Remove.
9655 * tree-cfg.h (make_abnormal_goto_edges): Remove.
9656 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
9657 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
9658 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
9659 * internal-fn.def (ABNORMAL_DISPATCHER): New.
9660 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
9661 filling *region also set *region_idx to (*region)->entry->index.
9664 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
9665 For REGs set ORIGINAL_REGNO.
9667 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
9669 * doc/md.texi: Mention that a target shouldn't implement
9670 vec_widen_(s|u)mul_even/odd pair if it is less efficient
9673 2014-01-29 Jakub Jelinek <jakub@redhat.com>
9675 PR tree-optimization/59594
9676 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
9677 a copy of the datarefs vector rather than the vector itself.
9679 2014-01-28 Jason Merrill <jason@redhat.com>
9682 * dwarf2out.c (auto_die): New static.
9683 (gen_type_die_with_usage): Handle C++1y 'auto'.
9684 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
9687 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
9690 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
9691 (SPEC_X32): Likewise.
9692 (SPEC_64): Likewise.
9693 * config/i386/i386.c (ix86_option_override_internal): Turn off
9694 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
9696 (x86_file_start): Output .code16gcc for TARGET_16BIT.
9697 * config/i386/i386.h (TARGET_16BIT): New macro.
9698 (TARGET_16BIT_P): Likewise.
9699 * config/i386/i386.opt: Add m16.
9700 * doc/invoke.texi: Document -m16.
9702 2014-01-28 Jakub Jelinek <jakub@redhat.com>
9704 PR preprocessor/59935
9705 * input.c (location_get_source_line): Bail out on when line number
9706 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
9708 2014-01-28 Richard Biener <rguenther@suse.de>
9710 PR tree-optimization/58742
9711 * tree-ssa-forwprop.c (associate_plusminus): Handle
9712 pointer subtraction of the form (T)(P + A) - (T)P.
9714 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9716 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
9719 2014-01-28 Richard Biener <rguenther@suse.de>
9722 2014-01-28 Richard Biener <rguenther@suse.de>
9724 PR rtl-optimization/45364
9725 PR rtl-optimization/59890
9726 * var-tracking.c (local_get_addr_clear_given_value): Handle
9727 already cleared slot.
9728 (val_reset): Handle not allocated local_get_addr_cache.
9729 (vt_find_locations): Use post-order on the inverted CFG.
9731 2014-01-28 Richard Biener <rguenther@suse.de>
9733 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
9735 2014-01-28 Richard Biener <rguenther@suse.de>
9737 PR rtl-optimization/45364
9738 PR rtl-optimization/59890
9739 * var-tracking.c (local_get_addr_clear_given_value): Handle
9740 already cleared slot.
9741 (val_reset): Handle not allocated local_get_addr_cache.
9742 (vt_find_locations): Use post-order on the inverted CFG.
9744 2014-01-28 Alan Modra <amodra@gmail.com>
9746 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
9747 * configure.ac <recursive call for build != host>: Define
9748 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
9749 and LD_FOR_BUILD too.
9750 * configure: Regenerate.
9752 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
9754 * config/i386/i386.c (get_builtin_code_for_version): Separate
9755 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
9756 Broadwell from Haswell.
9758 2014-01-27 Steve Ellcey <sellcey@mips.com>
9760 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
9761 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
9762 * config/mips/mips.c (mips_option_override): Change setting
9764 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
9765 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
9766 Change from Mask to Var.
9768 2014-01-27 Jeff Law <law@redhat.com>
9770 * ipa-inline.c (inline_small_functions): Fix typo.
9772 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
9774 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
9775 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
9776 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
9777 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
9778 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
9779 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
9780 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
9781 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
9782 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
9783 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
9784 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
9785 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
9786 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
9787 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
9788 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
9789 (_mm512_storeu_epi64): Ditto.
9790 (_mm512_cmpge_epi32_mask): Ditto.
9791 (_mm512_cmpge_epu32_mask): Ditto.
9792 (_mm512_cmpge_epi64_mask): Ditto.
9793 (_mm512_cmpge_epu64_mask): Ditto.
9794 (_mm512_cmple_epi32_mask): Ditto.
9795 (_mm512_cmple_epu32_mask): Ditto.
9796 (_mm512_cmple_epi64_mask): Ditto.
9797 (_mm512_cmple_epu64_mask): Ditto.
9798 (_mm512_cmplt_epi32_mask): Ditto.
9799 (_mm512_cmplt_epu32_mask): Ditto.
9800 (_mm512_cmplt_epi64_mask): Ditto.
9801 (_mm512_cmplt_epu64_mask): Ditto.
9802 (_mm512_cmpneq_epi32_mask): Ditto.
9803 (_mm512_cmpneq_epu32_mask): Ditto.
9804 (_mm512_cmpneq_epi64_mask): Ditto.
9805 (_mm512_cmpneq_epu64_mask): Ditto.
9806 (_mm512_expand_pd): Ditto.
9807 (_mm512_expand_ps): Ditto.
9808 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
9809 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
9810 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
9811 * config/i386/i386.c (ix86_builtins): Add
9812 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
9813 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
9814 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
9815 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
9816 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
9817 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
9818 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
9819 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
9820 IX86_BUILTIN_PMOVUSQW512_MEM.
9821 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
9822 __builtin_ia32_pmovsqd512mem_mask,
9823 __builtin_ia32_pmovqd512mem_mask,
9824 __builtin_ia32_pmovusqw512mem_mask,
9825 __builtin_ia32_pmovsqw512mem_mask,
9826 __builtin_ia32_pmovqw512mem_mask,
9827 __builtin_ia32_pmovusdw512mem_mask,
9828 __builtin_ia32_pmovsdw512mem_mask,
9829 __builtin_ia32_pmovdw512mem_mask,
9830 __builtin_ia32_pmovqb512mem_mask,
9831 __builtin_ia32_pmovusqb512mem_mask,
9832 __builtin_ia32_pmovsqb512mem_mask,
9833 __builtin_ia32_pmovusdb512mem_mask,
9834 __builtin_ia32_pmovsdb512mem_mask,
9835 __builtin_ia32_pmovdb512mem_mask.
9836 (bdesc_args): Add __builtin_ia32_expanddf512,
9837 __builtin_ia32_expandsf512.
9838 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
9839 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
9840 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
9841 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
9842 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
9843 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
9844 (avx512f_<code>v8div16qi2_mask_store): This.
9845 (avx512f_expand<mode>): New.
9847 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
9849 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
9851 (_mm512_mask_prefetch_i64gather_pd): Ditto.
9852 (_mm512_prefetch_i32scatter_pd): Ditto.
9853 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
9854 (_mm512_prefetch_i64scatter_pd): Ditto.
9855 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
9856 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
9857 (_mm512_mask_prefetch_i64gather_ps): Ditto.
9858 (_mm512_prefetch_i32scatter_ps): Ditto.
9859 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
9860 (_mm512_prefetch_i64scatter_ps): Ditto.
9861 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
9862 * config/i386/i386-builtin-types.def: Define
9863 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
9864 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
9865 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
9866 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
9867 IX86_BUILTIN_SCATTERPFQPD.
9868 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
9869 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
9870 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
9871 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
9872 __builtin_ia32_scatterpfqps.
9873 (ix86_expand_builtin): Expand new built-ins.
9874 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
9875 fix memory access data type.
9876 (*avx512pf_gatherpf<mode>_mask): Ditto.
9877 (*avx512pf_gatherpf<mode>): Ditto.
9878 (avx512pf_scatterpf<mode>): Ditto.
9879 (*avx512pf_scatterpf<mode>_mask): Ditto.
9880 (*avx512pf_scatterpf<mode>): Ditto.
9881 (GATHER_SCATTER_SF_MEM_MODE): New.
9882 (avx512pf_gatherpf<mode>df): Ditto.
9883 (*avx512pf_gatherpf<mode>df_mask): Ditto.
9884 (*avx512pf_scatterpf<mode>df): Ditto.
9886 2014-01-27 Jakub Jelinek <jakub@redhat.com>
9889 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
9890 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
9893 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
9895 * common/config/arm/arm-common.c
9896 (arm_rewrite_mcpu): Handle multiple names.
9898 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
9900 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
9902 * gimple-builder.h (create_gimple_tmp): Delete.
9904 2014-01-27 Christian Bruel <christian.bruel@st.com>
9906 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
9909 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
9911 * config/pa/pa.md (call): Generate indirect long calls to non-local
9912 functions when outputing 32-bit code.
9913 (call_value): Likewise except for special call to buggy powf function.
9915 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
9916 portable runtime and PIC indirect calls.
9917 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
9918 and PIC call sequences. Use ldo instead of blr to set return register
9919 in PIC call sequence.
9921 2014-01-25 Walter Lee <walt@tilera.com>
9923 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
9924 avoid clobbering a live register.
9926 2014-01-25 Walter Lee <walt@tilera.com>
9928 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
9929 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
9930 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
9931 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
9933 2014-01-25 Walter Lee <walt@tilera.com>
9935 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
9936 arguments on even registers.
9937 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
9939 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
9940 (BIGGEST_ALIGNMENT): Ditto.
9941 (BIGGEST_FIELD_ALIGNMENT): Ditto.
9943 2014-01-25 Walter Lee <walt@tilera.com>
9945 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
9946 insns before bundling.
9947 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
9949 2014-01-25 Walter Lee <walt@tilera.com>
9951 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
9952 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
9953 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
9955 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
9957 * config/mips/constraints.md (kl): Delete.
9958 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
9959 define expands, using...
9960 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
9961 instructions for MIPS16.
9962 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
9963 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
9965 2014-01-25 Walter Lee <walt@tilera.com>
9967 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
9971 2014-01-25 Walter Lee <walt@tilera.com>
9973 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
9974 (TARGET_EXPAND_TO_RTL_HOOK): Define.
9976 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
9978 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
9981 2014-01-25 Jakub Jelinek <jakub@redhat.com>
9983 * print-rtl.c (in_call_function_usage): New var.
9984 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
9985 EXPR_LIST mode as mode and not as reg note name.
9988 * cfgloopmanip.c (copy_loop_info): If
9989 loop->warned_aggressive_loop_optimizations, make sure
9990 the flag is set in target loop too.
9992 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
9994 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
9996 * builtins.def: Likewise.
9997 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
9998 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
9999 * ira.c (ira_setup_eliminable_regset): Likewise.
10000 * omp-low.c (gate_expand_omp): Likewise.
10001 (execute_lower_omp): Likewise.
10002 (diagnose_sb_0): Likewise.
10003 (gate_diagnose_omp_blocks): Likewise.
10004 (simd_clone_clauses_extract): Likewise.
10007 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10009 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
10010 correction for little endian...
10011 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
10014 2014-01-24 Jeff Law <law@redhat.com>
10016 PR tree-optimization/59919
10017 * tree-vrp.c (find_assert_locations_1): Do not register asserts
10018 for non-returning calls.
10020 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
10022 * common/config/aarch64/aarch64-common.c
10023 (aarch64_rewrite_mcpu): Handle multiple names.
10024 * config/aarch64/aarch64.h
10025 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
10027 2014-01-24 Dodji Seketeli <dodji@redhat.com>
10029 * input.c (add_file_to_cache_tab): Handle the case where fopen
10032 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
10035 * config/i386/i386.md (pushsf splitter): Get stack adjustment
10036 from push operand if code of push isn't PRE_DEC.
10038 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
10041 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
10042 -mquad-memory-atomic. Update -mquad-memory documentation to say
10043 it is only used for non-atomic loads/stores.
10045 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
10046 -mquad-memory or -mquad-memory-atomic switches.
10048 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
10049 -mquad-memory-atomic to ISA 2.07 support.
10051 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
10052 to separate support of normal quad word memory operations (ldq, stq)
10053 from the atomic quad word memory operations.
10055 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
10056 support to separate non-atomic quad word operations from atomic
10057 quad word operations. Disable non-atomic quad word operations in
10058 little endian mode so that we don't have to swap words after the
10059 load and before the store.
10060 (quad_load_store_p): Add comment about atomic quad word support.
10061 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
10062 options printed with -mdebug=reg.
10064 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
10065 -mquad-memory-atomic as the test for whether we have quad word
10066 atomic instructions.
10067 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
10068 or -mp8-vector are used, allow byte/half-word atomic operations.
10070 * config/rs6000/sync.md (load_lockedti): Insure that the address
10071 is a proper indexed or indirect address for the lqarx instruction.
10072 On little endian systems, swap the hi/lo registers after the lqarx
10074 (load_lockedpti): Use indexed_or_indirect_operand predicate to
10075 insure the address is valid for the lqarx instruction.
10076 (store_conditionalti): Insure that the address is a proper indexed
10077 or indirect address for the stqcrx. instruction. On little endian
10078 systems, swap the hi/lo registers before doing the stqcrx.
10080 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
10081 insure the address is valid for the stqcrx. instruction.
10083 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
10084 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
10085 type of quad memory support is available.
10087 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
10089 PR regression/59915
10090 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
10091 there is a danger of looping.
10093 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
10095 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10096 force flag_ira_loop_pressure if set via command line.
10098 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
10100 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
10101 (ashr_simd): New builtin handling DI mode.
10102 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
10103 (aarch64_sshr_simddi): New match pattern.
10104 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
10105 (vshrd_n_s64): Likewise.
10106 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
10108 2014-01-23 Nick Clifton <nickc@redhat.com>
10110 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
10111 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
10112 favour of mcu specific scripts.
10113 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
10116 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
10117 Alex Velenko <Alex.Velenko@arm.com>
10119 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
10120 (vaddv_s16): Likewise.
10121 (vaddv_s32): Likewise.
10122 (vaddv_u8): Likewise.
10123 (vaddv_u16): Likewise.
10124 (vaddv_u32): Likewise.
10125 (vaddvq_s8): Likewise.
10126 (vaddvq_s16): Likewise.
10127 (vaddvq_s32): Likewise.
10128 (vaddvq_s64): Likewise.
10129 (vaddvq_u8): Likewise.
10130 (vaddvq_u16): Likewise.
10131 (vaddvq_u32): Likewise.
10132 (vaddvq_u64): Likewise.
10133 (vaddv_f32): Likewise.
10134 (vaddvq_f32): Likewise.
10135 (vaddvq_f64): Likewise.
10136 (vmaxv_f32): Likewise.
10137 (vmaxv_s8): Likewise.
10138 (vmaxv_s16): Likewise.
10139 (vmaxv_s32): Likewise.
10140 (vmaxv_u8): Likewise.
10141 (vmaxv_u16): Likewise.
10142 (vmaxv_u32): Likewise.
10143 (vmaxvq_f32): Likewise.
10144 (vmaxvq_f64): Likewise.
10145 (vmaxvq_s8): Likewise.
10146 (vmaxvq_s16): Likewise.
10147 (vmaxvq_s32): Likewise.
10148 (vmaxvq_u8): Likewise.
10149 (vmaxvq_u16): Likewise.
10150 (vmaxvq_u32): Likewise.
10151 (vmaxnmv_f32): Likewise.
10152 (vmaxnmvq_f32): Likewise.
10153 (vmaxnmvq_f64): Likewise.
10154 (vminv_f32): Likewise.
10155 (vminv_s8): Likewise.
10156 (vminv_s16): Likewise.
10157 (vminv_s32): Likewise.
10158 (vminv_u8): Likewise.
10159 (vminv_u16): Likewise.
10160 (vminv_u32): Likewise.
10161 (vminvq_f32): Likewise.
10162 (vminvq_f64): Likewise.
10163 (vminvq_s8): Likewise.
10164 (vminvq_s16): Likewise.
10165 (vminvq_s32): Likewise.
10166 (vminvq_u8): Likewise.
10167 (vminvq_u16): Likewise.
10168 (vminvq_u32): Likewise.
10169 (vminnmv_f32): Likewise.
10170 (vminnmvq_f32): Likewise.
10171 (vminnmvq_f64): Likewise.
10173 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
10175 * config/aarch64/aarch64-simd.md
10176 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
10177 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
10178 (*aarch64_mul3_elt<mode>): Likewise.
10179 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
10180 (*aarch64_mul3_elt_to_64v2df): Likewise.
10181 (*aarch64_mla_elt<mode>): Likewise.
10182 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
10183 (*aarch64_mls_elt<mode>): Likewise.
10184 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
10185 (*aarch64_fma4_elt<mode>): Likewise.
10186 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
10187 (*aarch64_fma4_elt_to_64v2df): Likewise.
10188 (*aarch64_fnma4_elt<mode>): Likewise.
10189 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
10190 (*aarch64_fnma4_elt_to_64v2df): Likewise.
10191 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
10192 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
10193 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
10194 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
10195 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
10196 (aarch64_sqdmull_lane<mode>_internal): Likewise.
10197 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
10199 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
10201 * config/aarch64/aarch64-simd.md
10202 (aarch64_be_checked_get_lane<mode>): New define_expand.
10203 * config/aarch64/aarch64-simd-builtins.def
10204 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
10205 New builtin definition.
10206 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
10207 Use new safe be builtin.
10209 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
10211 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
10213 (aarch64_be_st1<mode>): Likewise.
10214 (aarch_ld1<VALL:mode>): Define_expand modified.
10215 (aarch_st1<VALL:mode>): Likewise.
10216 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
10217 (UNSPEC_ST1): Likewise.
10219 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
10221 * config/microblaze/microblaze.md: Add trap insn and attribute
10223 2014-01-23 Dodji Seketeli <dodji@redhat.com>
10225 PR preprocessor/58580
10226 * input.h (location_get_source_line): Take an additional line_size
10228 (void diagnostics_file_cache_fini): Declare new function.
10229 * input.c (struct fcache): New type.
10230 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
10231 New static constants.
10232 (diagnostic_file_cache_init, total_lines_num)
10233 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
10234 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
10235 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
10236 (get_next_line, read_next_line, goto_next_line, read_line_num):
10237 New static function definitions.
10238 (diagnostic_file_cache_fini): New function.
10239 (location_get_source_line): Take an additional output line_len
10240 parameter. Re-write using lookup_or_add_file_to_cache_tab and
10242 * diagnostic.c (diagnostic_finish): Call
10243 diagnostic_file_cache_fini.
10244 (adjust_line): Take an additional input parameter for the length
10245 of the line, rather than calculating it with strlen.
10246 (diagnostic_show_locus): Adjust the use of
10247 location_get_source_line and adjust_line with respect to their new
10248 signature. While displaying a line now, do not stop at the first
10249 null byte. Rather, display the zero byte as a space and keep
10250 going until we reach the size of the line.
10251 * Makefile.in: Add vec.o to OBJS-libcommon
10253 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
10254 Ilya Tocar <ilya.tocar@intel.com>
10256 * config/i386/avx512fintrin.h (_mm512_kmov): New.
10257 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
10258 (__builtin_ia32_kmov16): Ditto.
10259 * config/i386/i386.md (UNSPEC_KMOV): New.
10262 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
10264 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
10265 (_mm512_storeu_si512): Ditto.
10267 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
10270 * rtl.h (get_referenced_operands): Declare.
10271 * recog.c (get_referenced_operands): New function.
10272 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
10273 operands have been referenced when recording LO_SUM references.
10275 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
10277 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
10279 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
10281 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
10282 Enable for generic and recent AMD targets.
10284 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
10286 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
10287 ARG_SIZE note when adjustment was eliminated.
10289 2014-01-22 Jeff Law <law@redhat.com>
10291 PR tree-optimization/59597
10292 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
10293 in file. Accept new argument REGISTERING and use it to modify
10294 dump output appropriately.
10295 (register_jump_thread): Corresponding changes.
10296 (mark_threaded_blocks): Reinstate code to cancel unprofitable
10297 thread paths involving joiner blocks. Add code to dump cancelled
10298 jump threading paths.
10300 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
10302 PR rtl-optimization/59477
10303 * lra-constraints.c (inherit_in_ebb): Process call for living hard
10304 regs. Update reloads_num and potential_reload_hard_regs for all insns.
10306 2014-01-22 Tom Tromey <tromey@redhat.com>
10308 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
10310 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
10312 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
10314 PR rtl-optimization/59896
10315 * lra-constraints.c (process_alt_operands): Check unused note for
10316 matched operands of insn with no output reloads.
10318 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
10320 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
10321 (mips_move_from_gpr_cost): Likewise.
10323 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
10325 PR rtl-optimization/59858
10326 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
10327 ira_class_hard_regs_num.
10328 (process_alt_operands): Increase reject for dying matched operand.
10330 2014-01-21 Jakub Jelinek <jakub@redhat.com>
10333 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
10334 smaller than size, perform several stores or loads and stores
10335 at dst + count - size to store or copy all of size bytes, rather
10336 than just last modesize bytes.
10338 2014-01-20 DJ Delorie <dj@redhat.com>
10340 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
10341 that CLOBBERs are REGs before propogating their values.
10343 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
10345 PR middle-end/59789
10346 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
10347 (cgraph_inline_failed_type): New function.
10348 * cgraph.h (DEFCIFCODE): Add type.
10349 (cgraph_inline_failed_type_t): New enum.
10350 (cgraph_inline_failed_type): New prototype.
10351 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
10352 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
10353 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
10354 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
10355 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
10356 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
10357 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
10358 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
10359 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
10360 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
10361 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
10362 OPTIMIZATION_MISMATCH.
10363 * tree-inline.c (expand_call_inline): Emit errors during
10364 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
10366 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
10369 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
10370 mode attribute in insn output.
10372 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
10374 * output.h (output_constant): Delete.
10375 * varasm.c (output_constant): Make private.
10377 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
10379 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
10381 2014-01-20 Jakub Jelinek <jakub@redhat.com>
10383 PR middle-end/59860
10384 * tree.h (fold_builtin_strcat): New prototype.
10385 * builtins.c (fold_builtin_strcat): No longer static. Add len
10386 argument, if non-NULL, don't call c_strlen. Optimize
10387 directly into __builtin_memcpy instead of __builtin_strcpy.
10388 (fold_builtin_2): Adjust fold_builtin_strcat caller.
10389 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
10391 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
10393 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
10394 for SImode_address_operand operands, having only a REG argument.
10396 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
10398 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
10399 loader name using mbig-endian.
10400 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
10402 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
10404 * doc/invoke.texi (-march): Clarify documentation for AArch64.
10405 (-mtune): Likewise.
10408 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
10410 * config/aarch64/aarch64-protos.h
10411 (aarch64_cannot_change_mode_class_ptr): Declare.
10412 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
10413 aarch64_cannot_change_mode_class_ptr): New.
10414 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
10415 backend hook aarch64_cannot_change_mode_class.
10417 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
10419 * common/config/aarch64/aarch64-common.c
10420 (aarch64_handle_option): Don't handle any option order logic here.
10421 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
10422 selected_cpu, warn on architecture version mismatch.
10423 (aarch64_override_options): Fix parsing order for option strings.
10425 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10426 Iain Sandoe <iain@codesourcery.com>
10429 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
10430 warning. Amend comment to reflect current functionality.
10432 2014-01-20 Richard Biener <rguenther@suse.de>
10434 PR middle-end/59860
10435 * builtins.c (fold_builtin_strcat): Remove case better handled
10436 by tree-ssa-strlen.c.
10438 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
10440 * config/aarch64/aarch64.opt
10441 (mcpu, march, mtune): Make case-insensitive.
10443 2014-01-20 Jakub Jelinek <jakub@redhat.com>
10446 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
10447 if operands[1] is a REG or ZERO_EXTEND of a REG.
10449 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
10451 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
10453 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
10455 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
10456 long non-pic millicode calls.
10458 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10460 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
10462 2014-01-19 Kito Cheng <kito@0xlab.org>
10464 * builtins.c (expand_movstr): Check movstr expand done or fail.
10466 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
10467 H.J. Lu <hongjiu.lu@intel.com>
10470 * config/i386/i386.md (*lea<mode>): Zero-extend return register
10471 to DImode for zero-extended addresses.
10473 2014-01-19 Jakub Jelinek <jakub@redhat.com>
10475 PR rtl-optimization/57763
10476 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
10477 on the new indirect jump_insn and increment LABEL_NUSES (label).
10479 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
10483 * config.gcc (x86_archs): New variable.
10484 (x86_64_archs): Likewise.
10485 (x86_cpus): Likewise.
10486 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
10487 --with-arch/--with-cpu= options.
10488 Support --with-arch=/--with-cpu={nehalem,westmere,
10489 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
10491 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
10493 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
10494 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
10496 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
10498 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
10500 2014-01-18 Jakub Jelinek <jakub@redhat.com>
10503 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
10504 clear cpp_get_options (parse_in)->warn_unused_macros for
10505 ix86_target_macros_internal with cpp_define.
10507 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
10509 * jump.c (delete_related_insns): Keep (use (insn))s.
10510 * reorg.c (redundant_insn): Check for barriers too.
10512 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
10514 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
10516 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
10518 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
10519 call to $$dyncall when TARGET_LONG_CALLS is true.
10521 2014-01-17 Jeff Law <law@redhat.com>
10523 * ree.c (combine_set_extension): Temporarily disable test for
10524 changing number of hard registers.
10526 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
10528 PR middle-end/58125
10529 * ipa-inline-analysis.c (inline_free_summary):
10530 Do not free summary of aliases.
10532 2014-01-17 Jakub Jelinek <jakub@redhat.com>
10534 PR middle-end/59706
10535 * gimplify.c (gimplify_expr): Use create_tmp_var
10536 instead of create_tmp_var_raw. If cond doesn't have
10537 integral type, don't add the IFN_ANNOTATE builtin at all.
10539 2014-01-17 Martin Jambor <mjambor@suse.cz>
10542 * ipa-cp.c (prev_edge_clone): New variable.
10543 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
10544 Also resize prev_edge_clone vector.
10545 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
10546 (ipcp_edge_removal_hook): New function.
10547 (ipcp_driver): Register ipcp_edge_removal_hook.
10549 2014-01-17 Andrew Pinski <apinski@cavium.com>
10550 Steve Ellcey <sellcey@mips.com>
10553 * config/mips/mips.c (mips_print_operand): Check operand mode instead
10556 2014-01-17 Jeff Law <law@redhat.com>
10558 PR middle-end/57904
10559 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
10560 so that pass_ccp runs first.
10562 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
10564 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
10565 (ix86_adjust_cost): Use !TARGET_XXX.
10566 (do_reorder_for_imul): Likewise.
10567 (swap_top_of_ready_list): Likewise.
10568 (ix86_sched_reorder): Likewise.
10570 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
10572 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
10573 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
10574 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
10575 (intel_memset): New. Duplicate slm_memset.
10576 (intel_cost): New. Duplicate slm_cost.
10577 (m_INTEL): New macro.
10578 (processor_target_table): Add "intel".
10579 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
10580 with PROCESSOR_INTEL for "intel".
10581 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
10582 PROCESSOR_SILVERMONT.
10583 (ix86_issue_rate): Likewise.
10584 (ix86_adjust_cost): Likewise.
10585 (ia32_multipass_dfa_lookahead): Likewise.
10586 (swap_top_of_ready_list): Likewise.
10587 (ix86_sched_reorder): Likewise.
10588 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
10589 instead of TARGET_OPT_AGU.
10590 * config/i386/i386.h (TARGET_INTEL): New.
10591 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
10592 (processor_type): Add PROCESSOR_INTEL.
10593 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
10594 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
10596 2014-01-17 Marek Polacek <polacek@redhat.com>
10599 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
10602 2014-01-17 Richard Biener <rguenther@suse.de>
10604 PR tree-optimization/46590
10605 * opts.c (default_options_table): Add entries for
10606 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
10607 all enabled at -O1 but not for -Og.
10608 * common.opt (fbranch-count-reg): Remove Init(1).
10609 (fmove-loop-invariants): Likewise.
10610 (ftree-pta): Likewise.
10612 2014-01-17 Jakub Jelinek <jakub@redhat.com>
10614 * config/i386/i386.c (ix86_data_alignment): For compatibility with
10615 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
10616 decls to at least the GCC 4.8 used alignments.
10619 * tree-nested.c (convert_nonlocal_reference_stmt,
10620 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
10621 of GIMPLE_BIND stmts, adjust associated decls.
10623 2014-01-17 Richard Biener <rguenther@suse.de>
10625 PR tree-optimization/46590
10626 * vec.h (vec<>::bseach): New member function implementing
10627 binary search according to C89 bsearch.
10628 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
10629 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
10630 bitmap pointer again. Make accesses_in_loop a flat array.
10631 (mem_ref_obstack): New global.
10632 (outermost_indep_loop): Adjust for mem_ref->stored changes.
10633 (mark_ref_stored): Likewise.
10634 (ref_indep_loop_p_2): Likewise.
10635 (set_ref_stored_in_loop): New helper function.
10636 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
10637 (memref_free): Adjust.
10638 (record_mem_ref_loc): Simplify.
10639 (gather_mem_refs_stmt): Adjust.
10640 (sort_locs_in_loop_postorder_cmp): New function.
10641 (analyze_memory_references): Sort accesses_in_loop after
10642 loop postorder number.
10643 (find_ref_loc_in_loop_cmp): New function.
10644 (for_all_locs_in_loop): Find relevant cluster of locs in
10645 accesses_in_loop and iterate without recursion.
10646 (execute_sm): Avoid uninit warning.
10647 (struct ref_always_accessed): Simplify.
10648 (ref_always_accessed::operator ()): Likewise.
10649 (ref_always_accessed_p): Likewise.
10650 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
10651 loop postorder numbers here.
10652 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
10655 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
10658 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
10659 on decls for which assemble_alias has been called.
10661 2014-01-17 Nick Clifton <nickc@redhat.com>
10663 * config/msp430/msp430.opt: (mcpu): New option.
10664 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
10665 (msp430_option_override): Parse target_cpu. If the MCU name
10666 matches a generic string, clear target_mcu.
10667 (msp430_attr): Allow numeric interrupt values up to 63.
10668 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
10669 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
10671 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
10673 * config/msp430/msp430.md (popm): Use %J rather than %I.
10674 (addsi3): Use msp430_nonimmediate_operand for operand 2.
10675 (addhi_cy_i): Use immediate_operand for operand 2.
10676 * doc/invoke.texi: Document -mcpu option.
10678 2014-01-17 Richard Biener <rguenther@suse.de>
10680 PR rtl-optimization/38518
10681 * df.h (df_analyze_loop): Declare.
10682 * df-core.c: Include cfgloop.h.
10683 (df_analyze_1): Split out main part of df_analyze.
10684 (df_analyze): Adjust.
10685 (loop_inverted_post_order_compute): New function.
10686 (loop_post_order_compute): Likewise.
10687 (df_analyze_loop): New function avoiding whole-function
10688 postorder computes.
10689 * loop-invariant.c (find_defs): Use df_analyze_loop.
10690 (find_invariants): Adjust.
10691 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
10693 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
10695 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
10696 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
10698 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
10700 * ipa-ref.c (ipa_remove_stmt_references): Fix references
10701 traversal when removing references.
10703 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
10706 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
10708 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
10710 PR middle-end/56791
10711 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
10712 pushing a reload for an autoinc when we had previously reloaded an
10713 inner part of the address.
10715 2014-01-16 Jakub Jelinek <jakub@redhat.com>
10717 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
10719 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
10720 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
10721 when not giving up or versioning for alias only because of
10723 (vect_analyze_data_ref_dependences): Set to true.
10724 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
10726 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
10727 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
10730 PR middle-end/58344
10731 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
10734 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
10735 operand 0 predicate for gathers, use a new pseudo as subtarget.
10737 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
10739 PR middle-end/59609
10740 * lra-constraints.c (process_alt_operands): Add printing debug info.
10741 Check absence of input/output reloads for matched operands too.
10743 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
10745 PR rtl-optimization/59835
10746 * ira.c (ira_init_register_move_cost): Increase cost for
10749 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
10751 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
10753 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
10756 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
10757 non-register objects. Use gen_(high/low)part more consistently.
10760 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
10763 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
10764 endian support, remove tests for WORDS_BIG_ENDIAN.
10765 (p8_mfvsrd_3_<mode>): Likewise.
10766 (reload_gpr_from_vsx<mode>): Likewise.
10767 (reload_gpr_from_vsxsf): Likewise.
10768 (p8_mfvsrd_4_disf): Likewise.
10770 2014-01-16 Richard Biener <rguenther@suse.de>
10772 PR rtl-optimization/46590
10773 * lcm.c (compute_antinout_edge): Use postorder iteration.
10774 (compute_laterin): Use inverted postorder iteration.
10776 2014-01-16 Nick Clifton <nickc@redhat.com>
10778 PR middle-end/28865
10779 * varasm.c (output_constant): Return the number of bytes actually
10781 (output_constructor_array_range): Update the field size with the
10782 number of bytes emitted by output_constant.
10783 (output_constructor_regular_field): Likewise. Also do not
10784 complain if the total number of bytes emitted is now greater
10785 than the expected fieldpos.
10786 * output.h (output_constant): Update prototype and descriptive comment.
10788 2014-01-16 Marek Polacek <polacek@redhat.com>
10790 PR middle-end/59827
10791 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
10792 it is error_mark_node.
10794 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
10796 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
10797 VALID_AVX256_REG_OR_OI_MODE.
10799 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
10801 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
10802 current procedure should be profiled.
10804 2014-01-15 Andrew Pinski <apinski@cavium.com>
10806 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
10807 of moving from/to the STACK_REG register class.
10809 2014-01-15 Richard Henderson <rth@redhat.com>
10812 * reginfo.c (global_regs_decl): Globalize.
10813 * rtl.h (global_regs_decl): Declare.
10814 * ira.c (do_reload): Diagnose frame_pointer_needed and it
10815 reserved via global_regs.
10817 2014-01-15 Teresa Johnson <tejohnson@google.com>
10819 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
10821 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10823 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
10824 and vmulosh rather than call gen_vec_widen_smult_*.
10825 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
10826 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
10827 (vec_widen_smult_even_v16qi): Likewise.
10828 (vec_widen_umult_even_v8hi): Likewise.
10829 (vec_widen_smult_even_v8hi): Likewise.
10830 (vec_widen_umult_odd_v16qi): Likewise.
10831 (vec_widen_smult_odd_v16qi): Likewise.
10832 (vec_widen_umult_odd_v8hi): Likewise.
10833 (vec_widen_smult_odd_v8hi): Likewise.
10834 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
10835 vmuloub rather than call gen_vec_widen_umult_*.
10836 (vec_widen_umult_lo_v16qi): Likewise.
10837 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
10838 vmulosb rather than call gen_vec_widen_smult_*.
10839 (vec_widen_smult_lo_v16qi): Likewise.
10840 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
10841 rather than call gen_vec_widen_umult_*.
10842 (vec_widen_umult_lo_v8hi): Likewise.
10843 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
10844 rather than call gen_vec_widen_smult_*.
10845 (vec_widen_smult_lo_v8hi): Likewise.
10847 2014-01-15 Jeff Law <law@redhat.com>
10849 PR tree-optimization/59747
10850 * ree.c (find_and_remove_re): Properly handle case where a second
10851 eliminated extension requires widening a copy created for elimination
10852 of a prior extension.
10853 (combine_set_extension): Ensure that the number of hard regs needed
10854 for a destination register does not change when we widen it.
10856 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
10858 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
10859 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
10860 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
10861 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
10862 (avr-*-rtems*): Likewise.
10863 (bfin*-rtems*): Likewise.
10864 (moxie-*-rtems*): Likewise.
10865 (h8300-*-rtems*): Likewise.
10866 (i[34567]86-*-rtems*): Likewise.
10867 (lm32-*-rtems*): Likewise.
10868 (m32r-*-rtems*): Likewise.
10869 (m68k-*-rtems*): Likewise.
10870 (microblaze*-*-rtems*): Likewise.
10871 (mips*-*-rtems*): Likewise.
10872 (powerpc-*-rtems*): Likewise.
10873 (sh-*-rtems*): Likewise.
10874 (sparc-*-rtems*): Likewise.
10875 (sparc64-*-rtems*): Likewise.
10876 (v850-*-rtems*): Likewise.
10877 (m32c-*-rtems*): Likewise.
10879 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
10881 PR rtl-optimization/59511
10882 * ira.c (ira_init_register_move_cost): Use memory costs for some
10883 cases of register move cost calculations.
10884 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
10885 instead of BB frequency.
10886 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
10887 * lra-assigns.c (find_hard_regno_for): Ditto.
10889 2014-01-15 Richard Biener <rguenther@suse.de>
10891 PR tree-optimization/59822
10892 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
10893 (vectorizable_load): Use it to hoist defs of uses of invariant
10894 loads out of the loop.
10896 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
10897 Kugan Vivekanandarajah <kuganv@linaro.org>
10900 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
10903 2014-01-15 Richard Biener <rguenther@suse.de>
10905 PR rtl-optimization/59802
10906 * lcm.c (compute_available): Use inverted postorder to seed
10907 the initial worklist.
10909 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10912 * config/s390/s390.c (s390_preferred_reload_class): Don't return
10913 ADDR_REGS for invalid symrefs in non-PIC code.
10915 2014-01-15 Jakub Jelinek <jakub@redhat.com>
10918 * builtins.c (determine_block_size): Initialize *probable_max_size
10919 even if len_rtx is CONST_INT.
10921 2014-01-14 Andrew Pinski <apinski@cavium.com>
10923 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
10924 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
10925 (cortexa53_tunings): Likewise.
10926 (aarch64_sched_issue_rate): New function.
10927 (TARGET_SCHED_ISSUE_RATE): Define.
10929 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
10931 * ira-costs.c (find_costs_and_classes): Add missed
10932 ira_init_register_move_cost_if_necessary.
10934 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
10937 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
10939 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
10942 * config/i386/i386.c (type_natural_mode): Add a bool parameter
10943 to indicate if type is used for function return value. Warn ABI
10944 change if the vector mode isn't available for function return value.
10945 (ix86_function_arg_advance): Pass false to type_natural_mode.
10946 (ix86_function_arg): Likewise.
10947 (ix86_gimplify_va_arg): Likewise.
10948 (function_arg_32): Don't warn ABI change.
10949 (ix86_function_value): Pass true to type_natural_mode.
10950 (ix86_return_in_memory): Likewise.
10951 (ix86_struct_value_rtx): Removed.
10952 (TARGET_STRUCT_VALUE_RTX): Likewise.
10954 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
10956 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
10957 converting a conditional jump into a conditional return.
10959 2014-01-14 Richard Biener <rguenther@suse.de>
10961 PR tree-optimization/58921
10962 PR tree-optimization/59006
10963 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
10964 hoisting invariant stmts.
10965 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
10966 invariant loads on the preheader edge if possible.
10968 2014-01-14 Joey Ye <joey.ye@arm.com>
10970 * doc/plugin.texi (Building GCC plugins): Update to C++.
10972 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
10974 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
10975 (_mm_rcp28_round_ss): Ditto.
10976 (_mm_rsqrt28_round_sd): Ditto.
10977 (_mm_rsqrt28_round_ss): Ditto.
10978 (_mm_rcp28_sd): Ditto.
10979 (_mm_rcp28_ss): Ditto.
10980 (_mm_rsqrt28_sd): Ditto.
10981 (_mm_rsqrt28_ss): Ditto.
10982 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
10983 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
10984 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
10985 (IX86_BUILTIN_RCP28SD): Ditto.
10986 (IX86_BUILTIN_RCP28SS): Ditto.
10987 (IX86_BUILTIN_RSQRT28SD): Ditto.
10988 (IX86_BUILTIN_RSQRT28SS): Ditto.
10989 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
10990 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
10991 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
10992 (ix86_expand_special_args_builtin): Expand new FTYPE.
10993 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
10994 (srcp14<mode>): Make insn unary.
10995 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
10996 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
10997 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
10998 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
10999 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
11000 Fix rounding: make it SAE only.
11001 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
11003 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
11005 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
11006 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
11007 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
11008 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
11009 (round_saeonly_mask_scalar_operand4): Ditto.
11010 (round_saeonly_mask_scalar_op3): Ditto.
11011 (round_saeonly_mask_scalar_op4): Ditto.
11013 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11015 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11016 Implement -maltivec=be for vec_insert and vec_extract.
11018 2014-01-10 DJ Delorie <dj@redhat.com>
11020 * config/msp430/msp430.md (call_internal): Don't allow memory
11021 references with SP as the base register.
11022 (call_value_internal): Likewise.
11023 * config/msp430/constraints.md (Yc): New. For memory references
11024 that don't use SP as a base register.
11026 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
11027 "an integer without a # prefix"
11028 * config/msp430/msp430.md (epilogue_helper): Use it.
11030 2014-01-13 Jakub Jelinek <jakub@redhat.com>
11033 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
11034 AVX512F gather builtins.
11035 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
11036 on gather decls with INTEGER_TYPE masktype.
11037 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
11038 directly into the builtin rather than hoisting it before loop.
11040 PR tree-optimization/59387
11041 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
11042 (scev_const_prop): If folded_casts and type has undefined overflow,
11043 use force_gimple_operand instead of force_gimple_operand_gsi and
11044 for each added stmt if it is assign with
11045 arith_code_with_undefined_signed_overflow, call
11046 rewrite_to_defined_overflow.
11047 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
11048 gimple-fold.h instead.
11049 (arith_code_with_undefined_signed_overflow,
11050 rewrite_to_defined_overflow): Moved to ...
11051 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
11052 rewrite_to_defined_overflow): ... here. No longer static.
11053 Include gimplify-me.h.
11054 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
11055 rewrite_to_defined_overflow): New prototypes.
11057 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11059 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
11061 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
11063 * builtins.c (get_object_alignment_2): Minor tweak.
11064 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
11066 2014-01-13 Christian Bruel <christian.bruel@st.com>
11068 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
11069 optimized non constant lengths.
11071 2014-01-13 Jakub Jelinek <jakub@redhat.com>
11074 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
11075 load as __atomic_load_N if possible.
11077 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
11079 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
11081 (rs6000_expand_builtin): Adjust call.
11083 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
11086 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
11087 * config/rs6000/rs6000.c: Include target-globals.h.
11088 (rs6000_set_current_function): Instead of doing target_reinit
11089 unconditionally, use save_target_globals_default_opts and
11090 restore_target_globals.
11092 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
11094 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
11095 (rs6000_expand_builtin): Handle mffs and mtfsf.
11096 (rs6000_init_builtins): Define mffs and mtfsf.
11097 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
11098 (rs6000_mffs): New pattern.
11099 (rs6000_mtfsf): New pattern.
11101 2014-01-11 Bin Cheng <bin.cheng@arm.com>
11103 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
11104 Start narrowing with START. Apply candidate-use pair
11105 and check overall cost in narrowing.
11106 (iv_ca_prune): Pass new argument.
11108 2014-01-10 Jeff Law <law@redhat.com>
11110 PR middle-end/59743
11111 * ree.c (combine_reaching_defs): Ensure the defining statement
11112 occurs before the extension when optimizing extensions with
11113 different source and destination hard registers.
11115 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
11118 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
11119 vtables into the type inheritance graph.
11121 2014-01-10 Jakub Jelinek <jakub@redhat.com>
11123 PR rtl-optimization/59754
11124 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
11125 modes in the REGNO != REGNO case.
11127 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11129 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
11131 2014-01-10 Jakub Jelinek <jakub@redhat.com>
11133 PR tree-optimization/59745
11134 * tree-predcom.c (tree_predictive_commoning_loop): Call
11135 free_affine_expand_cache if giving up because components is NULL.
11137 * target-globals.c (save_target_globals): Allocate < 4KB structs using
11138 GC in payload of target_globals struct instead of allocating them on
11139 the heap and the larger structs separately using GC.
11140 * target-globals.h (struct target_globals): Make regs, hard_regs,
11141 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
11142 of GTY((skip)) and change type to void *.
11143 (reset_target_globals): Cast loads from those fields to corresponding
11146 2014-01-10 Steve Ellcey <sellcey@mips.com>
11149 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
11150 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
11151 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
11153 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
11156 * aarch64-modes.def (CC_Zmode): New flags mode.
11157 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
11158 represents an equality.
11159 (aarch64_get_condition_code): Handle CC_Zmode.
11160 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
11162 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11164 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
11165 extraction in good case.
11167 2014-01-10 Richard Biener <rguenther@suse.de>
11169 PR tree-optimization/59374
11170 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
11171 checking after SLP discovery. Mark stmts not participating
11172 in any SLP instance properly.
11174 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11176 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
11177 when handling a SET rtx.
11179 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11181 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
11182 (cortex-a57): Likewise.
11183 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
11185 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11187 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
11188 non-iwmmxt builtins.
11190 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
11194 * ipa-devirt.c record_target_from_binfo): Take as argument
11195 stack of binfos and lookup matching one for virtual inheritance.
11196 (possible_polymorphic_call_targets_1): Update.
11198 2014-01-10 Huacai Chen <chenhc@lemote.com>
11200 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
11201 kernel strings for Loongson-2E/2F/3A.
11203 2014-01-10 Jakub Jelinek <jakub@redhat.com>
11205 PR middle-end/59670
11206 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
11207 is_gimple_call before calling gimple_call_internal_p.
11209 2014-01-09 Steve Ellcey <sellcey@mips.com>
11211 * Makefile.in (TREE_FLOW_H): Remove.
11212 (TREE_SSA_H): Add file names from tree-flow.h.
11213 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
11214 * tree.h: Remove tree-flow.h reference.
11215 * hash-table.h: Remove tree-flow.h reference.
11216 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
11217 reference with tree-ssa-loop.h.
11219 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11221 * doc/invoke.texi: Add -maltivec={be,le} options, and document
11222 default element-order behavior for -maltivec.
11223 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
11224 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
11225 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
11226 when targeting big endian, at least for now.
11227 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
11229 2014-01-09 Jakub Jelinek <jakub@redhat.com>
11231 PR middle-end/47735
11232 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
11233 var satisfies use_register_for_decl, just take into account type
11234 alignment, rather than decl alignment.
11236 PR tree-optimization/59622
11237 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
11238 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
11239 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
11240 Don't devirtualize for inplace at all. For targets.length () == 1,
11241 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
11243 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
11245 * config/i386/i386.md (cpu): Remove the unused btver1.
11247 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
11249 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
11251 2014-01-09 Jakub Jelinek <jakub@redhat.com>
11254 * tree-core.h (struct target_globals): New forward declaration.
11255 (struct tree_target_option): Add globals field.
11256 * tree.h (TREE_TARGET_GLOBALS): Define.
11257 (prepare_target_option_nodes_for_pch): New prototype.
11258 * target-globals.h (struct target_globals): Define even if
11259 !SWITCHABLE_TARGET.
11260 * tree.c (prepare_target_option_node_for_pch,
11261 prepare_target_option_nodes_for_pch): New functions.
11262 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
11263 * config/i386/i386.c: Include target-globals.h.
11264 (ix86_set_current_function): Instead of doing target_reinit
11265 unconditionally, use save_target_globals_default_opts and
11266 restore_target_globals.
11268 2014-01-09 Richard Biener <rguenther@suse.de>
11270 PR tree-optimization/59715
11271 * tree-cfg.h (split_critical_edges): Declare.
11272 * tree-cfg.c (split_critical_edges): Export.
11273 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
11275 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
11277 * cfgexpand.c (expand_stack_vars): Optionally disable
11278 asan stack protection.
11279 (expand_used_vars): Likewise.
11280 (partition_stack_vars): Likewise.
11281 * asan.c (asan_emit_stack_protection): Optionally disable
11282 after return stack usage.
11283 (instrument_derefs): Optionally disable memory access instrumentation.
11284 (instrument_builtin_call): Likewise.
11285 (instrument_strlen_call): Likewise.
11286 (asan_protect_global): Optionally disable global variables protection.
11287 * doc/invoke.texi: Added doc for new options.
11288 * params.def: Added new options.
11289 * params.h: Likewise.
11291 2014-01-09 Jakub Jelinek <jakub@redhat.com>
11293 PR rtl-optimization/59724
11294 * ifcvt.c (cond_exec_process_if_block): Don't call
11295 flow_find_head_matching_sequence with 0 longest_match.
11296 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
11297 non-active insns if !stop_after.
11298 (try_head_merge_bb): Revert 2014-01-07 changes.
11300 2014-01-08 Jeff Law <law@redhat.com>
11302 * ree.c (get_sub_rtx): New function, extracted from...
11303 (merge_def_and_ext): Here.
11304 (combine_reaching_defs): Use get_sub_rtx.
11306 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
11308 * cgraph.h (varpool_variable_node): Do not choke on null node.
11310 2014-01-08 Catherine Moore <clm@codesourcery.com>
11312 * config/mips/mips.md (simple_return): Attempt to use JRC
11314 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
11316 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
11318 PR rtl-optimization/59137
11319 * reorg.c (steal_delay_list_from_target): Call update_block for
11321 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
11323 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11325 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
11326 two duplicate entries.
11328 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
11331 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
11333 * config/mips/mips.c (mips_truncated_op_cost): New function.
11334 (mips_rtx_costs): Adjust test for BADDU.
11335 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
11337 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
11339 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
11340 (*baddu_si): ...this new pattern.
11342 2014-01-08 Jakub Jelinek <jakub@redhat.com>
11345 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
11347 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
11349 PR middle-end/57748
11350 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
11352 (expand_expr, expand_normal): Adjust.
11353 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
11354 inner_reference_p. Use inner_reference_p to expand inner references.
11355 (store_expr): Adjust.
11356 * cfgexpand.c (expand_call_stmt): Adjust.
11358 2014-01-08 Rong Xu <xur@google.com>
11360 * gcov-io.c (gcov_var): Move from gcov-io.h.
11361 (gcov_position): Ditto.
11362 (gcov_is_error): Ditto.
11363 (gcov_rewrite): Ditto.
11364 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
11365 only part to libgcc/libgcov.h.
11367 2014-01-08 Marek Polacek <polacek@redhat.com>
11369 PR middle-end/59669
11370 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
11372 2014-01-08 Marek Polacek <polacek@redhat.com>
11375 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
11377 2014-01-08 Jakub Jelinek <jakub@redhat.com>
11379 PR rtl-optimization/59649
11380 * stor-layout.c (get_mode_bounds): For BImode return
11381 0 and STORE_FLAG_VALUE.
11383 2014-01-08 Richard Biener <rguenther@suse.de>
11385 PR middle-end/59630
11386 * gimple.h (is_gimple_builtin_call): Remove.
11387 (gimple_builtin_call_types_compatible_p): New.
11388 (gimple_call_builtin_p): New overload.
11389 * gimple.c (is_gimple_builtin_call): Remove.
11390 (validate_call): Rename to ...
11391 (gimple_builtin_call_types_compatible_p): ... this and export. Also
11392 check return types.
11393 (validate_type): New static function.
11394 (gimple_call_builtin_p): New overload and adjust.
11395 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
11396 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
11397 (gimple_fold_stmt_to_constant_1): Likewise.
11398 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
11400 2014-01-08 Richard Biener <rguenther@suse.de>
11402 PR middle-end/59471
11403 * gimplify.c (gimplify_expr): Gimplify register-register type
11404 VIEW_CONVERT_EXPRs to separate stmts.
11406 2014-01-07 Jeff Law <law@redhat.com>
11408 PR middle-end/53623
11409 * ree.c (combine_set_extension): Handle case where source
11410 and destination registers in an extension insn are different.
11411 (combine_reaching_defs): Allow source and destination registers
11412 in extension to be different under limited circumstances.
11413 (add_removable_extension): Remove restriction that the
11414 source and destination registers in the extension are the same.
11415 (find_and_remove_re): Emit a copy from the extension's
11416 destination to its source after the defining insn if
11417 the source and destination registers are different.
11419 PR middle-end/59285
11420 * ifcvt.c (merge_if_block): If we are merging a block with more than
11421 one successor with a block with no successors, remove any BARRIER
11422 after the second block.
11424 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
11426 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
11428 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
11431 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
11432 for 14-bit register offsets when INT14_OK_STRICT is false.
11434 2014-01-07 Roland Stigge <stigge@antcom.de>
11435 Michael Meissner <meissner@linux.vnet.ibm.com>
11438 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11439 Only check TFmode for SPE constants. Don't check TImode or TDmode.
11441 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
11443 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
11446 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
11448 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
11449 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
11450 rtx is const0_rtx or not.
11452 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
11455 * target-globals.c (save_target_globals): Remove this_fn_optab
11457 * toplev.c: Include optabs.h.
11458 (target_reinit): Temporarily restore the global options if another
11459 set of options are in force.
11461 2014-01-07 Jakub Jelinek <jakub@redhat.com>
11463 PR rtl-optimization/58668
11464 * cfgcleanup.c (flow_find_cross_jump): Don't count
11465 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
11466 to determine what is counted.
11467 (flow_find_head_matching_sequence): Use active_insn_p to determine
11469 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
11471 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
11472 determine what is counted.
11474 PR tree-optimization/59643
11475 * tree-predcom.c (split_data_refs_to_components): If one dr is
11476 read and one write, determine_offset fails and the write isn't
11477 in the bad component, just put the read into the bad component.
11479 2014-01-07 Mike Stump <mikestump@comcast.net>
11480 Jakub Jelinek <jakub@redhat.com>
11483 * tree-core.h (struct tree_optimization_option): Change optabs
11484 type from unsigned char * to void *.
11485 * optabs.c (init_tree_optimization_optabs): Adjust
11486 TREE_OPTIMIZATION_OPTABS initialization.
11488 2014-01-06 Jakub Jelinek <jakub@redhat.com>
11491 * config/i386/i386.h (struct machine_function): Add
11492 no_drap_save_restore field.
11493 * config/i386/i386.c (ix86_save_reg): Use
11494 !cfun->machine->no_drap_save_restore instead of
11495 crtl->stack_realign_needed.
11496 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
11497 this function clears frame_pointer_needed. Set
11498 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
11499 and DRAP reg is needed.
11501 2014-01-06 Marek Polacek <polacek@redhat.com>
11504 * doc/implement-c.texi: Mention that other integer types are
11505 permitted as bit-field types in strictly conforming mode.
11507 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
11509 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
11510 is newly allocated.
11512 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
11514 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
11516 2014-01-06 Martin Jambor <mjambor@suse.cz>
11519 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
11521 * ipa-prop.c (ipa_print_node_params): Fix indentation.
11523 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
11527 * var-tracking.c (add_stores): Preserve the value of the source even if
11528 we don't record the store.
11530 2014-01-06 Terry Guo <terry.guo@arm.com>
11532 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
11534 2014-01-05 Iain Sandoe <iain@codesourcery.com>
11537 * config/darwin.c (darwin_function_section): Adjust return values to
11538 correspond to optimisation changes made in r206070.
11540 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
11542 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
11543 from prefetch_block tune setting.
11544 (nocona_cost): Correct size of prefetch block to 64.
11546 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
11548 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
11549 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
11550 used to save the static chain register in the computation of the offset
11551 from which the FP registers need to be restored.
11553 2014-01-04 Jakub Jelinek <jakub@redhat.com>
11555 PR tree-optimization/59519
11556 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
11557 ICE if get_current_def (current_new_name) is already non-NULL, as long
11558 as it is a phi result of some other phi in *new_exit_bb that has
11561 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
11562 or vmovdqu* for misaligned_operand.
11563 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
11564 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
11565 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
11566 aligned_mem for AVX512F masked aligned load and store builtins and for
11567 non-temporal moves.
11569 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
11571 PR tree-optimization/59651
11572 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
11573 Address range for negative step should be added by TYPE_SIZE_UNIT.
11575 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
11577 * config/m68k/m68k.c (handle_move_double): Handle pushes with
11578 overlapping registers also for registers other than the stack pointer.
11580 2014-01-03 Marek Polacek <polacek@redhat.com>
11583 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
11586 2014-01-03 Jakub Jelinek <jakub@redhat.com>
11589 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
11592 * config/i386/i386.md (MODE_SIZE): New mode attribute.
11593 (push splitter): Use <P:MODE_SIZE> instead of
11594 GET_MODE_SIZE (<P:MODE>mode).
11595 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
11596 (mov -1, reg peephole2): Likewise.
11597 * config/i386/sse.md (*mov<mode>_internal,
11598 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
11599 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
11600 *<code><mode>3, *andnot<mode>3<mask_name>,
11601 <mask_codefor><code><mode>3<mask_name>): Likewise.
11602 * config/i386/subst.md (mask_mode512bit_condition,
11603 sd_mask_mode512bit_condition): Likewise.
11605 2014-01-02 Xinliang David Li <davidxl@google.com>
11607 PR tree-optimization/59303
11608 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
11609 (dump_predicates): Better output format.
11610 (pred_equal_p): New function.
11611 (is_neq_relop_p): Ditto.
11612 (is_neq_zero_form_p): Ditto.
11613 (pred_expr_equal_p): Ditto.
11614 (pred_neg_p): Ditto.
11615 (simplify_pred): Ditto.
11616 (simplify_preds_2): Ditto.
11617 (simplify_preds_3): Ditto.
11618 (simplify_preds_4): Ditto.
11619 (simplify_preds): Ditto.
11620 (push_pred): Ditto.
11621 (push_to_worklist): Ditto.
11622 (get_pred_info_from_cmp): Ditto.
11623 (is_degenerated_phi): Ditto.
11624 (normalize_one_pred_1): Ditto.
11625 (normalize_one_pred): Ditto.
11626 (normalize_one_pred_chain): Ditto.
11627 (normalize_preds): Ditto.
11628 (normalize_cond_1): Remove function.
11629 (normalize_cond): Ditto.
11630 (is_gcond_subset_of): Ditto.
11631 (is_subset_of_any): Ditto.
11632 (is_or_set_subset_of): Ditto.
11633 (is_and_set_subset_of): Ditto.
11634 (is_norm_cond_subset_of): Ditto.
11635 (pred_chain_length_cmp): Ditto.
11636 (convert_control_dep_chain_into_preds): Type change.
11637 (find_predicates): Ditto.
11638 (find_def_preds): Ditto.
11639 (destroy_predicates_vecs): Ditto.
11640 (find_matching_predicates_in_rest_chains): Ditto.
11641 (use_pred_not_overlap_with_undef_path_pred): Ditto.
11642 (is_pred_expr_subset): Ditto.
11643 (is_pred_chain_subset_of): Ditto.
11644 (is_included_in): Ditto.
11645 (is_superset_of): Ditto.
11647 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
11649 Update copyright years.
11651 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
11653 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
11654 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
11655 config/arc/arc.md, config/arc/arc.opt,
11656 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
11657 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
11658 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
11659 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
11660 config/linux-protos.h, config/linux.c, config/winnt-c.c,
11661 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
11662 vtable-verify.c, vtable-verify.h: Use the standard form for the
11665 2014-01-02 Tobias Burnus <burnus@net-b.de>
11667 * gcc.c (process_command): Update copyright notice dates.
11668 * gcov-dump.c: Ditto.
11670 * doc/cpp.texi: Bump @copying's copyright year.
11671 * doc/cppinternals.texi: Ditto.
11672 * doc/gcc.texi: Ditto.
11673 * doc/gccint.texi: Ditto.
11674 * doc/gcov.texi: Ditto.
11675 * doc/install.texi: Ditto.
11676 * doc/invoke.texi: Ditto.
11678 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11680 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
11682 2014-01-01 Jakub Jelinek <jakub@redhat.com>
11684 * config/i386/sse.md (*mov<mode>_internal): Guard
11685 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
11687 PR rtl-optimization/59647
11688 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
11689 new_rtx into UNSIGNED_FLOAT rtxes.
11691 Copyright (C) 2014 Free Software Foundation, Inc.
11693 Copying and distribution of this file, with or without modification,
11694 are permitted in any medium without royalty provided the copyright
11695 notice and this notice are preserved.