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