Mark ChangeLog
[official-gcc.git] / gcc / ChangeLog
blob4b427e55cd51257f8a293056957bad2d7bb69603
1 2014-12-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3         Backport from trunk.
4         PR fortran/61407
5         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
6         and above.
7         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
8         kernel version check to avoid incrementing it after every major OS X
9         release.
10         (darwin_default_min_version): Avoid static memory buffer.
12 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
14         PR sanitizer/64265
15         * tsan.c (instrument_func_entry): Insert __tsan_func_entry
16         call on edge from entry block to single succ instead
17         of after labels of single succ of entry block.
19 2014-12-13  Jakub Jelinek  <jakub@redhat.com>
21         Backported from mainline
22         2014-12-12  Jakub Jelinek  <jakub@redhat.com>
24         PR tree-optimization/64269
25         * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
26         len2 or diff are too large.
28 2014-12-11  Eric Botcazou  <ebotcazou@adacore.com>
30         * doc/md.texi (Insn Lengths): Fix description of (pc).
32 2014-12-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34         Backport from mainline
35         2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
37         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
38         built-in definition.
39         (XVCVUXDDP_SCALE): Likewise.
40         (XVCVDPSXDS_SCALE): Likewise.
41         (XVCVDPUXDS_SCALE): Likewise.
42         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
43         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
44         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
45         VSX_BUILTIN_XVCVDPUXDS_SCALE.
46         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
47         prototype.
48         * config/rs6000/rs6000.c (real.h): New include.
49         (rs6000_scale_v2df): New function.
50         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
51         (UNSPEC_VSX_XVCVUXDDP): Likewise.
52         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
53         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
54         (vsx_xvcvsxddp_scale): New define_expand.
55         (vsx_xvcvsxddp): New define_insn.
56         (vsx_xvcvuxddp_scale): New define_expand.
57         (vsx_xvcvuxddp): New define_insn.
58         (vsx_xvcvdpsxds_scale): New define_expand.
59         (vsx_xvcvdpsxds): New define_insn.
60         (vsx_xvcvdpuxds_scale): New define_expand.
61         (vsx_xvcvdpuxds): New define_insn.
62         * doc/extend.texi (vec_ctf): Add new prototypes.
63         (vec_cts): Likewise.
64         (vec_ctu): Likewise.
65         (vec_splat): Likewise.
66         (vec_div): Likewise.
67         (vec_mul): Likewise.
69         Backport from mainline
70         2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
72         * config/rs6000/altivec.h (vec_xl): New #define.
73         (vec_xst): Likewise.
74         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
75         (XXSPLTD_V2DI): Likewise.
76         (DIV_V2DI): Likewise.
77         (UDIV_V2DI): Likewise.
78         (MUL_V2DI): Likewise.
79         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
80         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
81         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
82         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
83         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
84         (UNSPEC_VSX_DIVSD): Likewise.
85         (UNSPEC_VSX_DIVUD): Likewise.
86         (UNSPEC_VSX_MULSD): Likewise.
87         (vsx_mul_v2di): New insn-and-split.
88         (vsx_div_v2di): Likewise.
89         (vsx_udiv_v2di): Likewise.
90         (vsx_xxspltd_<mode>): New insn.
92         Backport from mainline
93         2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
95         * config/rs6000/altivec.h (vec_cpsgn): New #define.
96         (vec_mergee): Likewise.
97         (vec_mergeo): Likewise.
98         (vec_cntlz): Likewise.
99         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
100         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
101         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
102         VMRGEW, and VMRGOW.
103         * doc/extend.texi: Document various forms of vec_cpsgn,
104         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
105         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
106         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
107         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
108         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
110         Backport from mainline
111         2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
113         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
114         (altivec_vsldoi_<mode>): Likewise.
116 2014-12-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
118         Backport from mainline:
119         2014-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
121         PR middle-end/64225
122         * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
123         for BUILT_IN_POW when flag_errno_math is present.
125 2014-12-10  Marek Polacek  <polacek@redhat.com>
127         Backport from mainline
128         2014-12-10  Marek Polacek  <polacek@redhat.com>
130         PR tree-optimization/61686
131         * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
132         p->high.
134 2014-12-09  David Edelsohn  <dje.gcc@gmail.com>
136         Backport from mainline
137         2014-12-05  David Edelsohn  <dje.gcc@gmail.com>
139         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
140         alignment to section name. Increase default alignment to
141         word.
143 2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
145         PR bootstrap/64213
146         Revert:
147         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
149         PR rtl-optimization/64037
150         * combine.c (setup_incoming_promotions): Pass the argument
151         before any promotions happen to promote_function_mode.
153 2014-12-08  Richard Biener  <rguenther@suse.de>
155         Backport from 4.9 branch
156         * configure.ac
157         (ac_has_isl_schedule_constraints_compute_schedule):
158         New check.
159         * graphite-clast-to-gimple.c: For ISL 0.14, include deprecate headers.
160         * graphite-interchange.c: Ditto.
161         * graphite-poly.c: Ditto.
162         * graphite-sese-to-poly.c: Ditto.
163         * graphite-optimize-isl.c (getScheduleForBandList): Ditto.
164         Conditionally use ISL 0.13+ functions.
165         * config.in: Regenerate.
166         * configure: Regenerate.
168 2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
170         Backport from mainline
171         2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
173         PR target/50751
174         * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
176 2014-12-05  H.J. Lu  <hongjiu.lu@intel.com>
178         Backport from mainline
179         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
181         PR rtl-optimization/64037
182         * combine.c (setup_incoming_promotions): Pass the argument
183         before any promotions happen to promote_function_mode.
185 2014-12-04  Shanyao Chen  <chenshanyao@huawei.com>
187         Backport from mainline
188         2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
190         PR target/59593
191         * config/arm/arm.md (*movhi_insn): Use right formatting
192         for immediate.
194         2014-11-19  Felix Yang  <felix.yang@huawei.com>
195                     Shanyao Chen  <chenshanyao@huawei.com>
197         PR target/59593
198         * config/arm/arm.md (define_attr "arch"): Add v6t2.
199         (define_attr "arch_enabled"): Add test for the above.
200         (*movhi_insn_arch4): Add new alternative.
202 2014-12-04  Jakub Jelinek  <jakub@redhat.com>
204         PR c++/56493
205         * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
206         Handle COMPOUND_EXPR.
208 2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
210         PR target/64115
211         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
212         invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
214 2014-12-01  Richard Biener  <rguenther@suse.de>
216         PR middle-end/64111
217         * tree.c (int_cst_hash_hash): Use TYPE_UID instead of
218         htab_hash_pointer to not break PCH.
220 2014-11-28  Jakub Jelinek  <jakub@redhat.com>
222         Backported from mainline
223         2014-11-27  Jakub Jelinek  <jakub@redhat.com>
225         PR middle-end/64067
226         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
227         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
228         not only if modifier is EXPAND_INITIALIZER, but whenever
229         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
231         2014-10-31  Jakub Jelinek  <jakub@redhat.com>
233         PR rtl-optimization/63659
234         * ree.c (update_reg_equal_equiv_notes): New function.
235         (combine_set_extension, transform_ifelse): Use it.
237         2014-10-03  Jakub Jelinek  <jakub@redhat.com>
239         PR libgomp/61200
240         * omp-low.c (taskreg_contexts): New variable.
241         (scan_omp_parallel): Push newly created context into taskreg_contexts
242         vector and move record layout code to finish_taskreg_scan.
243         (scan_omp_task): Likewise.
244         (finish_taskreg_scan): New function.
245         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
246         vector elements and release it.
248 2014-11-26  Richard Biener  <rguenther@suse.de>
250         Backport from mainline
251         2014-10-08  Richard Biener  <rguenther@suse.de>
253         PR tree-optimization/61969
254         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
255         variables.
257         2014-08-15  Richard Biener  <rguenther@suse.de>
259         PR tree-optimization/62031
260         * tree-data-ref.c (dr_analyze_indices): Do not set
261         DR_UNCONSTRAINED_BASE.
262         (dr_may_alias_p): All indirect accesses have to go the
263         formerly DR_UNCONSTRAINED_BASE path.
264         * tree-data-ref.h (struct indices): Remove
265         unconstrained_base member.
266         (DR_UNCONSTRAINED_BASE): Remove.
268         2014-10-10  Richard Biener  <rguenther@suse.de>
270         PR tree-optimization/63379
271         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
272         a neutral operand for min/max when it is not a reduction chain.
274         2014-11-07  Richard Biener  <rguenther@suse.de>
276         PR tree-optimization/63605
277         * fold-const.c (fold_binary_loc): Properly use element_precision
278         for types that may not be scalar.
280         2014-10-28  Richard Biener  <rguenther@suse.de>
282         PR middle-end/63665
283         * fold-const.c (fold_comparison): Properly guard simplifying
284         against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
286 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
288         Backport from mainline
289         2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
291         PR target/60111
292         * config/sh/sh.c: Use signed char for signed field.
294 2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
296         PR target/63673
297         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
298         the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
299         double.
301 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
303         PR target/63947
304         * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
305         Output "b" and "nb" suffix for FP mode.
307 2014-11-19  Tom de Vries  <tom@codesourcery.com>
309         Backport from mainline
310         PR tree-optimization/62167
311         * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
312         conservatively.
313         (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
314         assigns.
316 2014-11-18  Teresa Johnson  <tejohnson@google.com>
318         Backport from mainline and gcc-4_9 branch.
319         2014-11-13  Teresa Johnson  <tejohnson@google.com>
321         PR tree-optimization/63841
322         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
324 2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>
326         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
327         * doc/tm.texi: Regenerate.
329         Backport from mainline
330         2013-09-16  Andreas Schwab  <schwab@linux-m68k.org>
332         * doc/tm.texi.in (Cond Exec Macros): Remove node.
333         (Condition Code): Don't reference it.
334         * doc/tm.texi: Regenerate.
336 2014-11-13  Christophe Lyon  <christophe.lyon@linaro.org>
338         Backport from mainline
339         2014-11-02  Michael Collison  <michael.collison@linaro.org>
341         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
342         to support vector modes.
343         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
345 2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>
347         * doc/tm.texi.in (SELECT_CC_MODE): Update example.
348         (REVERSIBLE_CC_MODE): Fix example.
349         (REVERSE_CONDITION): Fix typo.
350         * doc/tm.texi: Regenerate.
352 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
354         PR ipa/63838
355         * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
356         chain instead of node->indirect_calls.
358 2014-11-10  Daniel Hellstrom  <daniel@gaisler.com>
360         Backport from mainline
361         * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
362         * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
364 2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>
366         * config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
367         * doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
368         * config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
369         leon3v7 as leon3.
370         * config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
371         * config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
372         * config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
373         * config/sparc/sparc.md (cpu): Add leon3v7.
374         * config/sparc/sparc.opt (enum processor_type): Add leon3v7.
376 2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
378         * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
379         Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
380         or in_call_delay.
381         
382 2014-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
384         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
385         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
386         * config/aarch64/aarch64-linux.h
387         (CA53_ERR_835769_SPEC): Define.
388         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
390 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
392         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
393         recog state after aarch64_prev_real_insn call.
395 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
397         * config.gcc (aarch64*-*-*): Define TARGET_FIX_ERR_A53_835769_DEFAULT
398         if asked.
399         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
400         * configure: Regenerate.
401         * config/aarch64/aarch64.c (aarch64_override_options): Handle
402         TARGET_FIX_ERR_A53_835769_DEFAULT.
403         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init value
404         to 2.
405         * doc/install.texi: Document --enable-fix-cortex-a53-835769 option.
407 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
409         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
410         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Define.
411         (FINAL_PRESCAN_INSN): Likewise.
412         * config/aarch64/aarch64.h (is_mem_p): New function.
413         (has_memory_op): Likewise.
414         (aarch64_prev_real_insn): Likewise.
415         (is_madd_op): Likewise.
416         (dep_between_memop_and_curr): Likewise.
417         (aarch64_madd_needs_nop): Likewise.
418         (aarch64_final_prescan_insn): Likewise.
419         * doc/invoke.texi (Document new option).
421 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
423         * stor-layout.c (self_referential_size): Do not promote arguments.
425 2014-10-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
427         Backport from mainline r215880
428         2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
430         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
431         Issue a warning message when vec_lvsl or vec_lvsr is used with a
432         little endian target.
434         Backport from mainline r215882
435         2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
437         * altivec.md (altivec_lvsl): New define_expand.
438         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
439         (altivec_lvsr): New define_expand.
440         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
441         * rs6000.c (rs6000_expand_builtin): Change to use
442         altivec_lvs[lr]_direct; remove commented-out code.
444 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
446         Backport from mainline
447         2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
449         PR rtl-optimization/57003
450         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
451         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
452         killing regs_invalidated_by_call.
454 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
456         Backport from mainline
457         2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
459         PR target/52941
460         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
461         atomic_fetch_<fetchop_name>si_hard,
462         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
463         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
464         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
465         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
467 2014-10-02  Martin Jambor  <mjambor@suse.cz>
469         PR tree-optimization/63375
470         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
471         references.
473 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
475         PR debug/63342
476         * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and
477         SSA_NAME.
479         PR target/63428
480         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
481         argument to avx2_permv2ti.
483 2014-10-01  Uros Bizjak  <ubizjak@gmail.com>
485         Backport from mainline
486         2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
488         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
489         (fmod<mode>3): Ditto.
490         (fpremxf4_i387): Ditto.
491         (reminderxf3): Ditto.
492         (reminder<mode>3): Ditto.
493         (fprem1xf4_i387): Ditto.
495 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
497         PR inline-asm/63282
498         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
499         or invert_jump_1 if jump isn't any_condjump_p.
501 2014-09-29  Charles Baylis  <charles.baylis@linaro.org>
503         Backport from mainline r212303
504         PR target/49423
505         * config/arm/arm-protos.h (arm_legitimate_address_p,
506         arm_is_constant_pool_ref): Add prototypes.
507         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
508         (arm_is_constant_pool_ref) New function.
509         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
510         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
511         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
512         operand and remove pool_range and neg_pool_range attributes.
513         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
514         pool_range and neg_pool_range attributes.
515         * config/arm/constraints.md (Uh): New constraint. (Uq): Don't allow
516         constant pool references.
518 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
520         * config/pa/pa.c (pa_output_function_epilogue): Only update
521         last_address when a nonnote insn is found.
523 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
525         Backport from mainline
526         2014-09-25  Nick Clifton  <nickc@redhat.com>
527         2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
529         PR target/62218
530         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask,
531         atomic_test_and_set_soft_imask): Fix typo in instruction sequence.
533 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
535         Backport from mainline r215559
536         2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
538         PR target/63335
539         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
540         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
542 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
544         PR tree-optimization/63341
545         * tree-vectorizer.h (vect_create_data_ref_ptr,
546         vect_create_addr_base_for_vector_ref): Add another tree argument
547         defaulting to NULL_TREE.
548         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
549         argument, pass it down to vect_create_addr_base_for_vector_ref.
550         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
551         add that to base_offset too if non-NULL.
552         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
553         for dr_explicit_realign_optimized set it to vector byte size
554         - 1 instead of setting offset, pass byte_offset down to
555         vect_create_data_ref_ptr.
557 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
559         Back port from trunk:
560         2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
562         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
563         refine the constraints used on 32/64-bit floating point moves.
564         (f32_av): Likewise.
565         (f64_vsx): Likewise.
566         (f64_dm): Likewise.
567         (f64_av): Likewise.
568         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
569         (BOOL_REGS_OP1): Likewise.
570         (BOOL_REGS_OP2): Likewise.
571         (BOOL_REGS_UNARY): Likewise.
572         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
573         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
574         for moves involving VSX registers.  Do not use constraints that
575         target VSX registers for decimal types.
576         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
577         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
579 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
581         Back port from trunk:
582         2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
584         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
585         for base_reg_operand to be common between LO_SUM and PLUS.
586         (fusion_gpr_mem_combo): New predicate to match a fused address
587         that combines the addis and memory offset address.
589         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
590         calling signature.
591         (emit_fusion_gpr_load): Likewise.
593         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
594         signature to pass each argument separately, rather than
595         using an operands array.  Rewrite the insns found by peephole2 to
596         be a single insn, rather than hoping the insns will still be
597         together when the peephole pass is done.  Drop being called via a
598         normal peephole.
599         (emit_fusion_gpr_load): Change calling signature to be called from
600         the fusion_gpr_load_<mode> insns with a combined memory address
601         instead of the peephole pass passing the addis and offset
602         separately.
604         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
605         fusion.
606         (power8 fusion peephole): Drop support for doing power8 via a
607         normal peephole that was created by the peephole2 pass.
608         (power8 fusion peephole2): Create a new insn with the fused
609         address, so that the fused operation is kept together after
610         register allocation is done.
611         (fusion_gpr_load_<mode>): Likewise.
613 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
615         PR debug/63284
616         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
617         if there are only debug stmts after the noreturn call, instead
618         remove the debug stmts.
620 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
622         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
623         V2DF, V4SF, DF, and DI modes.
624         (vsx_fmav2df2): Likewise.
625         (vsx_float_fix_<mode>2): Likewise.
626         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
628 2014-09-10  Alan Modra  <amodra@gmail.com>
630         PR debug/60655
631         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
632         can't be output.
634 2014-09-09  Richard Biener  <rguenther@suse.de>
636         Backport from mainline
637         2014-06-11  Richard Biener  <rguenther@suse.de>
639         PR tree-optimization/61452
640         * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
641         expr and has_constants in case we found a leader.
642         (simplify_binary_expression): Always valueize operands first.
643         (simplify_unary_expression): Likewise.
645 2014-09-09  Richard Biener  <rguenther@suse.de>
647         Backport from mainline
648         2014-05-05  Richard Biener  <rguenther@suse.de>
650         PR middle-end/61010
651         * fold-const.c (fold_binary_loc): Consistently avoid
652         canonicalizing X & CST away from a CST that is the mask
653         of a mode.
655         2014-05-28  Richard Biener  <rguenther@suse.de>
657         PR middle-end/61045
658         * fold-const.c (fold_comparison): When folding
659         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
660         the sign of the remaining constant operand stays the same.
662         2014-08-11  Richard Biener  <rguenther@suse.de>
664         PR tree-optimization/62075
665         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
666         handle uses in patterns.
668 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
670         Backport from mainline.
671         2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
673         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
674         (-mtune): Likewise.
675         (-mcpu): Likewise.
677 2014-09-08  Jakub Jelinek  <jakub@redhat.com>
679         PR tree-optimization/60196
680         PR tree-optimization/63189
681         Backported from mainline
682         2013-09-17  Cong Hou  <congh@google.com>
684         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
685         when checking the dot production pattern. The type of rhs operand
686         of multiply is now checked correctly.
688 2014-09-08  Jakub Jelinek  <jakub@redhat.com>
690         Backported from mainline
691         2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
693         PR debug/61923
694         * haifa-sched.c (advance_one_cycle): Fix dump.
695         (schedule_block): Don't advance cycle if we are already at the
696         beginning of the cycle.
698 2014-09-03  Martin Jambor  <mjambor@suse.cz>
700         PR ipa/62015
701         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
702         pass-trough jump functions correctly.
704 2014-09-03  Martin Jambor  <mjambor@suse.cz>
706         PR ipa/61986
707         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
708         created replacements in ascending order of offsets.
709         (known_aggs_to_agg_replacement_list): Likewise.
711 2014-09-01  Marek Polacek  <polacek@redhat.com>
713         Backport from mainline
714         2014-08-21  Marek Polacek  <polacek@redhat.com>
716         PR c/61271
717         * expr.c (is_aligning_offset): Remove logical not.
719 2014-09-01  Marek Polacek  <polacek@redhat.com>
721         Backport from mainline
722         2014-08-19  Marek Polacek  <polacek@redhat.com>
724         PR c/61271
725         * cgraphunit.c (handle_alias_pairs): Fix condition.
727 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
729         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
730         prefix to function labels when generating fast indirect calls.
732 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
734         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
736 2014-08-26  Marek Polacek  <polacek@redhat.com>
738         Backport from mainline
739         2014-08-26  Marek Polacek  <polacek@redhat.com>
741         PR c/61271
742         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
743         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
745 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
747         Backport from mainline
748         2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
750         PR target/61996
751         * config/sh/sh.opt (musermode): Allow negative form.
752         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
753         targets that don't support it.
754         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
755         Document -mno-usermode option.
757 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
759         PR target/62038
760         * config/pa/pa.c (pa_output_function_epilogue): Don't set
761         last_address when the current function is a thunk.
762         (pa_asm_output_mi_thunk): When we don't have named sections or they
763         are not being used, check that thunk can reach the stub table with a
764         short branch.
766 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
768         Backport fro mainline
769         2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
771         PR target/62195
772         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
773         documentation to state it is only for VSX operations.
775         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
776         constraint only active if VSX.
778         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
779         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
780         (lfiwzx): Likewise.
782 2014-08-15  Tom de Vries  <tom@codesourcery.com>
784         Backport from mainline:
785         2014-08-14  Tom de Vries  <tom@codesourcery.com>
787         PR rtl-optimization/62004
788         PR rtl-optimization/62030
789         * ifcvt.c (rtx_interchangeable_p): New function.
790         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
792         2014-08-05  Richard Biener  <rguenther@suse.de>
794         * emit-rtl.h (mem_attrs_eq_p): Declare.
795         * emit-rtl.c (mem_attrs_eq_p): Export.
797 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
799         Backport from trunk:
800         2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
802         PR debug/55794
803         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
804         size accounting for thunks.
805         (pa_asm_output_mi_thunk): Use final_start_function() and
806         final_end_function() to output function start and end directives.
808 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
810         Backport from mainline:
811         2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
813         * doc/invoke.texi (SH options): Document missing processor variant
814         options.  Remove references to Hitachi.  Undocument deprecated mspace
815         option.
817 2014-08-13  Felix Yang  <fei.yang0953@gmail.com>
819         PR tree-optimization/62073
820         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
821         a basic block.
823 2014-08-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
825         Backport from mainline
826         2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
828         PR middle-end/62103
829         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
830         bitfields, that is when size doesn't match the size of type or the
831         size of the constructor.
833 2014-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
835         Backport patch from mainline
836         2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
838         * config/rs6000/constraints.md (wh constraint): New constraint,
839         for FP registers if direct move is available.
840         (wi constraint): New constraint, for VSX/FP registers that can
841         handle 64-bit integers.
842         (wj constraint): New constraint for VSX/FP registers that can
843         handle 64-bit integers for direct moves.
844         (wk constraint): New constraint for VSX/FP registers that can
845         handle 64-bit doubles for direct moves.
846         (wy constraint): Make documentation match implementation.
848         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
849         scalar_in_vmx_p field to simplify tests of whether SFmode or
850         DFmode can go in the Altivec registers.
851         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
852         (rs6000_setup_reg_addr_masks): Likewise.
853         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
854         field, and wh/wi/wj/wk constraints.
855         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
856         the wh/wi/wj/wk constraints.
857         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
858         upper registers, prefer VSX registers unless the operation is a
859         memory operation with REG+OFFSET addressing.
861         * config/rs6000/vsx.md (VSr mode attribute): Add support for
862         DImode.  Change SFmode to use ww constraint instead of d to allow
863         SF registers in the upper registers.
864         (VSr2): Likewise.
865         (VSr3): Likewise.
866         (VSr5): Fix thinko in comment.
867         (VSa): New mode attribute that is an alternative to wa, that
868         returns the VSX register class that a mode can go in, but may not
869         be the preferred register class.
870         (VS_64dm): New mode attribute for appropriate register classes for
871         referencing 64-bit elements of vectors for direct moves and normal
872         moves.
873         (VS_64reg): Likewise.
874         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
875         register allocator to only registers the data type can handle.
876         (vsx_le_perm_load_<mode>): Likewise.
877         (vsx_le_perm_store_<mode>): Likewise.
878         (vsx_xxpermdi2_le_<mode>): Likewise.
879         (vsx_xxpermdi4_le_<mode>): Likewise.
880         (vsx_lxvd2x2_le_<mode>): Likewise.
881         (vsx_lxvd2x4_le_<mode>): Likewise.
882         (vsx_stxvd2x2_le_<mode>): Likewise.
883         (vsx_add<mode>3): Likewise.
884         (vsx_sub<mode>3): Likewise.
885         (vsx_mul<mode>3): Likewise.
886         (vsx_div<mode>3): Likewise.
887         (vsx_tdiv<mode>3_internal): Likewise.
888         (vsx_fre<mode>2): Likewise.
889         (vsx_neg<mode>2): Likewise.
890         (vsx_abs<mode>2): Likewise.
891         (vsx_nabs<mode>2): Likewise.
892         (vsx_smax<mode>3): Likewise.
893         (vsx_smin<mode>3): Likewise.
894         (vsx_sqrt<mode>2): Likewise.
895         (vsx_rsqrte<mode>2): Likewise.
896         (vsx_tsqrt<mode>2_internal): Likewise.
897         (vsx_fms<mode>4): Likewise.
898         (vsx_nfma<mode>4): Likewise.
899         (vsx_eq<mode>): Likewise.
900         (vsx_gt<mode>): Likewise.
901         (vsx_ge<mode>): Likewise.
902         (vsx_eq<mode>_p): Likewise.
903         (vsx_gt<mode>_p): Likewise.
904         (vsx_ge<mode>_p): Likewise.
905         (vsx_xxsel<mode>): Likewise.
906         (vsx_xxsel<mode>_uns): Likewise.
907         (vsx_copysign<mode>3): Likewise.
908         (vsx_float<VSi><mode>2): Likewise.
909         (vsx_floatuns<VSi><mode>2): Likewise.
910         (vsx_fix_trunc<mode><VSi>2): Likewise.
911         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
912         (vsx_x<VSv>r<VSs>i): Likewise.
913         (vsx_x<VSv>r<VSs>ic): Likewise.
914         (vsx_btrunc<mode>2): Likewise.
915         (vsx_b2trunc<mode>2): Likewise.
916         (vsx_floor<mode>2): Likewise.
917         (vsx_ceil<mode>2): Likewise.
918         (vsx_<VS_spdp_insn>): Likewise.
919         (vsx_xscvspdp): Likewise.
920         (vsx_xvcvspuxds): Likewise.
921         (vsx_float_fix_<mode>2): Likewise.
922         (vsx_set_<mode>): Likewise.
923         (vsx_extract_<mode>_internal1): Likewise.
924         (vsx_extract_<mode>_internal2): Likewise.
925         (vsx_extract_<mode>_load): Likewise.
926         (vsx_extract_<mode>_store): Likewise.
927         (vsx_splat_<mode>): Likewise.
928         (vsx_xxspltw_<mode>): Likewise.
929         (vsx_xxspltw_<mode>_direct): Likewise.
930         (vsx_xxmrghw_<mode>): Likewise.
931         (vsx_xxmrglw_<mode>): Likewise.
932         (vsx_xxsldwi_<mode>): Likewise.
933         (vsx_xscvdpspn): Tighten constraints to only use register classes
934         the types use.
935         (vsx_xscvspdpn): Likewise.
936         (vsx_xscvdpspn_scalar): Likewise.
938         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
939         wj, and wk constraints.
940         (GPR_REG_CLASS_P): New helper macro for register classes targeting
941         general purpose registers.
943         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
944         direct moves.
945         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
946         DImode instead of wm.  Use wk constraint for direct move of DFmode
947         instead of wm.
948         (extendsidi2_lfiwax): Likewise.
949         (lfiwax): Likewise.
950         (lfiwzx): Likewise.
951         (movdi_internal64): Likewise.
953         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
954         wk constraints. Make the wy constraint documentation match them
955         implementation.
957 2014-08-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
959         Backport from mainline
960         2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
962         PR tree-optimization/61375
963         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Cancel optimization if
964         symbolic number cannot be represented in an unsigned HOST_WIDE_INT.
965         (execute_optimize_bswap): Cancel optimization if CHAR_BIT != 8.
967 2014-08-01  Richard Biener  <rguenther@suse.de>
969         PR tree-optimization/61964
970         * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): New
971         function merged from trunk.
972         (gimple_equal_p): Handle non-SSA LHS solely by structural
973         equality.
975 2014-07-25  Uros Bizjak  <ubizjak@gmail.com>
977         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
979 2014-07-24  Kyle McMartin  <kyle@redhat.com>
981         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
983 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
985         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
986         Add prototype.
987         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
988         function.  Issue -Wpsabi warning if future GCC releases will use
989         different field alignment rules for this type.
990         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
991         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
992         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
994 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
996         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): Issue
997         -Wpsabi note when encountering a type where future GCC releases
998         will apply different alignment requirements.
1000 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1002         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
1003         does not fit fully into floating-point registers, and there is still
1004         space in the register parameter area, issue -Wpsabi note that the ABI
1005         will change in a future GCC release.
1007 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1009         * config/arm/t-rtems-eabi: Add
1010         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
1011         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
1012         mbig-endian/mthumb/march=armv7-r, and
1013         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
1014         multilibs.
1016 2014-07-21  Peter Bergner  <bergner@vnet.ibm.com>
1018         * config/rs6000/sysv4.h (LIBASAN_EARLY_SPEC): Define.
1019         (LIBTSAN_EARLY_SPEC): Likewise.
1020         (STATIC_LIBASAN_LIBS): Likewise.
1021         (STATIC_LIBTSAN_LIBS): Likewise.
1023 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
1025         * toplev.c (output_stack_usage): Adjust the location of the warning.
1027 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
1029         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
1030         (*membar_storeload): Disable for LEON3.
1032 2014-07-17  Richard Biener  <rguenther@suse.de>
1034         PR rtl-optimization/61801
1035         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and
1036         ASM_INPUT don't set reg_pending_barrier if it appears in a
1037         debug-insn.
1039 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
1041         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
1042         on the FUNCTION_DECL.
1044 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
1046         * doc/install.texi: Remove links to defunct package providers for
1047         Solaris.
1049 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
1051         PR middle-end/53590
1052         * function.c (allocate_struct_function): Revert r188667 change.
1054 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
1056         PR tree-optimization/61684
1057         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
1058         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
1060 2014-06-30  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1062         Backport from Mainline
1063         2014-06-20  Jakub Jelinek  <jakub@redhat.com>
1064         2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1066         PR tree-optimization/61306
1067         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
1068         expression instead of its size.
1069         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
1070         false to prevent optimization when the result is unpredictable due to
1071         arithmetic right shift of signed type with highest byte is set.
1072         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
1073         (find_bswap_1): Likewise. Return NULL to prevent optimization when the
1074         result is unpredictable due to sign extension.
1075         (find_bswap): Adapt to change in struct symbolic_number.
1077 2014-06-27  Uros Bizjak  <ubizjak@gmail.com>
1079         Backport from mainline
1080         2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
1082         PR target/61586
1083         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
1085 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1087         PR target/61542
1088         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
1089         extraction other than index 3.
1091 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
1093         PR target/61570
1094         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
1095         model family 6 CPU with has_longmode never use a CPU without
1096         64-bit support.
1098 2014-06-20  Chung-Lin Tang  <cltang@codesourcery.com>
1100         Backport from mainline
1102         2014-06-20  Julian Brown  <julian@codesourcery.com>
1103                     Chung-Lin Tang  <cltang@codesourcery.com>
1105         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
1106         TARGET_THUMB1_ONLY. Add comments.
1108 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
1110         Backport from mainline
1111         2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
1113         PR target/61423
1114         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
1115         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
1116         and corresponding splitters.  Zero extend general register
1117         or memory input operand to XMM temporary.  Enable for
1118         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
1119         (floatunssi<mode>2): Update expander predicate.
1121 2014-06-18  Richard Henderson  <rth@redhat.com>
1123         PR target/61545
1124         * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM.
1126 2014-06-17  Nagaraju Mekala <nagaraju.mekala@xilinx.com>
1128         Revert on gcc-4_8-branch.
1129         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
1130         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
1132 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
1134         Backport from mainline
1136         PR target/61483
1137         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
1138         variable 'size'; calculate 'size' right in the front; use
1139         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
1140         pcum->aapcs_stack_words.
1142 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
1144         Backport from mainline
1146         2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
1147         PR target/61415
1148         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
1149         (BU_MISC_2): Rename to ...
1150         (BU_LDBL128_2): ... this.
1151         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
1152         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
1153         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
1154         RS6000_BTM_LDBL128.
1155         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
1156         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
1157         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
1158         (unpacktf_1): Likewise.
1159         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
1160         (__builtin_longdouble_dw1): Likewise.
1161         * doc/sourcebuild.texi (longdouble128): Document.
1163 2014-06-13  Jason Merrill  <jason@redhat.com>
1165         PR c++/60731
1166         * common.opt (-fno-gnu-unique): Add.
1167         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
1169 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
1171         Backport from 2014-05-09 trunk r210272
1173         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
1174         unsigned int initializers for regno_in, regno_out.
1176         Backport from 2014-05-14 trunk r210418
1177         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
1178         shifted values to avoid build warning.
1180         Backport from 2014-06-12 trunk r211491
1182         PR target/61443
1183         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
1184         loading from address spaces.
1186 2014-06-12  Alan Modra  <amodra@gmail.com>
1188         PR target/61300
1189         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
1190         * doc/tm.texi: Regenerate.
1191         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
1192         Use throughout in place of REG_PARM_STACK_SPACE.
1193         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
1194         "incoming" param.  Pass to rs6000_function_parms_need_stack.
1195         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
1196         prototype_p when incoming.  Use function decl when incoming
1197         to handle K&R style functions.
1198         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
1199         (INCOMING_REG_PARM_STACK_SPACE): Define.
1201 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1203         Back port from trunk
1204         2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1206         PR target/61431
1207         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
1208         iterators, VSX_D that handles 64-bit types, and VSX_LE that
1209         handles swapping the two 64-bit double words on little endian
1210         systems.  Include V1TImode and optionally TImode in VSX_LE so that
1211         these types are properly swapped.  Change all of the insns and
1212         splits that do the 64-bit swaps to use VSX_LE.
1213         (vsx_le_perm_load_<mode>): Likewise.
1214         (vsx_le_perm_store_<mode>): Likewise.
1215         (splitters for little endian memory operations): Likewise.
1216         (vsx_xxpermdi2_le_<mode>): Likewise.
1217         (vsx_lxvd2x2_le_<mode>): Likewise.
1218         (vsx_stxvd2x2_le_<mode>): Likewise.
1220 2014-06-05  Martin Jambor  <mjambor@suse.cz>
1222         PR ipa/61393
1223         * ipa-cp.c (determine_versionability): Pretend that tm_clones are
1224         not versionable.
1226 2014-06-04  Richard Biener  <rguenther@suse.de>
1228         PR tree-optimization/61383
1229         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
1230         stmts can't trap.
1232 2014-06-03  Andrey Belevantsev  <abel@ispras.ru>
1234         Backport from mainline
1235         2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
1237         PR rtl-optimization/60866
1238         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
1239         Default it to -1.  Pass it down to init_simplejump_data.
1240         (init_simplejump_data): New parameter old_seqno.  Pass it down
1241         to get_seqno_for_a_jump.
1242         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
1243         initializing new jump seqno as a last resort.  Add comment.
1244         (sel_redirect_edge_and_branch): Save old seqno of the conditional
1245         jump and pass it down to sel_init_new_insn.
1246         (sel_redirect_edge_and_branch_force): Likewise.
1248 2014-06-03  Andrey Belevantsev  <abel@ispras.ru>
1250         Backport from mainline
1251         2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
1253         PR rtl-optimization/60901
1254         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
1255         bb predecessor belongs to the same scheduling region.  Adjust comment.
1257 2014-06-03  Uros Bizjak  <ubizjak@gmail.com>
1259         Backport from mainline
1260         2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
1262         PR target/61239
1263         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
1264         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
1266 2014-05-28  Guozhi Wei  <carrot@google.com>
1268         PR target/61202
1269         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
1270         constraint.
1271         (vqdmulhq_n_s16): Likewise.
1273 2014-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1275         Backport from mainline
1276         2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1278         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
1279         predicate to detect a negative quotient.
1281 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
1283         PR target/61044
1284         * doc/extend.texi (Local Labels): Note that label differences are
1285         not supported for AVR.
1287 2014-05-26  Michael Tautschnig  <mt@debian.org>
1289         PR target/61249
1290         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
1291         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
1293 2014-05-23  Alan Modra  <amodra@gmail.com>
1295         PR target/61231
1296         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
1297         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
1298         Use "Y" constraint rather than "m".
1300 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
1302         Backport from mainline
1303         2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
1305         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
1307 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
1309         PR target/61208
1310         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
1312 2013-05-22  Richard Biener  <rguenther@suse.de>
1314         * BASE-VER: Set to 4.8.4.
1315         * DEV-PHASE: Set to prerelease.
1317 2014-05-22  Release Manager
1319         * GCC 4.8.3 released.
1321 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
1323         Backport from mainline
1324         2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
1326         PR target/61193
1327         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
1328         (__TM_simple_begin): Use it.
1329         (__TM_begin): Likewise.
1331 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1333         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
1334         Delete.
1335         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
1336         * config/sparc/sparc.md (fptype_ut699): New attribute.
1337         (in_branch_delay): Return false if -mfix-ut699 is specified and
1338         fptype_ut699 is set to single.
1339         (truncdfsf2): Add fptype_ut699 attribute.
1340         (fix_truncdfsi2): Likewise.
1341         (floatsisf2): Change fptype attribute.
1342         (fix_truncsfsi2): Likewise.
1343         (negtf2_notv9): Delete.
1344         (negtf2_v9): Likewise.
1345         (negtf2_hq): New instruction.
1346         (negtf2): New instruction and splitter.
1347         (negdf2_notv9): Rewrite.
1348         (abstf2_notv9): Delete.
1349         (abstf2_hq_v9): Likewise.
1350         (abstf2_v9): Likewise.
1351         (abstf2_hq): New instruction.
1352         (abstf2): New instruction and splitter.
1353         (absdf2_notv9): Rewrite.
1355 2014-05-14  Matthias Klose  <doko@ubuntu.com>
1357         Revert:
1358         2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1359                     Matthias Klose  <doko@ubuntu.com>
1361         PR driver/61106
1362         * optc-gen.awk: Fix option handling for -Wunused-parameter.
1364 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
1366         * doc/sourcebuild.texi: (dfp_hw): Document.
1367         (p8vector_hw): Likewise.
1368         (powerpc_eabi_ok): Likewise.
1369         (powerpc_elfv2): Likewise.
1370         (powerpc_htm_ok): Likewise.
1371         (ppc_recip_hw): Likewise.
1372         (vsx_hw): Likewise.
1374 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1376         Backport from mainline
1377         2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1379         PR target/60991
1380         * config/avr/avr.c (avr_out_store_psi): Use correct constant
1381         to restore Y.
1383 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
1385         Backport from 2014-05-09 trunk r210267
1387         PR target/61055
1388         * config/avr/avr.md (cc): Add new attribute set_vzn.
1389         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
1390         Set cc insn attribute to set_vzn instead of set_zn for alternatives
1391         with INC, DEC or NEG.
1392         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
1393         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
1394         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
1396 2014-05-09  Richard Sandiford  <rdsandiford@googlemail.com>
1398         * builtins.c (expand_builtin_setjmp_receiver): Emit a use of
1399         the hard frame pointer.  Synchronize commentary with mainline.
1400         * cse.c (cse_insn): Only check for volatile asms.
1401         * cselib.c (cselib_process_insn): Likewise.
1402         * dse.c (scan_insn): Likewise.
1403         * stmt.c (expand_nl_goto_receiver): Emit a use and a clobber of
1404         the hard frame pointer.
1406 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1407             Matthias Klose  <doko@ubuntu.com>
1409         PR driver/61106
1410         * optc-gen.awk: Fix option handling for -Wunused-parameter.
1412 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
1414         PR target/59952
1415         * config/i386/i386.c (ix86_option_override_internal): Remove PTA_RTM
1416         from core-avx2.
1418 2014-05-08  Charles Baylis  <charles.baylis@linaro.org>
1420         Backport from mainline
1421         2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
1423         PR target/60609
1424         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
1425         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
1426         ADDR_DIFF_VEC.
1428 2014-05-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1430         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
1431         Do not define target_cpu_default2 to generic.
1433 2014-05-06  Richard Biener  <rguenther@suse.de>
1435         Backport from mainline
1436         2014-04-14  Richard Biener  <rguenther@suse.de>
1438         PR middle-end/55022
1439         * fold-const.c (negate_expr_p): Don't negate directional rounding
1440         division.
1441         (fold_negate_expr): Likewise.
1443 2014-05-06  Richard Biener  <rguenther@suse.de>
1445         Backport from mainline
1446         2014-04-17  Richard Biener  <rguenther@suse.de>
1448         PR middle-end/60849
1449         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
1450         boolean results for comparisons.
1452         2014-04-07  Richard Biener  <rguenther@suse.de>
1454         PR tree-optimization/60766
1455         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an
1456         unsigned type.
1457         (may_eliminate_iv): Convert cand_value_at result to desired
1458         type.
1460         2014-04-23  Richard Biener  <rguenther@suse.de>
1462         PR tree-optimization/60903
1463         * tree-ssa-loop-im.c (execute_sm_if_changed): Properly apply
1464         IRREDUCIBLE_LOOP loop flags to newly created BBs and edges.
1466 2014-05-05  Richard Biener  <rguenther@suse.de>
1468         Backport from mainline
1469         2014-04-23  Richard Biener  <rguenther@suse.de>
1471         PR middle-end/60895
1472         * tree-inline.c (declare_return_variable): Use mark_addressable.
1474         2014-04-07  Richard Biener  <rguenther@suse.de>
1476         PR middle-end/60750
1477         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
1478         for noreturn calls.
1479         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
1481         2014-04-14  Richard Biener  <rguenther@suse.de>
1483         PR tree-optimization/59817
1484         PR tree-optimization/60453
1485         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
1486         recursion to catch all CHRECs in the scalar evolution and restrict
1487         the predicate for the remains appropriately.
1489         2014-04-17  Richard Biener  <rguenther@suse.de>
1491         PR tree-optimization/60836
1492         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
1493         initial PHI args to be gimple values.
1495 2014-05-05  Jakub Jelinek  <jakub@redhat.com>
1497         Backported from mainline
1498         2014-04-25  Jakub Jelinek  <jakub@redhat.com>
1500         PR tree-optimization/60960
1501         * tree-vect-generic.c (expand_vector_operation): Only call
1502         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
1504 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
1506         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
1507         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
1508         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
1509         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
1510         Use RS6000_BTM_HARD_FLOAT.
1511         (BU_MISC_2): Likewise.
1512         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
1513         RS6000_BTM_HARD_FLOAT.
1514         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
1515         is explicitly used.
1516         (rs6000_invalid_builtin): Add hard floating builtin support.
1517         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
1518         hard float builtins.
1519         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
1521 2014-05-03  Joey Ye  <joey.ye@arm.com>
1523         Backport from mainline r209463
1524         2014-04-17  Joey Ye  <joey.ye@arm.com>
1526         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
1528 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
1530         Back port from mainline
1531         PR target/61026
1532         * config/sh/sh.c: Include stdlib headers before everything else.
1534 2014-05-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1536         PR tree-optimization/60930
1537         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
1538         creating a multiply candidate by folding two constant
1539         multiplicands when the result overflows.
1541 2014-05-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1543         * config/aarch64/aarch64.h (TARGET_SIMD): Take AARCH64_ISA_SIMD
1544         into account.
1545         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
1547 2014-04-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
1549         Back port from mainline
1550         2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
1552         * doc/extend.texi (PowerPC Built-in Functions): Document new
1553         powerpc extended divide, bcd, pack/unpack 128-bit, builtin
1554         functions.
1555         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
1557         * config/rs6000/predicates.md (const_0_to_3_operand): New
1558         predicate to match 0..3 integer constants.
1560         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
1561         to support adding miscellaneous builtin functions.
1562         (BU_DFP_MISC_2): Likewise.
1563         (BU_P7_MISC_1): Likewise.
1564         (BU_P7_MISC_2): Likewise.
1565         (BU_P8V_MISC_3): Likewise.
1566         (BU_MISC_1): Likewise.
1567         (BU_MISC_2): Likewise.
1568         (DIVWE): Add extended divide builtin functions.
1569         (DIVWEO): Likewise.
1570         (DIVWEU): Likewise.
1571         (DIVWEUO): Likewise.
1572         (DIVDE): Likewise.
1573         (DIVDEO): Likewise.
1574         (DIVDEU): Likewise.
1575         (DIVDEUO): Likewise.
1576         (DXEX): Add decimal floating-point builtin functions.
1577         (DXEXQ): Likewise.
1578         (DDEDPD): Likewise.
1579         (DDEDPDQ): Likewise.
1580         (DENBCD): Likewise.
1581         (DENBCDQ): Likewise.
1582         (DIEX): Likewise.
1583         (DIEXQ): Likewise.
1584         (DSCLI): Likewise.
1585         (DSCLIQ): Likewise.
1586         (DSCRI): Likewise.
1587         (DSCRIQ): Likewise.
1588         (CDTBCD): Add new BCD builtin functions.
1589         (CBCDTD): Likewise.
1590         (ADDG6S): Likewise.
1591         (BCDADD): Likewise.
1592         (BCDADD_LT): Likewise.
1593         (BCDADD_EQ): Likewise.
1594         (BCDADD_GT): Likewise.
1595         (BCDADD_OV): Likewise.
1596         (BCDSUB): Likewise.
1597         (BCDSUB_LT): Likewise.
1598         (BCDSUB_EQ): Likewise.
1599         (BCDSUB_GT): Likewise.
1600         (BCDSUB_OV): Likewise.
1601         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
1602         (UNPACK_TD): Likewise.
1603         (PACK_TF): Likewise.
1604         (UNPACK_TF): Likewise.
1605         (UNPACK_TF_0): Likewise.
1606         (UNPACK_TF_1): Likewise.
1607         (PACK_V1TI): Likewise.
1608         (UNPACK_V1TI): Likewise.
1610         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
1611         support for decimal floating point builtin functions.
1612         (rs6000_expand_ternop_builtin): Add checks for the new builtin
1613         functions that take constant arguments.
1614         (rs6000_invalid_builtin): Add decimal floating point builtin
1615         support.
1616         (rs6000_init_builtins): Setup long double, _Decimal64, and
1617         _Decimal128 types for new builtin functions.
1618         (builtin_function_type): Set the unsigned flags appropriately for
1619         the new builtin functions.
1620         (rs6000_opt_masks): Add support for decimal floating point builtin
1621         functions.
1623         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
1624         floating point builtin functions.
1625         (RS6000_BTM_COMMON): Likewise.
1626         (RS6000_BTI_long_double): Likewise.
1627         (RS6000_BTI_dfloat64): Likewise.
1628         (RS6000_BTI_dfloat128): Likewise.
1629         (long_double_type_internal_node): Likewise.
1630         (dfloat64_type_internal_node): Likewise.
1631         (dfloat128_type_internal_node): Likewise.
1633         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
1634         2.07 bcd arithmetic instructions.
1635         (UNSPEC_BCDSUB): Likewise.
1636         (UNSPEC_BCD_OVERFLOW): Likewise.
1637         (UNSPEC_BCD_ADD_SUB): Likewise.
1638         (bcd_add_sub): Likewise.
1639         (BCD_TEST): Likewise.
1640         (bcd<bcd_add_sub>): Likewise.
1641         (bcd<bcd_add_sub>_test): Likewise.
1642         (bcd<bcd_add_sub>_test2): Likewise.
1643         (bcd<bcd_add_sub>_<code>): Likewise.
1644         (peephole2 for combined bcd ops): Likewise.
1646         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
1647         decimal floating point builtin functions.
1648         (UNSPEC_DENBCD): Likewise.
1649         (UNSPEC_DXEX): Likewise.
1650         (UNSPEC_DIEX): Likewise.
1651         (UNSPEC_DSCLI): Likewise.
1652         (UNSPEC_DSCRI): Likewise.
1653         (D64_D128): Likewise.
1654         (dfp_suffix): Likewise.
1655         (dfp_ddedpd_<mode>): Likewise.
1656         (dfp_denbcd_<mode>): Likewise.
1657         (dfp_dxex_<mode>): Likewise.
1658         (dfp_diex_<mode>): Likewise.
1659         (dfp_dscli_<mode>): Likewise.
1660         (dfp_dscri_<mode>): Likewise.
1662         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
1663         builtin functions.
1664         (UNSPEC_CDTBCD): Likewise.
1665         (UNSPEC_CBCDTD): Likewise.
1666         (UNSPEC_DIVE): Add support for new extended divide builtin
1667         functions.
1668         (UNSPEC_DIVEO): Likewise.
1669         (UNSPEC_DIVEU): Likewise.
1670         (UNSPEC_DIVEUO): Likewise.
1671         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
1672         pack/unpack 128-bit types.
1673         (UNSPEC_PACK_128BIT): Likewise.
1674         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
1675         (udiv<mode>3): Use idiv_ldiv mode attribute.
1676         (div<mode>3): Likewise.
1677         (addg6s): Add new BCD builtin functions.
1678         (cdtbcd): Likewise.
1679         (cbcdtd): Likewise.
1680         (UNSPEC_DIV_EXTEND): Add support for new extended divide
1681         instructions.
1682         (div_extend): Likewise.
1683         (div<div_extend>_<mode>"): Likewise.
1684         (FP128_64): Add support for new builtin functions to pack/unpack
1685         128-bit types.
1686         (unpack<mode>): Likewise.
1687         (unpacktf_0): Likewise.
1688         (unpacktf_1): Likewise.
1689         (unpack<mode>_dm): Likewise.
1690         (unpack<mode>_nodm): Likewise.
1691         (pack<mode>): Likewise.
1692         (unpackv1ti): Likewise.
1693         (packv1ti): Likewise.
1695 2014-04-29  Pat Haugen  <pthaugen@us.ibm.com>
1697         Backport from mainline
1698         2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
1700         * config/rs6000/rs6000.md (addti3, subti3): New.
1702 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
1704         Backport from mainline
1705         2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
1707         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
1708         (loadsync_<mode>): Change mode.
1709         (load_quadpti, store_quadpti): New.
1710         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
1711         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
1713 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1715         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
1716         * configure: Regenerate.
1717         * config/sparc/sparc.opt (muser-mode): New option.
1718         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
1719         for LEON3.
1720         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
1721         * doc/invoke.texi (SPARC options): Document -muser-mode.
1723 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
1725         PR target/60941
1726         * config/sparc/sparc.md (ashlsi3_extend): Delete.
1728 2014-04-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
1730         Back port from main line:
1731         2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
1733         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
1734         for ISA 2.07.
1736         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1737         vbpermq builtins.
1739         * config/rs6000/altivec.md (UNSPEC_VBPERMQ): Add support for the
1740         vbpermq instruction.
1741         (altivec_vbpermq): Likewise.
1743         PR target/60672
1744         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
1745         enable use of xxsldwi and xxpermdi builtin functions.
1746         (vec_xxpermdi): Likewise.
1748         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
1749         Document use of vec_xxsldwi and vec_xxpermdi builtins.
1751 2014-04-23  Uros Bizjak  <ubizjak@gmail.com>
1753         Backport from mainline
1754         2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
1756         PR target/60909
1757         * config/i386/i386.c (ix86_expand_builtin)
1758         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
1759         register for target RTX.
1760         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
1762 2014-04-23  Richard Biener  <rguenther@suse.de>
1764         Backport from mainline
1765         2014-04-02  Richard Biener  <rguenther@suse.de>
1767         PR middle-end/60729
1768         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
1769         MODE_INTs.  Properly use negv_optab.
1770         (expand_abs): Likewise.
1772         2014-04-03  Richard Biener  <rguenther@suse.de>
1774         PR tree-optimization/60740
1775         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
1776         over all GIMPLE_COND operands.
1778 2014-04-23  Richard Biener  <rguenther@suse.de>
1780         PR middle-end/60635
1781         * gimplify.c (gimple_regimplify_operands): Update the
1782         re-gimplifed stmt.
1784 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1786         Back port from the trunk, subversion id 209546.
1788         2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1790         PR target/60735
1791         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
1792         If mode is DDmode and TARGET_E500_DOUBLE allow move.
1794         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
1795         more debug information for E500 if -mdebug=reg.
1797 2014-04-18  Richard Henderson  <rth@redhat.com>
1799         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
1800         to GET_MODE_SIZE, not a reg_class_t.
1802 2014-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1804         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
1805         little-endian.
1806         (vsx_xxmrglw_<mode>): Likewise.
1808 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1810         PR target/60839
1811         Revert the following patch
1813         2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1815         Back port mainline subversion id 209025.
1816         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1818         PR target/60735
1819         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
1820         software floating point or no floating point registers, do not
1821         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
1822         in GPRs that occurs after we tested for GPRs that would never be
1823         true.
1825         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
1826         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
1827         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
1828         specifically allow DDmode, since that does not use the SPE SIMD
1829         instructions.
1831 2014-04-10  Vladimir Makarov  <vmakarov@redhat.com>
1833         PR rtl-optimization/60769
1834         * lra-constraints.c (simplify_operand_subreg): Force reload of
1835         paradoxical subreg if it is not in the class contents.
1837 2014-04-10  Jakub Jelinek  <jakub@redhat.com>
1839         Backport from mainline
1840         2014-03-12  Jakub Jelinek  <jakub@redhat.com>
1841                     Marc Glisse  <marc.glisse@inria.fr>
1843         PR tree-optimization/60502
1844         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
1845         instead of build_low_bits_mask.
1847         2013-06-13  Marc Glisse  <marc.glisse@inria.fr>
1849         * tree.c (build_all_ones_cst): New function.
1850         * tree.h (build_all_ones_cst): Declare it.
1852         2013-05-10  Marc Glisse  <marc.glisse@inria.fr>
1854         * tree.c (build_minus_one_cst): New function.
1855         * tree.h (build_minus_one_cst): Declare new function.
1857 2014-04-10  Jakub Jelinek  <jakub@redhat.com>
1859         Backport from mainline
1860         2014-03-28  Jakub Jelinek  <jakub@redhat.com>
1862         PR target/60693
1863         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
1864         also if addr has VOIDmode.
1866         2014-03-17  Jakub Jelinek  <jakub@redhat.com>
1868         PR target/60516
1869         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
1870         note creation for the 2010-08-31 changes.
1872         2014-03-06  Jakub Jelinek  <jakub@redhat.com>
1873                     Meador Inge  <meadori@codesourcery.com>
1875         PR target/58595
1876         * config/arm/arm.c (arm_tls_symbol_p): Remove.
1877         (arm_legitimize_address): Call legitimize_tls_address for any
1878         arm_tls_referenced_p expression, handle constant addend.  Call it
1879         before testing for !TARGET_ARM.
1880         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
1882 2014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1884         Backport from mainline r208750
1885         2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1887         * config/rs6000/rs6000.c (rs6000_expand_vector_set):  Generate a
1888         pattern for vector nor instead of subtract from splat(-1).
1889         (altivec_expand_vec_perm_const_le): Likewise.
1891         Backport from mainline r209235
1892         2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1894         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
1895         instead of vnor to exploit possible fusion opportunity in the
1896         future.
1897         (altivec_expand_vec_perm_const_le): Likewise.
1899 2014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1901         Revert following patch
1902         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
1904         Backport from mainline
1905         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
1907         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
1908         (loadsync_<mode>): Change mode.
1909         (load_quadpti, store_quadpti): New.
1910         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
1911         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
1913 2014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1915         Backport from mainline r202642
1916         2013-09-17  Alan Modra  <amodra@gmail.com>
1918         PR target/57589
1919         * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
1920         patch (r199972).
1922 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
1924         Backport from mainline
1925         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
1927         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
1928         (loadsync_<mode>): Change mode.
1929         (load_quadpti, store_quadpti): New.
1930         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
1931         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
1933 2014-04-07  Martin Jambor  <mjambor@suse.cz>
1935         PR ipa/60640
1936         * ipa-cp.c (propagate_constants_accross_call): Do not propagate
1937         accross thunks.
1939 2014-04-07  Dominique d'Humieres <dominiq@lps.ens.fr>
1941         Backport from mainline
1942         2013-09-14  Iain Sandoe <iains@gcc.gnu.org>
1944         PR target/48094
1945         * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata
1946         is seen.
1947         (darwin_objc1_section): Likewise.
1948         (darwin_file_end): Emit Image Info section when required.
1950 2014-04-05  Alan Modra  <amodra@gmail.com>
1952         Apply from mainline
1953         2014-01-28  Alan Modra  <amodra@gmail.com>
1954         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
1955         * configure.ac <recursive call for build != host>: Define
1956         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
1957         and LD_FOR_BUILD too.
1958         * configure: Regenerate.
1960 2014-04-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1962         Backport from mainline r208895:
1963         2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1965         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
1966         if it would clobber the stack pointer, even temporarily.
1968 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1970         Back port from main line:
1971         2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
1973         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
1974         Document vec_vgbbd.
1976 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1978         Back port mainline subversion id 209025.
1979         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1981         PR target/60735
1982         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
1983         software floating point or no floating point registers, do not
1984         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
1985         in GPRs that occurs after we tested for GPRs that would never be
1986         true.
1988         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
1989         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
1990         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
1991         specifically allow DDmode, since that does not use the SPE SIMD
1992         instructions.
1994 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1996         Backport from mainline r205308
1997         2013-11-23  David Edelsohn  <dje.gcc@gmail.com>
1999         * config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro.
2000         (rs6000_xcoff_select_section): Place decls with stricter alignment
2001         into named sections.
2002         (rs6000_xcoff_unique_section): Allow unique sections for
2003         uninitialized data with strict alignment.
2005 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2007         Backport from mainline
2008         2013-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2010         * gcc/configure: Regenerate.
2012 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2014         Back port from trunk
2015         2013-04-25  Alan Modra  <amodra@gmail.com>
2017         PR target/57052
2018         * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
2019         rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
2020         (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
2021         Repeat for many other rotate/shift and mask patterns using subregs.
2022         Name lshiftrt insns.
2023         (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
2024         on WORDS_BIG_ENDIAN.
2026         2013-06-07  Alan Modra  <amodra@gmail.com>
2028         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2029         override user -mfp-in-toc.
2030         (offsettable_ok_by_alignment): Consider just the current access
2031         rather than the whole object, unless BLKmode.  Handle
2032         CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
2033         (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
2034         for -mcmodel=medium.
2035         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
2036         override user -mfp-in-toc or -msum-in-toc.  Default to
2037         -mno-fp-in-toc for -mcmodel=medium.
2039         2013-06-18  Alan Modra  <amodra@gmail.com>
2041         * config/rs6000/rs6000.h (enum data_align): New.
2042         (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
2043         (DATA_ABI_ALIGNMENT): Define.
2044         (CONSTANT_ALIGNMENT): Correct comment.
2045         * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
2046         * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
2048         2013-07-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2050         * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
2051         Require GOT register as additional operand in UNSPEC.
2052         ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
2053         ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
2054         ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
2055         ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
2056         ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
2057         ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
2058         ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
2060         2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
2062         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2063         force flag_ira_loop_pressure if set via command line.
2065         2014-02-06  Alan Modra  <amodra@gmail.com>
2067         PR target/60032
2068         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
2069         change SDmode to DDmode when lra_in_progress.
2071 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2073         V1TImode Support
2074         Back port from trunk
2075         2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2077         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
2078         (VEC_M): Likewise.
2079         (VEC_N): Likewise.
2080         (VEC_R): Likewise.
2081         (VEC_base): Likewise.
2082         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
2083         registers, we need to swap double words in little endian mode.
2085         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
2086         to be a container mode for 128-bit integer operations added in ISA
2087         2.07.  Unlike TImode and PTImode, the preferred register set is
2088         the Altivec/VMX registers for the 128-bit operations.
2090         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
2091         declarations.
2092         (rs6000_split_128bit_ok_p): Likewise.
2094         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
2095         macros for creating ISA 2.07 normal and overloaded builtin
2096         functions with 3 arguments.
2097         (BU_P8V_OVERLOAD_3): Likewise.
2098         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
2099         for use as overloaded functions.
2100         (VPERM_1TI_UNS): Likewise.
2101         (VSEL_1TI): Likewise.
2102         (VSEL_1TI_UNS): Likewise.
2103         (ST_INTERNAL_1ti): Likewise.
2104         (LD_INTERNAL_1ti): Likewise.
2105         (XXSEL_1TI): Likewise.
2106         (XXSEL_1TI_UNS): Likewise.
2107         (VPERM_1TI): Likewise.
2108         (VPERM_1TI_UNS): Likewise.
2109         (XXPERMDI_1TI): Likewise.
2110         (SET_1TI): Likewise.
2111         (LXVD2X_V1TI): Likewise.
2112         (STXVD2X_V1TI): Likewise.
2113         (VEC_INIT_V1TI): Likewise.
2114         (VEC_SET_V1TI): Likewise.
2115         (VEC_EXT_V1TI): Likewise.
2116         (EQV_V1TI): Likewise.
2117         (NAND_V1TI): Likewise.
2118         (ORC_V1TI): Likewise.
2119         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
2120         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
2121         overloaded builtin.
2122         (VADDUQM): Likewise.
2123         (VSUBCUQ): Likewise.
2124         (VADDEUQM): Likewise.
2125         (VADDECUQ): Likewise.
2126         (VSUBEUQM): Likewise.
2127         (VSUBECUQ): Likewise.
2129         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
2130         __int128_t and __uint128_t types.
2131         (__uint128_type): Likewise.
2132         (altivec_categorize_keyword): Add support for vector __int128_t,
2133         vector __uint128_t, vector __int128, and vector unsigned __int128
2134         as a container type for TImode operations that need to be done in
2135         VSX/Altivec registers.
2136         (rs6000_macro_to_expand): Likewise.
2137         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
2138         to support 128-bit integer instructions vaddcuq, vadduqm,
2139         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
2140         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
2142         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
2143         for V1TImode, and set up preferences to use VSX/Altivec
2144         registers.  Setup VSX reload handlers.
2145         (rs6000_debug_reg_global): Likewise.
2146         (rs6000_init_hard_regno_mode_ok): Likewise.
2147         (rs6000_preferred_simd_mode): Likewise.
2148         (vspltis_constant): Do not allow V1TImode as easy altivec
2149         constants.
2150         (easy_altivec_constant): Likewise.
2151         (output_vec_const_move): Likewise.
2152         (rs6000_expand_vector_set): Convert V1TImode set and extract to
2153         simple move.
2154         (rs6000_expand_vector_extract): Likewise.
2155         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
2156         addressing.
2157         (rs6000_const_vec): Add support for V1TImode.
2158         (rs6000_emit_le_vsx_load): Swap double words when loading or
2159         storing TImode/V1TImode.
2160         (rs6000_emit_le_vsx_store): Likewise.
2161         (rs6000_emit_le_vsx_move): Likewise.
2162         (rs6000_emit_move): Add support for V1TImode.
2163         (altivec_expand_ld_builtin): Likewise.
2164         (altivec_expand_st_builtin): Likewise.
2165         (altivec_expand_vec_init_builtin): Likewise.
2166         (altivec_expand_builtin): Likewise.
2167         (rs6000_init_builtins): Add support for V1TImode type.  Add
2168         support for ISA 2.07 128-bit integer builtins.  Define type names
2169         for the VSX/Altivec vector types.
2170         (altivec_init_builtins): Add support for overloaded vector
2171         functions with V1TImode type.
2172         (rs6000_preferred_reload_class): Prefer Altivec registers for
2173         V1TImode.
2174         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
2175         external function.
2176         (rs6000_split_128bit_ok_p): Likewise.
2177         (rs6000_handle_altivec_attribute): Create V1TImode from vector
2178         __int128_t and vector __uint128_t.
2180         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
2181         and mode attributes.
2182         (VSX_M): Likewise.
2183         (VSX_M2): Likewise.
2184         (VSm): Likewise.
2185         (VSs): Likewise.
2186         (VSr): Likewise.
2187         (VSv): Likewise.
2188         (VS_scalar): Likewise.
2189         (VS_double): Likewise.
2190         (vsx_set_v1ti): New builtin function to create V1TImode from
2191         TImode.
2193         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say
2194         whether we support the ISA 2.07 128-bit integer arithmetic
2195         instructions.
2196         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
2197         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
2198         and TImode types for use with the builtin functions.
2199         (V1TI_type_node): Likewise.
2200         (unsigned_V1TI_type_node): Likewise.
2201         (intTI_type_internal_node): Likewise.
2202         (uintTI_type_internal_node): Likewise.
2204         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA
2205         2.07 128-bit builtin functions.
2206         (UNSPEC_VADDEUQM): Likewise.
2207         (UNSPEC_VADDECUQ): Likewise.
2208         (UNSPEC_VSUBCUQ): Likewise.
2209         (UNSPEC_VSUBEUQM): Likewise.
2210         (UNSPEC_VSUBECUQ): Likewise.
2211         (VM): Add V1TImode to vector mode iterators.
2212         (VM2): Likewise.
2213         (VI_unit): Likewise.
2214         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
2215         (altivec_vaddcuq): Likewise.
2216         (altivec_vsubuqm): Likewise.
2217         (altivec_vsubcuq): Likewise.
2218         (altivec_vaddeuqm): Likewise.
2219         (altivec_vaddecuq): Likewise.
2220         (altivec_vsubeuqm): Likewise.
2221         (altivec_vsubecuq): Likewise.
2223         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
2224         mode iterators.
2225         (BOOL_128): Likewise.
2226         (BOOL_REGS_OUTPUT): Likewise.
2227         (BOOL_REGS_OP1): Likewise.
2228         (BOOL_REGS_OP2): Likewise.
2229         (BOOL_REGS_UNARY): Likewise.
2230         (BOOL_REGS_AND_CR0): Likewise.
2232         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
2233         128-bit integer builtin support.
2234         (vec_vadduqm): Likewise.
2235         (vec_vaddecuq): Likewise.
2236         (vec_vaddeuqm): Likewise.
2237         (vec_vsubecuq): Likewise.
2238         (vec_vsubeuqm): Likewise.
2239         (vec_vsubcuq): Likewise.
2240         (vec_vsubuqm): Likewise.
2242         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
2243         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
2244         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
2245         128-bit integer add/subtract to ISA 2.07.
2247 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2249         Apply mainline r207798
2250         2014-02-26  Alan Modra  <amodra@gmail.com>
2251         PR target/58675
2252         PR target/57935
2253         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
2254         find_replacement on parts of insn rtl that might be reloaded.
2256         Backport from mainline r208287
2257         2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2259         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
2260         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
2261         constraint on constants to permit them being loaded into
2262         GENERAL_REGS or BASE_REGS.
2264 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2266         Backport from mainline r207699.
2267         2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
2269         PR target/60137
2270         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
2271         for VSX/Altivec vectors that land in GPR registers.
2273         Backport from mainline r207808.
2274         2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
2276         PR target/60203
2277         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
2278         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
2279         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
2280         using direct move instructions on ISA 2.07.  Also adjust
2281         instruction length for 64-bit.
2282         (mov<mode>_64bit, TFmode/TDmode): Likewise.
2283         (mov<mode>_32bit, TFmode/TDmode): Likewise.
2285         Backport from mainline r207868.
2286         2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
2288         PR target/60203
2289         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
2290         Split 64-bit moves into 2 patterns.  Do not allow the use of
2291         direct move for TDmode in little endian, since the decimal value
2292         has little endian bytes within a word, but the 64-bit pieces are
2293         ordered in a big endian fashion, and normal subreg's of TDmode are
2294         not allowed.
2295         (mov<mode>_64bit_dm): Likewise.
2296         (movtd_64bit_nodm): Likewise.
2298 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2300         Backport from mainline r207658
2301         2014-02-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2303         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
2304         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
2305         -mcall-openbsd, or -mcall-linux.
2306         (CC1_ENDIAN_BIG_SPEC): Remove.
2307         (CC1_ENDIAN_LITTLE_SPEC): Remove.
2308         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
2309         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
2310         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
2311         and %cc1_endian_default.
2312         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
2314 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2316         Little Endian Vector API Support
2317         Backport from mainline r206443
2318         2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2320         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
2321         two duplicate entries.
2323         Backport from mainline r206494
2324         2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2326         * doc/invoke.texi: Add -maltivec={be,le} options, and document
2327         default element-order behavior for -maltivec.
2328         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
2329         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
2330         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
2331         when targeting big endian, at least for now.
2332         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
2334         Backport from mainline r206541
2335         2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2337         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
2339         Backport from mainline r206590
2340         2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2342         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2343         Implement -maltivec=be for vec_insert and vec_extract.
2345         Backport from mainline r206641
2346         2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
2348         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
2349         and vmulosh rather than call gen_vec_widen_smult_*.
2350         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
2351         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
2352         (vec_widen_smult_even_v16qi): Likewise.
2353         (vec_widen_umult_even_v8hi): Likewise.
2354         (vec_widen_smult_even_v8hi): Likewise.
2355         (vec_widen_umult_odd_v16qi): Likewise.
2356         (vec_widen_smult_odd_v16qi): Likewise.
2357         (vec_widen_umult_odd_v8hi): Likewise.
2358         (vec_widen_smult_odd_v8hi): Likewise.
2359         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
2360         vmuloub rather than call gen_vec_widen_umult_*.
2361         (vec_widen_umult_lo_v16qi): Likewise.
2362         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
2363         vmulosb rather than call gen_vec_widen_smult_*.
2364         (vec_widen_smult_lo_v16qi): Likewise.
2365         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
2366         rather than call gen_vec_widen_umult_*.
2367         (vec_widen_umult_lo_v8hi): Likewise.
2368         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
2369         rather than call gen_vec_widen_smult_*.
2370         (vec_widen_smult_lo_v8hi): Likewise.
2372         Backport from mainline r207062
2373         2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2375         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
2376         correction for little endian...
2377         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
2378         here.
2380         Backport from mainline r207262
2381         2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2383         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
2384         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
2385         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
2386         -maltivec=be with LE targets.
2387         (vsx_mergeh_<mode>): Likewise.
2388         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New
2389         unspecs.
2390         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
2391         (altivec_vmrghb): Replace with define_expand and new
2392         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE
2393         targets.
2394         (altivec_vmrghb_direct): New define_insn.
2395         (altivec_vmrghh): Replace with define_expand and new
2396         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE
2397         targets.
2398         (altivec_vmrghh_direct): New define_insn.
2399         (altivec_vmrghw): Replace with define_expand and new
2400         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE
2401         targets.
2402         (altivec_vmrghw_direct): New define_insn.
2403         (*altivec_vmrghsf): Adjust for endianness.
2404         (altivec_vmrglb): Replace with define_expand and new
2405         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE
2406         targets.
2407         (altivec_vmrglb_direct): New define_insn.
2408         (altivec_vmrglh): Replace with define_expand and new
2409         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE
2410         targets.
2411         (altivec_vmrglh_direct): New define_insn.
2412         (altivec_vmrglw): Replace with define_expand and new
2413         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE
2414         targets.
2415         (altivec_vmrglw_direct): New define_insn.
2416         (*altivec_vmrglsf): Adjust for endianness.
2417         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
2418         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
2419         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
2420         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
2421         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
2422         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
2423         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
2424         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
2426         Backport from mainline r207318
2427         2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2429         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
2430         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
2431         remove element index adjustment for endian (now handled in vsx.md
2432         and altivec.md).
2433         (altivec_expand_vec_perm_const): Use
2434         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
2435         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
2436         (vsx_xxspltw_<mode>): Adjust element index for little endian.
2437         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
2438         define_expand and a new define_insn *altivec_vspltb_internal;
2439         adjust for -maltivec=be on a little endian target.
2440         (altivec_vspltb_direct): New.
2441         (altivec_vsplth): Divide into a define_expand and a new
2442         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
2443         little endian target.
2444         (altivec_vsplth_direct): New.
2445         (altivec_vspltw): Divide into a define_expand and a new
2446         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
2447         little endian target.
2448         (altivec_vspltw_direct): New.
2449         (altivec_vspltsf): Divide into a define_expand and a new
2450         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
2451         a little endian target.
2453         Backport from mainline r207326
2454         2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2456         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
2457         unused variable "field".
2458         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
2459         (vsx_mergeh_<mode>): Likewise.
2460         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
2461         (altivec_vmrghh): Likewise.
2462         (altivec_vmrghw): Likewise.
2463         (altivec_vmrglb): Likewise.
2464         (altivec_vmrglh): Likewise.
2465         (altivec_vmrglw): Likewise.
2466         (altivec_vspltb): Add missing uses.
2467         (altivec_vsplth): Likewise.
2468         (altivec_vspltw): Likewise.
2469         (altivec_vspltsf): Likewise.
2471         Backport from mainline r207414
2472         2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2474         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
2475         (altivec_vsumsws): Add handling for -maltivec=be with a little
2476         endian target.
2477         (altivec_vsumsws_direct): New.
2478         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
2479         gen_altivec_vsumsws.
2481         Backport from mainline r207415
2482         2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2484         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
2485         for vector types other than V16QImode.
2486         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
2487         define_expand, and call altivec_expand_vec_perm_le when producing
2488         code with little endian element order.
2489         (*altivec_vperm_<mode>_internal): New insn having previous
2490         behavior of altivec_vperm_<mode>.
2491         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
2492         altivec_expand_vec_perm_le when producing code with little endian
2493         element order.
2494         (*altivec_vperm_<mode>_uns_internal): New insn having previous
2495         behavior of altivec_vperm_<mode>_uns.
2497         Backport from mainline r207520
2498         2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2500         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
2501         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
2502         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
2503         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
2504         gen_altivec_vpkuwum.
2505         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
2506         BYTES_BIG_ENDIAN.
2507         (altivec_vpks<VI_char>ss): Likewise.
2508         (altivec_vpks<VI_char>us): Likewise.
2509         (altivec_vpku<VI_char>us): Likewise.
2510         (altivec_vpku<VI_char>um): Likewise.
2511         (altivec_vpku<VI_char>um_direct): New (copy of
2512         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
2513         internal use).
2514         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
2515         target is little endian and -maltivec=be is not specified.
2516         (*altivec_vupkhs<VU_char>_direct): New (copy of
2517         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal
2518         use).
2519         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
2520         target is little endian and -maltivec=be is not specified.
2521         (*altivec_vupkls<VU_char>_direct): New (copy of
2522         altivec_vupkls<VU_char> that always emits vupkls*, for internal
2523         use).
2524         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
2525         little endian and -maltivec=be is not specified.
2526         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
2527         little endian and -maltivec=be is not specified.
2529         Backport from mainline r207521
2530         2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2532         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
2533         generation for -maltivec=be.
2534         (altivec_vsumsws): Simplify redundant test.
2536         Backport from mainline r207525
2537         2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2539         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
2540         CODE_FOR_altivec_vpku[hw]um to
2541         CODE_FOR_altivec_vpku[hw]um_direct.
2542         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
2543         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
2544         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
2545         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
2547         Backport from mainline r207814.
2548         2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2550         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
2551         endian targets.
2553         Backport from mainline r207815.
2554         2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2556         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian
2557         targets.
2558         (p8_vmrgow): Likewise.
2560         Backport from mainline r207919.
2561         2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2563         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
2564         bit of zero.
2566         Backport from mainline 208019
2567         2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2569         * config/rs6000/altivec.md (altivec_lvxl): Rename as
2570         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of
2571         V4SI.
2572         (altivec_lvxl_<mode>): New define_expand incorporating
2573         -maltivec=be semantics where needed.
2574         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
2575         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
2576         semantics where needed.
2577         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
2578         (altivec_stvx_<mode>): New define_expand incorporating
2579         -maltivec=be semantics where needed.
2580         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
2581         VM2 iterator instead of V4SI.
2582         (altivec_stvxl_<mode>): New define_expand incorporating
2583         -maltivec=be semantics where needed.
2584         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
2585         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
2586         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI,
2587         STVX_V2DF, STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI,
2588         STVXL_V2DF, STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI,
2589         STVXL_V16QI.
2590         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
2591         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
2592         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
2593         ALTIVEC_BUILTIN_STVXL.
2594         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New
2595         prototype.
2596         (altivec_expand_stvx_be): Likewise.
2597         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
2598         (altivec_expand_lvx_be): Likewise.
2599         (altivec_expand_stvx_be): Likewise.
2600         (altivec_expand_builtin): Add cases for
2601         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
2602         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
2603         (altivec_init_builtins): Add definitions for
2604         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
2605         __builtin_altivec_stvx_<mode>, and
2606         __builtin_altivec_stvxl_<mode>.
2608         Backport from mainline 208021
2609         2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2611         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
2612         vspltw with vsldoi.
2613         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
2614         gen_altivec_vsumsws.
2616         Backport from mainline 208049
2617         2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2619         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
2620         define_insn with define_expand and new define_insn
2621         *altivec_lve<VI_char>x_internal.
2622         (altivec_stve<VI_char>x): Replace define_insn with define_expand
2623         and new define_insn *altivec_stve<VI_char>x_internal.
2624         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
2625         prototype.
2626         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
2627         lve*x built-ins.
2628         (altivec_expand_stvex_be): New function.
2630         Backport from mainline
2631         2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2632         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
2633         to permit subregs.
2635         Backport from mainline
2636         2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2637         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
2638         to use canonical form for nor<mode>3.
2640 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2642         Backport from mainline
2643         2014-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
2645         * config/rs6000/rs6000.opt (-mlra): Add switch to enable the LRA
2646         register allocator.
2648         * config/rs6000/rs6000.c (TARGET_LRA_P): Add support for -mlra to
2649         enable the LRA register allocator.  Back port the changes from the
2650         trunk to enable LRA.
2651         (rs6000_legitimate_offset_address_p): Likewise.
2652         (legitimate_lo_sum_address_p): Likewise.
2653         (use_toc_relative_ref): Likewise.
2654         (rs6000_legitimate_address_p): Likewise.
2655         (rs6000_emit_move): Likewise.
2656         (rs6000_secondary_memory_needed_mode): Likewise.
2657         (rs6000_alloc_sdmode_stack_slot): Likewise.
2658         (rs6000_lra_p): Likewise.
2660         * config/rs6000/sync.md (load_lockedti): Copy TI/PTI variables by
2661         64-bit parts to force the register allocator to allocate even/odd
2662         register pairs for the quad word atomic instructions.
2663         (store_conditionalti): Likewise.
2665 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2667         Back port from mainline
2668         2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2670         PR target/59909
2671         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2672         -mquad-memory-atomic.  Update -mquad-memory documentation to say
2673         it is only used for non-atomic loads/stores.
2675         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
2676         -mquad-memory or -mquad-memory-atomic switches.
2678         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
2679         -mquad-memory-atomic to ISA 2.07 support.
2681         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
2682         to separate support of normal quad word memory operations (ldq,
2683         stq) from the atomic quad word memory operations.
2685         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
2686         support to separate non-atomic quad word operations from atomic
2687         quad word operations.  Disable non-atomic quad word operations in
2688         little endian mode so that we don't have to swap words after the
2689         load and before the store.
2690         (quad_load_store_p): Add comment about atomic quad word support.
2691         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
2692         options printed with -mdebug=reg.
2694         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
2695         -mquad-memory-atomic as the test for whether we have quad word
2696         atomic instructions.
2697         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic,
2698         -mquad-memory, or -mp8-vector are used, allow byte/half-word
2699         atomic operations.
2701         * config/rs6000/sync.md (load_lockedti): Insure that the address
2702         is a proper indexed or indirect address for the lqarx instruction.
2703         On little endian systems, swap the hi/lo registers after the lqarx
2704         instruction.
2705         (load_lockedpti): Use indexed_or_indirect_operand predicate to
2706         insure the address is valid for the lqarx instruction.
2707         (store_conditionalti): Insure that the address is a proper indexed
2708         or indirect address for the stqcrx. instruction.  On little endian
2709         systems, swap the hi/lo registers before doing the stqcrx.
2710         instruction.
2711         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
2712         insure the address is valid for the stqcrx. instruction.
2714         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
2715         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
2716         type of quad memory support is available.
2718 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2720         Apply mainline r202190, powerpc64le multilibs and multiarch dir
2721         2013-09-03  Alan Modra  <amodra@gmail.com>
2723         * config.gcc (powerpc*-*-linux*): Add support for little-endian
2724         multilibs to big-endian target and vice versa.
2725         * config/rs6000/t-linux64: Use := assignment on all vars.
2726         (MULTILIB_EXTRA_OPTS): Remove fPIC.
2727         (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
2728         * config/rs6000/t-linux64le: New file.
2729         * config/rs6000/t-linux64bele: New file.
2730         * config/rs6000/t-linux64lebe: New file.
2732 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2734         Back port from mainline
2735         2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
2737         PR target/59844
2738         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
2739         endian support, remove tests for WORDS_BIG_ENDIAN.
2740         (p8_mfvsrd_3_<mode>): Likewise.
2741         (reload_gpr_from_vsx<mode>): Likewise.
2742         (reload_gpr_from_vsxsf): Likewise.
2743         (p8_mfvsrd_4_disf): Likewise.
2745 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2747         Backport from mainline
2748         2013-04-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2750         PR target/56843
2751         * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
2752         (rs6000_emit_swdiv_low_precision): Remove.
2753         (rs6000_emit_swdiv): Rewrite to handle between one and four
2754         iterations of Newton-Raphson generally; modify required number of
2755         iterations for some cases.
2756         * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
2758 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2760         Backport from mainline
2761         2013-08-19  Peter Bergner  <bergner@vnet.ibm.com>
2762                     Jakub Jelinek  <jakub@redhat.com>
2764         * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
2765         (BUILT_IN_FABSD64): Likewise.
2766         (BUILT_IN_FABSD128): Likewise.
2767         * builtins.c (expand_builtin): Add support for
2768         new DFP ABS builtins.
2769         (fold_builtin_1): Likewise.
2770         * config/rs6000/dfp.md
2771         (*abstd2_fpr): Handle non-overlapping destination
2772         and source operands.
2773         (*nabstd2_fpr): Likewise.
2775 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2777         Apply mainline r205060.
2778         2013-11-20  Alan Modra  <amodra@gmail.com>
2779         * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
2780         * config/rs6000/rs6000.c (rs6000_option_override_internal): Default
2781         to strict alignment on older processors when little-endian.
2782         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
2783         for ELFv2.
2785 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2787         POWER ELFv2 ABI Support
2788         Backport from mainline r204842:
2790         2013-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2792         * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document.
2794         Backport from mainline r204809:
2796         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2798         * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define.
2800         Backport from mainline r204808:
2802         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2803                     Alan Modra  <amodra@gmail.com>
2805         * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2.
2806         (RS6000_SAVE_TOC): Remove.
2807         (RS6000_TOC_SAVE_SLOT): New macro.
2808         * config/rs6000/rs6000.c (rs6000_parm_offset): New function.
2809         (rs6000_parm_start): Use it.
2810         (rs6000_function_arg_advance_1): Likewise.
2811         (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT.
2812         (rs6000_emit_epilogue): Likewise.
2813         (rs6000_call_aix): Likewise.
2814         (rs6000_output_function_prologue): Do not save/restore r11
2815         around calling _mcount for ABI_ELFv2.
2817         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2818                     Alan Modra  <amodra@gmail.com>
2820         * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space):
2821         Add prototype.
2822         * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove.
2823         (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space.
2824         * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function.
2825         (rs6000_function_parms_need_stack): Likewise.
2826         (rs6000_reg_parm_stack_space): Likewise.
2827         (rs6000_function_arg): Do not replace BLKmode by Pmode when
2828         returning a register argument.
2830         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2831                     Michael Gschwind  <mkg@us.ibm.com>
2833         * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro.
2834         (ALTIVEC_ARG_MAX_RETURN): Likewise.
2835         (FUNCTION_VALUE_REGNO_P): Use them.
2836         * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define.
2837         (rs6000_return_in_msb): New function.
2838         (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates.
2839         Handle aggregates of up to 16 bytes for ELFv2.
2840         (rs6000_function_value): Handle ELFv2 homogeneous aggregates.
2842         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2843                     Michael Gschwind  <mkg@us.ibm.com>
2845         * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
2846         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
2847         (rs6000_discover_homogeneous_aggregate): Likewise.
2848         (rs6000_function_arg_boundary): Handle homogeneous aggregates.
2849         (rs6000_function_arg_advance_1): Likewise.
2850         (rs6000_function_arg): Likewise.
2851         (rs6000_arg_partial_bytes): Likewise.
2852         (rs6000_psave_function_arg): Handle BLKmode arguments.
2854         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2855                     Michael Gschwind  <mkg@us.ibm.com>
2857         * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
2858         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
2859         (rs6000_discover_homogeneous_aggregate): Likewise.
2860         (rs6000_function_arg_boundary): Handle homogeneous aggregates.
2861         (rs6000_function_arg_advance_1): Likewise.
2862         (rs6000_function_arg): Likewise.
2863         (rs6000_arg_partial_bytes): Likewise.
2864         (rs6000_psave_function_arg): Handle BLKmode arguments.
2866         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2868         * config/rs6000/rs6000.c (machine_function): New member
2869         r2_setup_needed.
2870         (rs6000_emit_prologue): Set r2_setup_needed if necessary.
2871         (rs6000_output_mi_thunk): Set r2_setup_needed.
2872         (rs6000_output_function_prologue): Output global entry point
2873         prologue and local entry point marker if needed for ABI_ELFv2.
2874         Output -mprofile-kernel code here.
2875         (output_function_profiler): Do not output -mprofile-kernel
2876         code here; moved to rs6000_output_function_prologue.
2877         (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2.
2879         (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2.
2880         (rs6000_output_function_entry): Likewise.
2881         (rs6000_assemble_integer): Likewise.
2882         (rs6000_elf_encode_section_info): Likewise.
2883         (rs6000_elf_declare_function_name): Do not create dot symbols
2884         or .opd section for ABI_ELFv2.
2886         (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines.
2887         (rs6000_trampoline_init): Likewise.
2888         (rs6000_elf_file_end): Call file_end_indicate_exec_stack
2889         for ABI_ELFv2.
2891         (rs6000_call_aix): Handle ELFv2 indirect calls.  Do not check
2892         for function descriptors in ABI_ELFv2.
2894         * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support
2895         on ABI_AIX only, not ABI_ELFv2.
2896         ("*call_value_indirect_aix<mode>"): Likewise.
2897         ("*call_indirect_elfv2<mode>"): New pattern.
2898         ("*call_value_indirect_elfv2<mode>"): Likewise.
2900         * config/rs6000/predicates.md ("symbol_ref_operand"): Do not
2901         check for function descriptors in ABI_ELFv2.
2902         ("current_file_function_operand"): Likewise.
2904         * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]:
2905         (toc): Undefine.
2906         (FUNC_NAME): Define ELFv2 variant.
2907         (JUMP_TARGET): Likewise.
2908         (FUNC_START): Likewise.
2909         (HIDDEN_FUNC): Likewise.
2910         (FUNC_END): Likeiwse.
2912         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2914         * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1
2915         and --with-abi=elfv2.
2916         * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi".
2917         * config/rs6000/rs6000.opt (mabi=elfv1): New option.
2918         (mabi=elfv2): Likewise.
2919         * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2.
2920         * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI
2921         if !RS6000_BI_ARCH.
2922         (ELFv2_ABI_CHECK): New macro.
2923         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
2924         rs6000_current_abi to ABI_AIX or ABI_ELFv2.
2925         (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version.
2926         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
2927         _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate.
2929         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2.
2930         (debug_stack_info): Likewise.
2931         (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX.
2932         (rs6000_legitimize_tls_address): Likewise.
2933         (rs6000_conditional_register_usage): Likewise.
2934         (rs6000_emit_move): Likewise.
2935         (init_cumulative_args): Likewise.
2936         (rs6000_function_arg_advance_1): Likewise.
2937         (rs6000_function_arg): Likewise.
2938         (rs6000_arg_partial_bytes): Likewise.
2939         (rs6000_output_function_entry): Likewise.
2940         (rs6000_assemble_integer): Likewise.
2941         (rs6000_savres_strategy): Likewise.
2942         (rs6000_stack_info): Likewise.
2943         (rs6000_function_ok_for_sibcall): Likewise.
2944         (rs6000_emit_load_toc_table): Likewise.
2945         (rs6000_savres_routine_name): Likewise.
2946         (ptr_regno_for_savres): Likewise.
2947         (rs6000_emit_prologue): Likewise.
2948         (rs6000_emit_epilogue): Likewise.
2949         (rs6000_output_function_epilogue): Likewise.
2950         (output_profile_hook): Likewise.
2951         (output_function_profiler): Likewise.
2952         (rs6000_trampoline_size): Likewise.
2953         (rs6000_trampoline_init): Likewise.
2954         (rs6000_elf_output_toc_section_asm_op): Likewise.
2955         (rs6000_elf_encode_section_info): Likewise.
2956         (rs6000_elf_reloc_rw_mask): Likewise.
2957         (rs6000_elf_declare_function_name): Likewise.
2958         (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX,
2959         except that rs6000_compat_align_parm is always assumed false.
2960         (rs6000_gimplify_va_arg): Likewise.
2961         (rs6000_call_aix): Update comment.
2962         (rs6000_sibcall_aix): Likewise.
2963         * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"):
2964         Treat ABI_ELFv2 the same as ABI_AIX.
2965         ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
2966         ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise.
2967         ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
2968         ("load_toc_aix_si"): Likewise.
2969         ("load_toc_aix_di"): Likewise.
2970         ("call"): Likewise.
2971         ("call_value"): Likewise.
2972         ("*call_local_aix<mode>"): Likewise.
2973         ("*call_value_local_aix<mode>"): Likewise.
2974         ("*call_nonlocal_aix<mode>"): Likewise.
2975         ("*call_value_nonlocal_aix<mode>"): Likewise.
2976         ("*call_indirect_aix<mode>"): Likewise.
2977         ("*call_value_indirect_aix<mode>"): Likewise.
2978         ("sibcall"): Likewise.
2979         ("sibcall_value"): Likewise.
2980         ("*sibcall_aix<mode>"): Likewise.
2981         ("*sibcall_value_aix<mode>"): Likewise.
2982         * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise.
2983         ("current_file_function_operand"): Likewise.
2985         Backport from mainline r204807:
2987         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2989         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic
2990         by making use of the fact that for vector / floating point arguments
2991         passed both in VRs/FPRs and in the fixed parameter area, the partial
2992         bytes mechanism is in fact not used.
2994         Backport from mainline r204806:
2996         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2998         * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function.
2999         (rs6000_finish_function_arg): Likewise.
3000         (rs6000_function_arg): Use rs6000_psave_function_arg and
3001         rs6000_finish_function_arg to handle both vector and floating
3002         point arguments that are also passed in GPRs / the stack.
3004         Backport from mainline r204805:
3006         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3008         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument.
3009         (USE_ALTIVEC_FOR_ARG_P): Likewise.
3010         (rs6000_darwin64_record_arg_advance_recurse): Update uses.
3011         (rs6000_function_arg_advance_1):Likewise.
3012         (rs6000_darwin64_record_arg_recurse): Likewise.
3013         (rs6000_function_arg): Likewise.
3014         (rs6000_arg_partial_bytes): Likewise.
3016         Backport from mainline r204804:
3018         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3020         * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace
3021         "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN.
3022         (rs6000_savres_strategy): Likewise.
3023         (rs6000_return_addr): Likewise.
3024         (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by
3025         testing for ABI_V4 (since ABI_DARWIN is impossible here).
3026         (rs6000_emit_prologue): Likewise.
3027         (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test.
3028         (rs6000_elf_declare_function_name): Remove duplicated test.
3029         * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test
3030         for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test).
3031         ("load_toc_v4_PIC_1_normal"): Likewise.
3032         ("load_toc_v4_PIC_1_476"): Likewise.
3033         ("load_toc_v4_PIC_1b"): Likewise.
3034         ("load_toc_v4_PIC_1b_normal"): Likewise.
3035         ("load_toc_v4_PIC_1b_476"): Likewise.
3036         ("load_toc_v4_PIC_2"): Likewise.
3037         ("load_toc_v4_PIC_3b"): Likewise.
3038         ("load_toc_v4_PIC_3c"): Likewise.
3039         * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test.
3040         (RS6000_SAVE_AREA): Likewise.
3041         (FP_ARG_MAX_REG): Likewise.
3042         (RETURN_ADDRESS_OFFSET): Likewise.
3043         * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead
3044         of ABI_AIX.
3045         (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
3046         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
3048         Backport from mainline r204803:
3050         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3052         * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ...
3053         (rs6000_call_aix): ... this.  Handle both direct and indirect calls.
3054         Create call insn directly instead of via various gen_... routines.
3055         Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE.
3056         (rs6000_sibcall_aix): New function.
3057         * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove.
3058         (TOC_SAVE_OFFSET_64BIT): Likewise.
3059         (AIX_FUNC_DESC_TOC_32BIT): Likewise.
3060         (AIX_FUNC_DESC_TOC_64BIT): Likewise.
3061         (AIX_FUNC_DESC_SC_32BIT): Likewise.
3062         (AIX_FUNC_DESC_SC_64BIT): Likewise.
3063         ("call" expander): Call rs6000_call_aix.
3064         ("call_value" expander): Likewise.
3065         ("call_indirect_aix<ptrsize>"): Replace this pattern ...
3066         ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
3067         ("*call_indirect_aix<mode>"): ... by this insn pattern.
3068         ("call_value_indirect_aix<ptrsize>"): Replace this pattern ...
3069         ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
3070         ("*call_value_indirect_aix<mode>"): ... by this insn pattern.
3071         ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ...
3072         ("*call_nonlocal_aix<mode>"): ... this pattern.
3073         ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace
3074         ("*call_value_nonlocal_aix<mode>"): ... by this pattern.
3075         ("*call_local_aix<mode>"): New insn pattern.
3076         ("*call_value_local_aix<mode>"): Likewise.
3077         ("sibcall" expander): Call rs6000_sibcall_aix.
3078         ("sibcall_value" expander): Likewise.  Move earlier in file.
3079         ("*sibcall_nonlocal_aix<mode>"): Replace by ...
3080         ("*sibcall_aix<mode>"): ... this pattern.
3081         ("*sibcall_value_nonlocal_aix<mode>"): Replace by ...
3082         ("*sibcall_value_aix<mode>"): ... this pattern.
3083         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove.
3084         (rs6000_call_aix): Add prototype.
3085         (rs6000_sibcall_aix): Likewise.
3087         Backport from mainline r204799:
3089         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3091         * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a
3092         RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn.
3093         Instead, add USEs of all modified call-saved CR fields to the
3094         insn storing the result to the stack slot, and provide an
3095         appropriate REG_FRAME_RELATED_EXPR for that insn.
3096         * config/rs6000/rs6000.md ("*crsave"): New insn pattern.
3097         * config/rs6000/predicates.md ("crsave_operation"): New predicate.
3099 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3101         ELFv2 ABI Call Support
3102         Backport from mainline r204798:
3104         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3105                     Alan Modra  <amodra@gmail.com>
3107         * function.c (assign_parms): Use all.reg_parm_stack_space instead
3108         of re-evaluating REG_PARM_STACK_SPACE target macro.
3109         (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE.  Use it
3110         instead of evaluating target macro REG_PARM_STACK_SPACE every time.
3111         (assign_parm_find_entry_rtl): Update call.
3112         * calls.c (initialize_argument_information): Update call.
3113         (emit_library_call_value_1): Likewise.
3114         * expr.h (locate_and_pad_parm): Update prototype.
3116         Backport from mainline r204797:
3118         2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3120         * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL
3121         arguments.
3123         Backport from mainline r197003:
3125         2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
3127         * calls.c (expand_call): Add missing guard to code handling return
3128         of non-BLKmode structures in MSB.
3129         * function.c (expand_function_end): Likewise.
3131 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3133         Backport from mainline r201750.
3134         Note: Default setting of -mcompat-align-parm inverted!
3136         2013-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3138         PR target/57949
3139         * doc/invoke.texi: Add documentation of mcompat-align-parm
3140         option.
3141         * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
3142         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
3143         and Linux, correct BLKmode alignment when 128-bit alignment is
3144         required and compatibility flag is not set.
3145         (rs6000_gimplify_va_arg): For AIX and Linux, honor specified
3146         alignment for zero-size arguments when compatibility flag is not
3147         set.
3149 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3151         Little Endian Vector Support
3152         Backport from mainline r205333
3153         2013-11-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3155         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct
3156         for little endian.
3158         Backport from mainline r205241
3159         2013-11-21  Bill Schmidt  <wschmidt@vnet.ibm.com>
3161         * config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous
3162         little endian change.
3163         (vec_pack_sfix_trunc_v2df): Likewise.
3164         (vec_pack_ufix_trunc_v2df): Likewise.
3165         * config/rs6000/rs6000.c (rs6000_expand_interleave): Correct
3166         double checking of endianness.
3168         Backport from mainline r205146
3169         2013-11-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3171         * config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian.
3172         (vsx_extract_<mode>): Likewise.
3173         (*vsx_extract_<mode>_one_le): New LE variant on
3174         *vsx_extract_<mode>_zero.
3175         (vsx_extract_v4sf): Adjust for little endian.
3177         Backport from mainline r205080
3178         2013-11-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3180         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust
3181         V16QI vector splat case for little endian.
3183         Backport from mainline r205045:
3185         2013-11-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3187         * config/rs6000/vector.md ("mov<mode>"): Do not call
3188         rs6000_emit_le_vsx_move to move into or out of GPRs.
3189         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
3190         source and destination are not GPR hard regs.
3192         Backport from mainline r204920
3193         2011-11-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3195         * config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg
3196         parameter and use it in REG_FRAME_RELATED_EXPR note.
3197         (emit_frame_save): Call rs6000_frame_related with extra NULL_RTX
3198         parameter.
3199         (rs6000_emit_prologue): Likewise, but for little endian VSX
3200         stores, pass the source register of the store instead.
3202         Backport from mainline r204862
3203         2013-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3205         * config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X):
3206         Remove.
3207         (altivec_vperm_<mode>): Revert earlier little endian change.
3208         (*altivec_vperm_<mode>_internal): Remove.
3209         (altivec_vperm_<mode>_uns): Revert earlier little endian change.
3210         (*altivec_vperm_<mode>_uns_internal): Remove.
3211         * config/rs6000/vector.md (vec_realign_load_<mode>): Revise
3212         commentary.
3214         Backport from mainline r204441
3215         2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3217         * config/rs6000/rs6000.c (rs6000_option_override_internal):
3218         Remove restriction against use of VSX instructions when generating
3219         code for little endian mode.
3221         Backport from mainline r204440
3222         2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3224         * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh
3225         for both big and little endian.
3226         (mulv8hi3): Swap input operands for merge high and merge low
3227         instructions for little endian.
3229         Backport from mainline r204439
3230         2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3232         * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change
3233         define_insn to define_expand that uses even patterns for big
3234         endian and odd patterns for little endian.
3235         (vec_widen_smult_even_v16qi): Likewise.
3236         (vec_widen_umult_even_v8hi): Likewise.
3237         (vec_widen_smult_even_v8hi): Likewise.
3238         (vec_widen_umult_odd_v16qi): Likewise.
3239         (vec_widen_smult_odd_v16qi): Likewise.
3240         (vec_widen_umult_odd_v8hi): Likewise.
3241         (vec_widen_smult_odd_v8hi): Likewise.
3242         (altivec_vmuleub): New define_insn.
3243         (altivec_vmuloub): Likewise.
3244         (altivec_vmulesb): Likewise.
3245         (altivec_vmulosb): Likewise.
3246         (altivec_vmuleuh): Likewise.
3247         (altivec_vmulouh): Likewise.
3248         (altivec_vmulesh): Likewise.
3249         (altivec_vmulosh): Likewise.
3251         Backport from mainline r204395
3252         2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3254         * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
3255         little endian.
3256         (vec_pack_ufix_trunc_v2df): Likewise.
3258         Backport from mainline r204363
3259         2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3261         * config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap
3262         arguments to merge instruction for little endian.
3263         (vec_widen_umult_lo_v16qi): Likewise.
3264         (vec_widen_smult_hi_v16qi): Likewise.
3265         (vec_widen_smult_lo_v16qi): Likewise.
3266         (vec_widen_umult_hi_v8hi): Likewise.
3267         (vec_widen_umult_lo_v8hi): Likewise.
3268         (vec_widen_smult_hi_v8hi): Likewise.
3269         (vec_widen_smult_lo_v8hi): Likewise.
3271         Backport from mainline r204350
3272         2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3274         * config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D):
3275         Replace the define_insn_and_split with a define_insn and two
3276         define_splits, with the split after reload re-permuting the source
3277         register to its original value.
3278         (*vsx_le_perm_store_<mode> for VSX_W): Likewise.
3279         (*vsx_le_perm_store_v8hi): Likewise.
3280         (*vsx_le_perm_store_v16qi): Likewise.
3282         Backport from mainline r204321
3283         2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3285         * config/rs6000/vector.md (vec_pack_trunc_v2df):  Adjust for
3286         little endian.
3288         Backport from mainline r204321
3289         2013-11-02  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
3291         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for
3292         little endian.
3294         Backport from mainline r203980
3295         2013-10-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3297         * config/rs6000/altivec.md (mulv8hi3): Adjust for little endian.
3299         Backport from mainline r203930
3300         2013-10-22  Bill Schmidt  <wschmidt@vnet.ibm.com>
3302         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
3303         meaning of merge-high and merge-low masks for little endian; avoid
3304         use of vector-pack masks for little endian for mismatched modes.
3306         Backport from mainline r203877
3307         2013-10-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3309         * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
3310         little endian.
3311         (vec_unpacku_hi_v8hi): Likewise.
3312         (vec_unpacku_lo_v16qi): Likewise.
3313         (vec_unpacku_lo_v8hi): Likewise.
3315         Backport from mainline r203863
3316         2013-10-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3318         * config/rs6000/rs6000.c (vspltis_constant): Make sure we check
3319         all elements for both endian flavors.
3321         Backport from mainline r203714
3322         2013-10-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3324         * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
3325         endianness.
3326         (vec_unpacks_lo_v4sf): Likewise.
3327         (vec_unpacks_float_hi_v4si): Likewise.
3328         (vec_unpacks_float_lo_v4si): Likewise.
3329         (vec_unpacku_float_hi_v4si): Likewise.
3330         (vec_unpacku_float_lo_v4si): Likewise.
3332         Backport from mainline r203713
3333         2013-10-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3335         * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
3336         (vsx_concat_v2sf): Likewise.
3338         Backport from mainline r203458
3339         2013-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3341         * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
3342         handle vector float as well.
3343         (*vsx_le_perm_load_v4si): Likewise.
3344         (*vsx_le_perm_store_v2di): Likewise.
3345         (*vsx_le_perm_store_v4si): Likewise.
3347         Backport from mainline r203457
3348         2013-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3350         * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
3351         directly to circumvent subtract from splat{31} workaround.
3352         * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
3353         prototype.
3354         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
3355         * config/rs6000/altivec.md (define_c_enum "unspec"): Add
3356         UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
3357         (altivec_vperm_<mode>): Convert to define_insn_and_split to
3358         separate big and little endian logic.
3359         (*altivec_vperm_<mode>_internal): New define_insn.
3360         (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
3361         separate big and little endian logic.
3362         (*altivec_vperm_<mode>_uns_internal): New define_insn.
3363         (vec_permv16qi): Add little endian logic.
3365         Backport from mainline r203247
3366         2013-10-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3368         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
3369         (altivec_expand_vec_perm_const): Call it.
3371         Backport from mainline r203246
3372         2013-10-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3374         * config/rs6000/vector.md (mov<mode>): Emit permuted move
3375         sequences for LE VSX loads and stores at expand time.
3376         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
3377         prototype.
3378         * config/rs6000/rs6000.c (rs6000_const_vec): New.
3379         (rs6000_gen_le_vsx_permute): New.
3380         (rs6000_gen_le_vsx_load): New.
3381         (rs6000_gen_le_vsx_store): New.
3382         (rs6000_gen_le_vsx_move): New.
3383         * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
3384         (*vsx_le_perm_load_v4si): New.
3385         (*vsx_le_perm_load_v8hi): New.
3386         (*vsx_le_perm_load_v16qi): New.
3387         (*vsx_le_perm_store_v2di): New.
3388         (*vsx_le_perm_store_v4si): New.
3389         (*vsx_le_perm_store_v8hi): New.
3390         (*vsx_le_perm_store_v16qi): New.
3391         (*vsx_xxpermdi2_le_<mode>): New.
3392         (*vsx_xxpermdi4_le_<mode>): New.
3393         (*vsx_xxpermdi8_le_V8HI): New.
3394         (*vsx_xxpermdi16_le_V16QI): New.
3395         (*vsx_lxvd2x2_le_<mode>): New.
3396         (*vsx_lxvd2x4_le_<mode>): New.
3397         (*vsx_lxvd2x8_le_V8HI): New.
3398         (*vsx_lxvd2x16_le_V16QI): New.
3399         (*vsx_stxvd2x2_le_<mode>): New.
3400         (*vsx_stxvd2x4_le_<mode>): New.
3401         (*vsx_stxvd2x8_le_V8HI): New.
3402         (*vsx_stxvd2x16_le_V16QI): New.
3404         Backport from mainline r201235
3405         2013-07-24  Bill Schmidt  <wschmidt@linux.ibm.com>
3406                     Anton Blanchard <anton@au1.ibm.com>
3408         * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
3409         (altivec_vpks<VI_char>ss): Likewise.
3410         (altivec_vpks<VI_char>us): Likewise.
3411         (altivec_vpku<VI_char>us): Likewise.
3412         (altivec_vpku<VI_char>um): Likewise.
3414         Backport from mainline r201208
3415         2013-07-24  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
3416                     Anton Blanchard <anton@au1.ibm.com>
3418         * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
3419         operands to vperm for little endian.
3420         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
3421         of lvsl to create the control mask for a vperm for little endian.
3423         Backport from mainline r201195
3424         2013-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3425                     Anton Blanchard <anton@au1.ibm.com>
3427         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
3428         two operands for little-endian.
3430         Backport from mainline r201193
3431         2013-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3432                     Anton Blanchard <anton@au1.ibm.com>
3434         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
3435         selection of field for vector splat in little endian mode.
3437         Backport from mainline r201149
3438         2013-07-22  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
3439                     Anton Blanchard <anton@au1.ibm.com>
3441         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
3442         endianness when selecting field to splat.
3444 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3446         Backport from mainline r205123:
3448         2013-11-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3450         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not
3451         allow subregs of TDmode in FPRs of smaller size in little-endian.
3452         (rs6000_split_multireg_move): When splitting an access to TDmode
3453         in FPRs, do not use simplify_gen_subreg.
3455         Backport from mainline r204927:
3457         2013-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3459         * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
3460         sdmode_stack_slot also in little-endian mode.
3462 2014-04-04  Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3464         Power8 HTM Support
3465         Backport from mainline
3466         2013-12-03  Peter Bergner  <bergner@vnet.ibm.com>
3468         * config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix
3469         typo in macro name.
3470         (_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise.
3472         Backport from mainline r205233.
3473         2013-11-21  Peter Bergner  <bergner@vnet.ibm.com>
3475         * doc/extend.texi: Document htm builtins.
3477         Backport from mainline
3478         2013-07-17  Iain Sandoe  <iain@codesourcery.com>
3480         * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
3482         Backport from mainline
3483         2013-07-16  Peter Bergner <bergner@vnet.ibm.com>
3485         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
3486         enable extra ISA flags with TARGET_HTM.
3488         2013-07-16  Jakub Jelinek  <jakub@redhat.com>
3489                     Peter Bergner  <bergner@vnet.ibm.com>
3491         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
3492         registers in the comment.
3493         (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
3494         (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
3495         rather than FIRST_PSEUDO_REGISTERS.
3497         * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
3498         * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
3499         * config/rs6000/rs6000.opt: Add -mhtm option.
3500         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
3501         (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
3502         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3503         __HTM__ if the HTM instructions are available.
3504         * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand)
3505         (htm_spr_reg_operand): New define_predicates.
3506         * config/rs6000/rs6000.md (define_attr "type"): Add htm.
3507         (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
3508         Include htm.md.
3509         * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2)
3510         (BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
3511         HTM builtin functions.
3512         * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
3513         (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
3514         (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
3515         (rs6000_builtin_mask_calculate): Likewise.
3516         (rs6000_option_override_internal): Likewise.
3517         (bdesc_htm): Add new HTM builtin support.
3518         (htm_spr_num): New function.
3519         (htm_spr_regno): Likewise.
3520         (rs6000_htm_spr_icode): Likewise.
3521         (htm_expand_builtin): Likewise.
3522         (htm_init_builtins): Likewise.
3523         (rs6000_expand_builtin): Add support for HTM builtin functions.
3524         (rs6000_init_builtins): Likewise.
3525         (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm option.
3526         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
3527         (TARGET_HTM, MASK_HTM): Define macros.
3528         (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
3529         (FIXED_REGISTERS): Likewise.
3530         (CALL_USED_REGISTERS): Likewise.
3531         (CALL_REALLY_USED_REGISTERS): Likewise.
3532         (REG_ALLOC_ORDER): Likewise.
3533         (enum reg_class): Likewise.
3534         (REG_CLASS_NAMES): Likewise.
3535         (REG_CLASS_CONTENTS): Likewise.
3536         (REGISTER_NAMES): Likewise.
3537         (ADDITIONAL_REGISTER_NAMES): Likewise.
3538         (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT)
3539         (RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
3540         (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
3541         * config/rs6000/htm.md: New file.
3542         * config/rs6000/htmintrin.h: New file.
3543         * config/rs6000/htmxlintrin.h: New file.
3545 2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3547         Power8 Base Support
3548         Apply mainline
3549         2013-11-23  Alan Modra  <amodra@gmail.com>
3550         * config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.
3552         Backport from mainline
3553         2013-11-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
3555         PR target/59054
3556         * config/rs6000/rs6000.md (movdi_internal32): Eliminate
3557         constraints that would allow DImode into the traditional Altivec
3558         registers, but cause undesirable code generation when loading 0 as
3559         a constant.
3560         (movdi_internal64): Likewise.
3561         (cmp<mode>_fpr): Do not use %x for CR register output.
3562         (extendsfdf2_fpr): Fix constraints when -mallow-upper-df and
3563         -mallow-upper-sf debug switches are used.
3565         Backport from mainline
3566         2013-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
3568         * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
3569         fields to the reg_addr array that describes the valid addressing
3570         mode for any register, general purpose registers, floating point
3571         registers, and Altivec registers.
3572         (FIRST_RELOAD_REG_CLASS): Likewise.
3573         (LAST_RELOAD_REG_CLASS): Likewise.
3574         (struct reload_reg_map_type): Likewise.
3575         (reload_reg_map_type): Likewise.
3576         (RELOAD_REG_VALID): Likewise.
3577         (RELOAD_REG_MULTIPLE): Likewise.
3578         (RELOAD_REG_INDEXED): Likewise.
3579         (RELOAD_REG_OFFSET): Likewise.
3580         (RELOAD_REG_PRE_INCDEC): Likewise.
3581         (RELOAD_REG_PRE_MODIFY): Likewise.
3582         (reg_addr): Likewise.
3583         (mode_supports_pre_incdec_p): New helper functions to say whether
3584         a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
3585         (mode_supports_pre_modify_p): Likewise.
3586         (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
3587         print the valid address mode bits for each mode.
3588         (rs6000_debug_print_mode): Likewise.
3589         (rs6000_debug_reg_global): Likewise.
3590         (rs6000_setup_reg_addr_masks): New function to set up the address
3591         mask bits for each type.
3592         (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
3593         Call rs6000_setup_reg_addr_masks to set up the address mask bits.
3594         (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
3595         mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
3596         PRE_MODIFY are supported.
3597         (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
3598         registers, instead of {src,dest}_av_p.
3599         (rs6000_print_options_internal): Tweak the debug output slightly.
3601         Backport from mainline
3602         2013-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3604         * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
3605         ceildf2, btruncdf2, instead of vsx_* name.
3607         * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
3608         iterators to only do V2DF and V4SF here.  Move the DF code to
3609         rs6000.md where it is combined with SF mode.  Replace <VSv> with
3610         just 'v' since only vector operations are handled with these insns
3611         after moving the DF support to rs6000.md.
3612         (vsx_sub<mode>3): Likewise.
3613         (vsx_mul<mode>3): Likewise.
3614         (vsx_div<mode>3): Likewise.
3615         (vsx_fre<mode>2): Likewise.
3616         (vsx_neg<mode>2): Likewise.
3617         (vsx_abs<mode>2): Likewise.
3618         (vsx_nabs<mode>2): Likewise.
3619         (vsx_smax<mode>3): Likewise.
3620         (vsx_smin<mode>3): Likewise.
3621         (vsx_sqrt<mode>2): Likewise.
3622         (vsx_rsqrte<mode>2): Likewise.
3623         (vsx_fms<mode>4): Likewise.
3624         (vsx_nfma<mode>4): Likewise.
3625         (vsx_copysign<mode>3): Likewise.
3626         (vsx_btrunc<mode>2): Likewise.
3627         (vsx_floor<mode>2): Likewise.
3628         (vsx_ceil<mode>2): Likewise.
3629         (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
3630         (vsx_sminsf3): Likewise.
3631         (vsx_fmadf4): Likewise.
3632         (vsx_fmsdf4): Likewise.
3633         (vsx_nfmadf4): Likewise.
3634         (vsx_nfmsdf4): Likewise.
3635         (vsx_cmpdf_internal1): Likewise.
3637         * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
3638         simpler to select whether a target has SPE or traditional floating
3639         point support in iterators.
3640         (TARGET_DF_SPE): Likewise.
3641         (TARGET_SF_FPR): Likewise.
3642         (TARGET_DF_FPR): Likewise.
3643         (TARGET_SF_INSN): Macros to say whether floating point support
3644         exists for a given operation for expanders.
3645         (TARGET_DF_INSN): Likewise.
3647         * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
3648         combining of SF/DF mode operations, using both traditional and VSX
3649         registers.
3650         (Fvsx): Likewise.
3651         (Ff): Likewise.
3652         (Fv): Likewise.
3653         (Fs): Likewise.
3654         (Ffre): Likewise.
3655         (FFRE): Likewise.
3656         (abs<mode>2): Combine SF/DF modes using traditional floating point
3657         instructions.  Add support for using the upper DF registers with
3658         VSX support, and SF registers with power8-vector support.  Update
3659         expanders for operations supported by both the SPE and traditional
3660         floating point units.
3661         (abs<mode>2_fpr): Likewise.
3662         (nabs<mode>2): Likewise.
3663         (nabs<mode>2_fpr): Likewise.
3664         (neg<mode>2): Likewise.
3665         (neg<mode>2_fpr): Likewise.
3666         (add<mode>3): Likewise.
3667         (add<mode>3_fpr): Likewise.
3668         (sub<mode>3): Likewise.
3669         (sub<mode>3_fpr): Likewise.
3670         (mul<mode>3): Likewise.
3671         (mul<mode>3_fpr): Likewise.
3672         (div<mode>3): Likewise.
3673         (div<mode>3_fpr): Likewise.
3674         (sqrt<mode>3): Likewise.
3675         (sqrt<mode>3_fpr): Likewise.
3676         (fre<Fs>): Likewise.
3677         (rsqrt<mode>2): Likewise.
3678         (cmp<mode>_fpr): Likewise.
3679         (smax<mode>3): Likewise.
3680         (smin<mode>3): Likewise.
3681         (smax<mode>3_vsx): Likewise.
3682         (smin<mode>3_vsx): Likewise.
3683         (negsf2): Delete SF operations that are merged with DF.
3684         (abssf2): Likewise.
3685         (addsf3): Likewise.
3686         (subsf3): Likewise.
3687         (mulsf3): Likewise.
3688         (divsf3): Likewise.
3689         (fres): Likewise.
3690         (fmasf4_fpr): Likewise.
3691         (fmssf4_fpr): Likewise.
3692         (nfmasf4_fpr): Likewise.
3693         (nfmssf4_fpr): Likewise.
3694         (sqrtsf2): Likewise.
3695         (rsqrtsf_internal1): Likewise.
3696         (smaxsf3): Likewise.
3697         (sminsf3): Likewise.
3698         (cmpsf_internal1): Likewise.
3699         (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
3700         (negdf2): Delete DF operations that are merged with SF.
3701         (absdf2): Likewise.
3702         (nabsdf2): Likewise.
3703         (adddf3): Likewise.
3704         (subdf3): Likewise.
3705         (muldf3): Likewise.
3706         (divdf3): Likewise.
3707         (fred): Likewise.
3708         (rsqrtdf_internal1): Likewise.
3709         (fmadf4_fpr): Likewise.
3710         (fmsdf4_fpr): Likewise.
3711         (nfmadf4_fpr): Likewise.
3712         (nfmsdf4_fpr): Likewise.
3713         (sqrtdf2): Likewise.
3714         (smaxdf3): Likewise.
3715         (smindf3): Likewise.
3716         (cmpdf_internal1): Likewise.
3717         (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
3718         (btrunc<mode>2): Delete separate expander, and combine with the
3719         insn and add VSX instruction support.  Use TARGET_<MODE>_FPR.
3720         (btrunc<mode>2_fpr): Likewise.
3721         (ceil<mode>2): Likewise.
3722         (ceil<mode>2_fpr): Likewise.
3723         (floor<mode>2): Likewise.
3724         (floor<mode>2_fpr): Likewise.
3725         (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
3726         Add support for using the upper registers with VSX and
3727         power8-vector.  Move insns to be closer to the define_expands. On
3728         VSX systems, prefer the traditional form of FMA over the VSX
3729         version, since the traditional form allows the target not to
3730         overlap with the inputs.
3731         (fms<mode>4_fpr): Likewise.
3732         (nfma<mode>4_fpr): Likewise.
3733         (nfms<mode>4_fpr): Likewise.
3735         Backport from mainline
3736         2013-09-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
3738         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
3739         DFmode, DImode, and SFmode in the upper VSX registers based on the
3740         -mupper-regs-{df,sf} flags.  Fix wu constraint to be ALTIVEC_REGS
3741         if -mpower8-vector.  Combine -mvsx-timode handling with the rest
3742         of the VSX register handling.
3744         * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
3745         (f32_sv): Likewise.
3746         (zero_extendsidi2_lfiwzx): Add support for loading into the
3747         Altivec registers with -mpower8-vector.  Use wu/wv constraints to
3748         only do VSX memory options on Altivec registers.
3749         (extendsidi2_lfiwax): Likewise.
3750         (extendsfdf2_fpr): Likewise.
3751         (mov<mode>_hardfloat, SF/SD modes): Likewise.
3752         (mov<mode>_hardfloat32, DF/DD modes): Likewise.
3753         (mov<mode>_hardfloat64, DF/DD modes): Likewise.
3754         (movdi_internal64): Likewise.
3756         Backport from mainline
3757         2013-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3759         * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
3760         reload helper function arrays into a single array reg_addr.
3761         (reload_fpr_gpr): Likewise.
3762         (reload_gpr_vsx): Likewise.
3763         (reload_vsx_gpr): Likewise.
3764         (struct rs6000_reg_addr): Likewise.
3765         (reg_addr): Likewise.
3766         (rs6000_debug_reg_global): Change rs6000_vector_reload,
3767         reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
3768         (rs6000_init_hard_regno_mode_ok): Likewise.
3769         (rs6000_secondary_reload_direct_move): Likewise.
3770         (rs6000_secondary_reload): Likewise.
3772         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
3773         constraints: wu, ww, and wy.  Repurpose wv constraint added during
3774         power8 changes.  Put wg constraint in alphabetical order.
3776         * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
3777         for future work to add ISA 2.07 VSX single precision support.
3778         (-mvsx-scalar-double): Change default from -1 to 1, update
3779         documentation comment.
3780         (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
3781         (-mupper-regs-df): New debug switch to control whether DF values
3782         can go in the traditional Altivec registers.
3783         (-mupper-regs-sf): New debug switch to control whether SF values
3784         can go in the traditional Altivec registers.
3786         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
3787         and wy constraints.
3788         (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
3789         loop variables.  Rename -mvsx-scalar-memory to -mupper-regs-df.
3790         Add new constraints, wu/ww/wy.  Repurpose wv constraint.
3791         (rs6000_debug_legitimate_address_p): Print if we are running
3792         before, during, or after reload.
3793         (rs6000_secondary_reload): Add a comment.
3794         (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
3796         * config/rs6000/constraints.md (wa constraint): Sort w<x>
3797         constraints.  Update documentation string.
3798         (wd constraint): Likewise.
3799         (wf constraint): Likewise.
3800         (wg constraint): Likewise.
3801         (wn constraint): Likewise.
3802         (ws constraint): Likewise.
3803         (wt constraint): Likewise.
3804         (wx constraint): Likewise.
3805         (wz constraint): Likewise.
3806         (wu constraint): New constraint for ISA 2.07 SFmode scalar
3807         instructions.
3808         (ww constraint): Likewise.
3809         (wy constraint): Likewise.
3810         (wv constraint): Repurpose ISA 2.07 constraint that did not use in
3811         the previous submissions.
3812         * doc/md.texi (PowerPC and IBM RS6000): Likewise.
3814         Backport from mainline
3815         2013-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
3817         PR target/58673
3818         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
3819         restrict TImode addresses to single indirect registers if both
3820         -mquad-memory and -mvsx-timode are used.
3821         (rs6000_output_move_128bit): Use quad_load_store_p to determine if
3822         we should emit load/store quad.  Remove using %y for quad memory
3823         addresses.
3825         * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
3826         constraints to allow load/store quad on machines where TImode is
3827         not allowed in VSX registers.  Use 'n' instead of 'F' constraint
3828         for TImode to load integer constants.
3830         Backport from mainline
3831         2013-10-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3833         PR target/58587
3834         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
3835         setting -mvsx-timode by default until the underlying problem is
3836         fixed.
3837         (RS6000_CPU, power7 defaults): Likewise.
3839         Backport from trunk
3840         2013-08-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
3842         PR target/58160
3843         * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
3844         memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
3846         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
3847         array instead of each individual operand as a separate argument.
3848         (emit_fusion_gpr_load): Likewise.
3849         (expand_fusion_gpr_load): Add new function declaration.
3851         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
3852         signature to have the operands passed as an array, instead of as
3853         separate arguments.  Allow ZERO_EXTEND to be in the memory
3854         address, and also SIGN_EXTEND if -mpower8-fusion-sign.  Do not
3855         depend on the register live/dead flags when peepholes are run.
3856         (expand_fusion_gpr_load): New function to be called from the
3857         peephole2 pass, to change the register that addis sets to be the
3858         target register.
3859         (emit_fusion_gpr_load): Change the calling signature to have the
3860         operands passed as an array, instead of as separate arguments.
3861         Allow ZERO_EXTEND to be in the memory address, and also
3862         SIGN_EXTEND if -mpower8-fusion-sign.
3864         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
3865         unspec enumeration.
3866         (power8 fusion peephole/peephole2): Rework the fusion peepholes to
3867         adjust the register addis loads up in the peephole2 pass.  Do not
3868         depend on the register live/dead state when the peephole pass is
3869         done.
3871         Backport from trunk
3872         2013-07-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3874         * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
3875         expanders to rs6000.md.
3876         (ior<mode>3): Likewise.
3877         (and<mode>3): Likewise.
3878         (one_cmpl<mode>2): Likewise.
3879         (nor<mode>3): Likewise.
3880         (andc<mode>3): Likewise.
3881         (eqv<mode>3): Likewise.
3882         (nand<mode>3): Likewise.
3883         (orc<mode>3): Likewise.
3885         * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
3886         declaration.
3888         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
3889         to split multi-word logical operations.
3890         (rs6000_split_logical_di): Likewise.
3891         (rs6000_split_logical): Likewise.
3893         * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
3894         (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
3895         and allow TImode operations in 32-bit.
3896         (vsx_and<mode>3_64bit): Likewise.
3897         (vsx_ior<mode>3_32bit): Likewise.
3898         (vsx_ior<mode>3_64bit): Likewise.
3899         (vsx_xor<mode>3_32bit): Likewise.
3900         (vsx_xor<mode>3_64bit): Likewise.
3901         (vsx_one_cmpl<mode>2_32bit): Likewise.
3902         (vsx_one_cmpl<mode>2_64bit): Likewise.
3903         (vsx_nor<mode>3_32bit): Likewise.
3904         (vsx_nor<mode>3_64bit): Likewise.
3905         (vsx_andc<mode>3_32bit): Likewise.
3906         (vsx_andc<mode>3_64bit): Likewise.
3907         (vsx_eqv<mode>3_32bit): Likewise.
3908         (vsx_eqv<mode>3_64bit): Likewise.
3909         (vsx_nand<mode>3_32bit): Likewise.
3910         (vsx_nand<mode>3_64bit): Likewise.
3911         (vsx_orc<mode>3_32bit): Likewise.
3912         (vsx_orc<mode>3_64bit): Likewise.
3914         * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
3915         logical types in GPRs.
3917         * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
3918         logical insns to rs6000.md, and allow TImode operations in
3919         32-bit.
3920         (altivec_ior<mode>3): Likewise.
3921         (altivec_xor<mode>3): Likewise.
3922         (altivec_one_cmpl<mode>2): Likewise.
3923         (altivec_nor<mode>3): Likewise.
3924         (altivec_andc<mode>3): Likewise.
3926         * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
3927         attributes for moving the 128-bit logical operations into
3928         rs6000.md.
3929         (BOOL_REGS_OUTPUT): Likewise.
3930         (BOOL_REGS_OP1): Likewise.
3931         (BOOL_REGS_OP2): Likewise.
3932         (BOOL_REGS_UNARY): Likewise.
3933         (BOOL_REGS_AND_CR0): Likewise.
3934         (one_cmpl<mode>2): Add support for DI logical operations on
3935         32-bit, splitting the operations to 32-bit.
3936         (anddi3): Likewise.
3937         (iordi3): Likewise.
3938         (xordi3): Likewise.
3939         (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
3940         changes to combine the 32/64-bit code, allow logical operations on
3941         TI mode in 32-bit, and to use similar match_operator patterns like
3942         scalar mode uses.  Combine the Altivec and VSX code for logical
3943         operations, and move it here.
3944         (ior<mode>3, 128-bit types): Likewise.
3945         (xor<mode>3, 128-bit types): Likewise.
3946         (one_cmpl<mode>3, 128-bit types): Likewise.
3947         (nor<mode>3, 128-bit types): Likewise.
3948         (andc<mode>3, 128-bit types): Likewise.
3949         (eqv<mode>3, 128-bit types): Likewise.
3950         (nand<mode>3, 128-bit types): Likewise.
3951         (orc<mode>3, 128-bit types): Likewise.
3952         (and<mode>3_internal): Likewise.
3953         (bool<mode>3_internal): Likewise.
3954         (boolc<mode>3_internal1): Likewise.
3955         (boolc<mode>3_internal2): Likewise.
3956         (boolcc<mode>3_internal1): Likewise.
3957         (boolcc<mode>3_internal2): Likewise.
3958         (eqv<mode>3_internal1): Likewise.
3959         (eqv<mode>3_internal2): Likewise.
3960         (one_cmpl1<mode>3_internal): Likewise.
3962         Back port from mainline:
3963         2013-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3964                     Pat Haugen <pthaugen@us.ibm.com>
3965                     Peter Bergner <bergner@vnet.ibm.com>
3967         * lib/target-supports.exp (check_p8vector_hw_available) Add power8
3968         support.
3969         (check_effective_target_powerpc_p8vector_ok): Likewise.
3970         (is-effective-target): Likewise.
3971         (check_vect_support_and_set_flags): Likewise.
3973         Backport from mainline
3974         2013-07-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3976         * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
3977         to support power8 load fusion.
3978         (fusion_gpr_mem_load): Likewise.
3980         * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
3982         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
3983         declarations for power8 load fusion.
3984         (emit_fusion_gpr_load): Likewise.
3986         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
3987         tuning for power8, turn on fusion mode by default.  Turn on sign
3988         extending fusion mode if normal fusion mode is on, and we are at
3989         -O2 or -O3.
3990         (fusion_gpr_load_p): New function, return true if we can fuse an
3991         addis instruction with a dependent load to a GPR.
3992         (emit_fusion_gpr_load): Emit the instructions for power8 load
3993         fusion to GPRs.
3995         * config/rs6000/vsx.md (VSX_M2): New iterator for fusion
3996         peepholes.
3997         (VSX load fusion peepholes): New peepholes to fuse together an
3998         addi instruction with a VSX load instruction.
4000         * config/rs6000/rs6000.md (GPR load fusion peepholes): New
4001         peepholes to fuse an addis instruction with a load to a GPR base
4002         register.  If we are supporting sign extending fusions, convert
4003         sign extending loads to zero extending loads and add an explicit
4004         sign extension.
4006         Backport from mainline
4007         2013-07-18  Pat Haugen <pthaugen@us.ibm.com>
4009         * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
4010         interaction for new Power8 flags and VSX.
4012         Back port from the trunk
4013         2013-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
4015         PR target/57744
4016         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
4017         to tie with any other modes.  Eliminate Altivec vector mode tests,
4018         since these are a subset of ALTIVEC or VSX vector modes.  Simplify
4019         code, to return 0 if testing MODE2 for a condition, if we've
4020         already tested MODE1 for the same condition.
4022         Backport from mainline
4023         2013-06-28  Pat Haugen <pthaugen@us.ibm.com>
4025         * config/rs6000/rs6000.md (define_insn ""): Fix insn type.
4027         Back port from the trunk
4028         2013-06-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4029                     Pat Haugen <pthaugen@us.ibm.com>
4030                     Peter Bergner <bergner@vnet.ibm.com>
4032         * config/rs6000/power8.md: New.
4033         * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
4034         setting for power8 entry.
4035         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
4036         * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
4037         test for Power4/Power5 only.
4038         (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
4039         support.
4040         (force_new_group): Adjust comment.
4041         * config/rs6000/rs6000.md: Include power8.md.
4043         Back port from the trunk
4044         2013-06-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4046         PR target/57615
4047         * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
4048         rs6000_output_move_128bit to handle emitting quad memory
4049         operations.  Set attribute length to 8 bytes.
4051         Back port from the trunk
4052         2013-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
4054         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
4055         test for clearing quad memory on 32-bit later.
4057         Back port from the trunk
4059         2013-06-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4060                     Pat Haugen <pthaugen@us.ibm.com>
4061                     Peter Bergner <bergner@vnet.ibm.com>
4063         * config/rs6000/rs6000.c (emit_load_locked): Add support for
4064         power8 byte, half-word, and quad-word atomic instructions.
4065         (emit_store_conditional): Likewise.
4066         (rs6000_expand_atomic_compare_and_swap): Likewise.
4067         (rs6000_expand_atomic_op): Likewise.
4069         * config/rs6000/sync.md (larx): Add new modes for power8.
4070         (stcx): Likewise.
4071         (AINT): New mode iterator to include TImode as well as normal
4072         integer modes on power8.
4073         (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
4074         that VSX registers are not considered.  Use AINT mode iterator
4075         instead of INT1 to allow inclusion of quad word atomic operations
4076         on power8.
4077         (load_locked<mode>): Likewise.
4078         (store_conditional<mode>): Likewise.
4079         (atomic_compare_and_swap<mode>): Likewise.
4080         (atomic_exchange<mode>): Likewise.
4081         (atomic_nand<mode>): Likewise.
4082         (atomic_fetch_<fetchop_name><mode>): Likewise.
4083         (atomic_nand_fetch<mode>): Likewise.
4084         (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
4085         each type.
4086         (ATOMIC): On power8, add QImode, HImode modes.
4087         (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
4088         modes that promote to SImode.
4089         (load_lockedti): Convert TImode arguments to PTImode, so that we
4090         get a guaranteed even/odd register pair.
4091         (load_lockedpti): Likewise.
4092         (store_conditionalti): Likewise.
4093         (store_conditionalpti): Likewise.
4095         * config/rs6000/rs6000.md (QHI): New mode iterator for power8
4096         atomic load/store instructions.
4097         (HSI): Likewise.
4099         Back port from the trunk
4101         2013-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
4102                     Pat Haugen <pthaugen@us.ibm.com>
4103                     Peter Bergner <bergner@vnet.ibm.com>
4105         * config/rs6000/vector.md (GPR move splitter): Do not split moves
4106         of vectors in GPRS if they are direct moves or quad word load or
4107         store moves.
4109         * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
4110         declaration.
4111         (direct_move_p): Likewise.
4112         (quad_load_store_p): Likewise.
4114         * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
4115         classes into bins based on the physical register type.
4116         (reg_class_to_reg_type): Likewise.
4117         (IS_STD_REG_TYPE): Likewise.
4118         (IS_FP_VECT_REG_TYPE): Likewise.
4119         (reload_fpr_gpr): Arrays to determine what insn to use if we can
4120         use direct move instructions.
4121         (reload_gpr_vsx): Likewise.
4122         (reload_vsx_gpr): Likewise.
4123         (rs6000_init_hard_regno_mode_ok): Precalculate the register type
4124         information that is a simplification of register classes.  Also
4125         precalculate direct move reload helpers.
4126         (direct_move_p): New function to return true if the operation can
4127         be done as a direct move instruciton.
4128         (quad_load_store_p): New function to return true if the operation
4129         is a quad memory operation.
4130         (rs6000_legitimize_address): If quad memory, only allow register
4131         indirect for TImode addresses.
4132         (rs6000_legitimate_address_p): Likewise.
4133         (enum reload_reg_type): Delete, replace with rs6000_reg_type.
4134         (rs6000_reload_register_type): Likewise.
4135         (register_to_reg_type): Return register type.
4136         (rs6000_secondary_reload_simple_move): New helper function for
4137         secondary reload and secondary memory needed to identify anything
4138         that is a simple move, and does not need reloading.
4139         (rs6000_secondary_reload_direct_move): New helper function for
4140         secondary reload to identify cases that can be done with several
4141         instructions via the direct move instructions.
4142         (rs6000_secondary_reload_move): New helper function for secondary
4143         reload to identify moves between register types that can be done.
4144         (rs6000_secondary_reload): Add support for quad memory operations
4145         and for direct move.
4146         (rs6000_secondary_memory_needed): Likewise.
4147         (rs6000_debug_secondary_memory_needed): Change argument names.
4148         (rs6000_output_move_128bit): New function to return the move to
4149         use for 128-bit moves, including knowing about the various
4150         limitations of quad memory operations.
4152         * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
4153         memory operations.  call rs6000_output_move_128bit for the actual
4154         instruciton(s) to generate.
4155         (vsx_movti_64bit): Likewise.
4157         * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
4158         (UNSPEC_P8V_MTVSRWZ): Likewise.
4159         (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
4160         (UNSPEC_P8V_MTVSRD): Likewise.
4161         (UNSPEC_P8V_XXPERMDI): Likewise.
4162         (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
4163         (UNSPEC_FUSION_GPR): Likewise.
4164         (FMOVE128_GPR): New iterator for direct move.
4165         (f32_lv): New mode attribute for load/store of SFmode/SDmode
4166         values.
4167         (f32_sv): Likewise.
4168         (f32_dm): Likewise.
4169         (zero_extend<mode>di2_internal1): Add support for power8 32-bit
4170         loads and direct move instructions.
4171         (zero_extendsidi2_lfiwzx): Likewise.
4172         (extendsidi2_lfiwax): Likewise.
4173         (extendsidi2_nocell): Likewise.
4174         (floatsi<mode>2_lfiwax): Likewise.
4175         (lfiwax): Likewise.
4176         (floatunssi<mode>2_lfiwzx): Likewise.
4177         (lfiwzx): Likewise.
4178         (fix_trunc<mode>_stfiwx): Likewise.
4179         (fixuns_trunc<mode>_stfiwx): Likewise.
4180         (mov<mode>_hardfloat, 32-bit floating point): Likewise.
4181         (mov<move>_hardfloat64, 64-bit floating point): Likewise.
4182         (parity<mode>2_cmpb): Set length/type attr.
4183         (unnamed shift right patterns, mov<mode>_internal2): Change type attr
4184         for 'mr.' to fast_compare.
4185         (bpermd_<mode>): Change type attr to popcnt.
4186         (p8_fmrgow_<mode>): New insns for power8 direct move support.
4187         (p8_mtvsrwz_1): Likewise.
4188         (p8_mtvsrwz_2): Likewise.
4189         (reload_fpr_from_gpr<mode>): Likewise.
4190         (p8_mtvsrd_1): Likewise.
4191         (p8_mtvsrd_2): Likewise.
4192         (p8_xxpermdi_<mode>): Likewise.
4193         (reload_vsx_from_gpr<mode>): Likewise.
4194         (reload_vsx_from_gprsf): Likewise.
4195         (p8_mfvsrd_3_<mode>): LIkewise.
4196         (reload_gpr_from_vsx<mode>): Likewise.
4197         (reload_gpr_from_vsxsf): Likewise.
4198         (p8_mfvsrd_4_disf): Likewise.
4199         (multi-word GPR splits): Do not split direct moves or quad memory
4200         operations.
4202         Backport from the trunk
4204         2013-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
4205                     Pat Haugen <pthaugen@us.ibm.com>
4206                     Peter Bergner <bergner@vnet.ibm.com>
4208         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
4209         Document new power8 builtins.
4211         * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
4212         condition code register, to allow 128-bit logical operations to be
4213         done in the VSX or GPR registers.
4214         (nor<mode>3): Use the canonical form for nor.
4215         (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
4216         vclz*, and vpopcnt* vector instructions.
4217         (nand<mode>3): Likewise.
4218         (orc<mode>3): Likewise.
4219         (clz<mode>2): LIkewise.
4220         (popcount<mode>2): Likewise.
4222         * config/rs6000/predicates.md (int_reg_operand): Rework tests so
4223         that only the GPRs are recognized.
4225         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4226         support for new power8 builtins.
4228         * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
4229         builtin functions.
4230         (xscvdpspn): Likewise.
4231         (vclz): Likewise.
4232         (vclzb): Likewise.
4233         (vclzh): Likewise.
4234         (vclzw): Likewise.
4235         (vclzd): Likewise.
4236         (vpopcnt): Likewise.
4237         (vpopcntb): Likewise.
4238         (vpopcnth): Likewise.
4239         (vpopcntw): Likewise.
4240         (vpopcntd): Likewise.
4241         (vgbbd): Likewise.
4242         (vmrgew): Likewise.
4243         (vmrgow): Likewise.
4244         (eqv): Likewise.
4245         (eqv_v16qi3): Likewise.
4246         (eqv_v8hi3): Likewise.
4247         (eqv_v4si3): Likewise.
4248         (eqv_v2di3): Likewise.
4249         (eqv_v4sf3): Likewise.
4250         (eqv_v2df3): Likewise.
4251         (nand): Likewise.
4252         (nand_v16qi3): Likewise.
4253         (nand_v8hi3): Likewise.
4254         (nand_v4si3): Likewise.
4255         (nand_v2di3): Likewise.
4256         (nand_v4sf3): Likewise.
4257         (nand_v2df3): Likewise.
4258         (orc): Likewise.
4259         (orc_v16qi3): Likewise.
4260         (orc_v8hi3): Likewise.
4261         (orc_v4si3): Likewise.
4262         (orc_v2di3): Likewise.
4263         (orc_v4sf3): Likewise.
4264         (orc_v2df3): Likewise.
4266         * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
4267         allow power8 quad mode in 64-bit.
4268         (rs6000_builtin_vectorized_function): Add support to vectorize
4269         ISA 2.07 count leading zeros, population count builtins.
4270         (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
4271         V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
4272         (builtin_function_type): Add vgbbd builtin function which takes an
4273         unsigned argument.
4274         (altivec_expand_vec_perm_const): Add support for new power8 merge
4275         instructions.
4277         * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
4278         that does not include TImdoe for use with 32-bit.
4279         (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
4280         instructions.
4281         (UNSPEC_VSX_CVDPSPN): Likewise.
4282         (vsx_xscvdpspn): Likewise.
4283         (vsx_xscvspdpn): Likewise.
4284         (vsx_xscvdpspn_scalar): Likewise.
4285         (vsx_xscvspdpn_directmove): Likewise.
4286         (vsx_and<mode>3): Split logical operations into 32-bit and
4287         64-bit. Add support to do logical operations on TImode as well as
4288         VSX vector types.  Allow logical operations to be done in either
4289         VSX registers or in general purpose registers in 64-bit mode.  Add
4290         splitters if GPRs were used. For AND, add clobber of CCmode to
4291         allow use of ANDI on GPRs.  Rewrite nor to use the canonical RTL
4292         encoding.
4293         (vsx_and<mode>3_32bit): Likewise.
4294         (vsx_and<mode>3_64bit): Likewise.
4295         (vsx_ior<mode>3): Likewise.
4296         (vsx_ior<mode>3_32bit): Likewise.
4297         (vsx_ior<mode>3_64bit): Likewise.
4298         (vsx_xor<mode>3): Likewise.
4299         (vsx_xor<mode>3_32bit): Likewise.
4300         (vsx_xor<mode>3_64bit): Likewise.
4301         (vsx_one_cmpl<mode>2): Likewise.
4302         (vsx_one_cmpl<mode>2_32bit): Likewise.
4303         (vsx_one_cmpl<mode>2_64bit): Likewise.
4304         (vsx_nor<mode>3): Likewise.
4305         (vsx_nor<mode>3_32bit): Likewise.
4306         (vsx_nor<mode>3_64bit): Likewise.
4307         (vsx_andc<mode>3): Likewise.
4308         (vsx_andc<mode>3_32bit): Likewise.
4309         (vsx_andc<mode>3_64bit): Likewise.
4310         (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
4311         and xxlorc instructions.
4312         (vsx_eqv<mode>3_64bit): Likewise.
4313         (vsx_nand<mode>3_32bit): Likewise.
4314         (vsx_nand<mode>3_64bit): Likewise.
4315         (vsx_orc<mode>3_32bit): Likewise.
4316         (vsx_orc<mode>3_64bit): Likewise.
4318         * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
4320         * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
4321         instruction.
4322         (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
4323         (p8_vmrgow): Likewise.
4324         (altivec_and<mode>3): Add clobber of CCmode to allow AND using
4325         GPRs to be split under VSX.
4326         (p8v_clz<mode>2): Add power8 count leading zero support.
4327         (p8v_popcount<mode>2): Add power8 population count support.
4328         (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
4329         support.
4331         * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
4332         instruction.
4334         * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
4335         builtin functions.
4336         (vec_nand): Likewise.
4337         (vec_vclz): Likewise.
4338         (vec_vclzb): Likewise.
4339         (vec_vclzd): Likewise.
4340         (vec_vclzh): Likewise.
4341         (vec_vclzw): Likewise.
4342         (vec_vgbbd): Likewise.
4343         (vec_vmrgew): Likewise.
4344         (vec_vmrgow): Likewise.
4345         (vec_vpopcnt): Likewise.
4346         (vec_vpopcntb): Likewise.
4347         (vec_vpopcntd): Likewise.
4348         (vec_vpopcnth): Likewise.
4349         (vec_vpopcntw): Likewise.
4351         Backport from trunk
4353         2013-05-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
4354                     Pat Haugen <pthaugen@us.ibm.com>
4355                     Peter Bergner <bergner@vnet.ibm.com>
4357         * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
4358         instructions.
4359         (VEC_A): Likewise.
4360         (VEC_C): Likewise.
4361         (vrotl<mode>3): Likewise.
4362         (vashl<mode>3): Likewise.
4363         (vlshr<mode>3): Likewise.
4364         (vashr<mode>3): Likewise.
4366         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4367         support for power8 V2DI builtins.
4369         * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
4370         power8 V2DI builtins.
4371         (vupkhsw): Likewise.
4372         (vupklsw): Likewise.
4373         (vaddudm): Likewise.
4374         (vminsd): Likewise.
4375         (vmaxsd): Likewise.
4376         (vminud): Likewise.
4377         (vmaxud): Likewise.
4378         (vpkudum): Likewise.
4379         (vpksdss): Likewise.
4380         (vpkudus): Likewise.
4381         (vpksdus): Likewise.
4382         (vrld): Likewise.
4383         (vsld): Likewise.
4384         (vsrd): Likewise.
4385         (vsrad): Likewise.
4386         (vsubudm): Likewise.
4387         (vcmpequd): Likewise.
4388         (vcmpgtsd): Likewise.
4389         (vcmpgtud): Likewise.
4390         (vcmpequd_p): Likewise.
4391         (vcmpgtsd_p): Likewise.
4392         (vcmpgtud_p): Likewise.
4393         (vupkhsw): Likewise.
4394         (vupklsw): Likewise.
4395         (vaddudm): Likewise.
4396         (vmaxsd): Likewise.
4397         (vmaxud): Likewise.
4398         (vminsd): Likewise.
4399         (vminud): Likewise.
4400         (vpksdss): Likewise.
4401         (vpksdus): Likewise.
4402         (vpkudum): Likewise.
4403         (vpkudus): Likewise.
4404         (vrld): Likewise.
4405         (vsld): Likewise.
4406         (vsrad): Likewise.
4407         (vsrd): Likewise.
4408         (vsubudm): Likewise.
4410         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4411         support for power8 V2DI instructions.
4413         * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
4414         power8 V2DI instructions.  Combine pack and unpack insns to use an
4415         iterator for each mode.  Check whether a particular mode supports
4416         Altivec instructions instead of just checking TARGET_ALTIVEC.
4417         (UNSPEC_VPKUWUM): Likewise.
4418         (UNSPEC_VPKSHSS): Likewise.
4419         (UNSPEC_VPKSWSS): Likewise.
4420         (UNSPEC_VPKUHUS): Likewise.
4421         (UNSPEC_VPKSHUS): Likewise.
4422         (UNSPEC_VPKUWUS): Likewise.
4423         (UNSPEC_VPKSWUS): Likewise.
4424         (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
4425         (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
4426         (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
4427         (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
4428         (UNSPEC_VUPKHSB): Likewise.
4429         (UNSPEC_VUNPACK_HI_SIGN): Likewise.
4430         (UNSPEC_VUNPACK_LO_SIGN): Likewise.
4431         (UNSPEC_VUPKHSH): Likewise.
4432         (UNSPEC_VUPKLSB): Likewise.
4433         (UNSPEC_VUPKLSH): Likewise.
4434         (VI2): Likewise.
4435         (VI_char): Likewise.
4436         (VI_scalar): Likewise.
4437         (VI_unit): Likewise.
4438         (VP): Likewise.
4439         (VP_small): Likewise.
4440         (VP_small_lc): Likewise.
4441         (VU_char): Likewise.
4442         (add<mode>3): Likewise.
4443         (altivec_vaddcuw): Likewise.
4444         (altivec_vaddu<VI_char>s): Likewise.
4445         (altivec_vadds<VI_char>s): Likewise.
4446         (sub<mode>3): Likewise.
4447         (altivec_vsubcuw): Likewise.
4448         (altivec_vsubu<VI_char>s): Likewise.
4449         (altivec_vsubs<VI_char>s): Likewise.
4450         (altivec_vavgs<VI_char>): Likewise.
4451         (altivec_vcmpbfp): Likewise.
4452         (altivec_eq<mode>): Likewise.
4453         (altivec_gt<mode>): Likewise.
4454         (altivec_gtu<mode>): Likewise.
4455         (umax<mode>3): Likewise.
4456         (smax<mode>3): Likewise.
4457         (umin<mode>3): Likewise.
4458         (smin<mode>3): Likewise.
4459         (altivec_vpkuhum): Likewise.
4460         (altivec_vpkuwum): Likewise.
4461         (altivec_vpkshss): Likewise.
4462         (altivec_vpkswss): Likewise.
4463         (altivec_vpkuhus): Likewise.
4464         (altivec_vpkshus): Likewise.
4465         (altivec_vpkuwus): Likewise.
4466         (altivec_vpkswus): Likewise.
4467         (altivec_vpks<VI_char>ss): Likewise.
4468         (altivec_vpks<VI_char>us): Likewise.
4469         (altivec_vpku<VI_char>us): Likewise.
4470         (altivec_vpku<VI_char>um): Likewise.
4471         (altivec_vrl<VI_char>): Likewise.
4472         (altivec_vsl<VI_char>): Likewise.
4473         (altivec_vsr<VI_char>): Likewise.
4474         (altivec_vsra<VI_char>): Likewise.
4475         (altivec_vsldoi_<mode>): Likewise.
4476         (altivec_vupkhsb): Likewise.
4477         (altivec_vupkhs<VU_char>): Likewise.
4478         (altivec_vupkls<VU_char>): Likewise.
4479         (altivec_vupkhsh): Likewise.
4480         (altivec_vupklsb): Likewise.
4481         (altivec_vupklsh): Likewise.
4482         (altivec_vcmpequ<VI_char>_p): Likewise.
4483         (altivec_vcmpgts<VI_char>_p): Likewise.
4484         (altivec_vcmpgtu<VI_char>_p): Likewise.
4485         (abs<mode>2): Likewise.
4486         (vec_unpacks_hi_v16qi): Likewise.
4487         (vec_unpacks_hi_v8hi): Likewise.
4488         (vec_unpacks_lo_v16qi): Likewise.
4489         (vec_unpacks_hi_<VP_small_lc>): Likewise.
4490         (vec_unpacks_lo_v8hi): Likewise.
4491         (vec_unpacks_lo_<VP_small_lc>): Likewise.
4492         (vec_pack_trunc_v8h): Likewise.
4493         (vec_pack_trunc_v4si): Likewise.
4494         (vec_pack_trunc_<mode>): Likewise.
4496         * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
4497         V2DI builtins.
4498         (vec_vmaxsd): Likewise.
4499         (vec_vmaxud): Likewise.
4500         (vec_vminsd): Likewise.
4501         (vec_vminud): Likewise.
4502         (vec_vpksdss): Likewise.
4503         (vec_vpksdus): Likewise.
4504         (vec_vpkudum): Likewise.
4505         (vec_vpkudus): Likewise.
4506         (vec_vrld): Likewise.
4507         (vec_vsld): Likewise.
4508         (vec_vsrad): Likewise.
4509         (vec_vsrd): Likewise.
4510         (vec_vsubudm): Likewise.
4511         (vec_vupkhsw): Likewise.
4512         (vec_vupklsw): Likewise.
4514         2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
4515                     Pat Haugen <pthaugen@us.ibm.com>
4516                     Peter Bergner <bergner@vnet.ibm.com>
4518         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
4519         documentation for the power8 crypto builtins.
4521         * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
4523         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
4524         macros for defining power8 builtin functions.
4525         (BU_P8V_AV_2): Likewise.
4526         (BU_P8V_AV_P): Likewise.
4527         (BU_P8V_VSX_1): Likewise.
4528         (BU_P8V_OVERLOAD_1): Likewise.
4529         (BU_P8V_OVERLOAD_2): Likewise.
4530         (BU_CRYPTO_1): Likewise.
4531         (BU_CRYPTO_2): Likewise.
4532         (BU_CRYPTO_3): Likewise.
4533         (BU_CRYPTO_OVERLOAD_1): Likewise.
4534         (BU_CRYPTO_OVERLOAD_2): Likewise.
4535         (XSCVSPDP): Fix typo, point to the correct instruction.
4536         (VCIPHER): Add power8 crypto builtins.
4537         (VCIPHERLAST): Likewise.
4538         (VNCIPHER): Likewise.
4539         (VNCIPHERLAST): Likewise.
4540         (VPMSUMB): Likewise.
4541         (VPMSUMH): Likewise.
4542         (VPMSUMW): Likewise.
4543         (VPERMXOR_V2DI): Likewise.
4544         (VPERMXOR_V4SI: Likewise.
4545         (VPERMXOR_V8HI: Likewise.
4546         (VPERMXOR_V16QI: Likewise.
4547         (VSHASIGMAW): Likewise.
4548         (VSHASIGMAD): Likewise.
4549         (VPMSUM): Likewise.
4550         (VPERMXOR): Likewise.
4551         (VSHASIGMA): Likewise.
4553         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
4554         __CRYPTO__ if the crypto instructions are available.
4555         (altivec_overloaded_builtins): Add support for overloaded power8
4556         builtins.
4558         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
4559         support for power8 crypto builtins.
4560         (builtin_function_type): Likewise.
4561         (altivec_init_builtins): Add support for builtins that take vector
4562         long long (V2DI) arguments.
4564         * config/rs6000/crypto.md: New file, define power8 crypto
4565         instructions.
4567         2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
4568                     Pat Haugen <pthaugen@us.ibm.com>
4569                     Peter Bergner <bergner@vnet.ibm.com>
4571         * doc/invoke.texi (Option Summary): Add power8 options.
4572         (RS/6000 and PowerPC Options): Likewise.
4574         * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
4575         constraints.md instead of rs6000.h.  Reorder w* constraints.  Add
4576         wm, wn, wr documentation.
4578         * gcc/config/rs6000/constraints.md (wm): New constraint for VSX
4579         registers if direct move instructions are enabled.
4580         (wn): New constraint for no registers.
4581         (wq): New constraint for quad word even GPR registers.
4582         (wr): New constraint if 64-bit instructions are enabled.
4583         (wv): New constraint if power8 vector instructions are enabled.
4584         (wQ): New constraint for quad word memory locations.
4586         * gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
4587         constraint for 0..15 for crypto instructions.
4588         (gpc_reg_operand): If VSX allow registers in VSX registers as well
4589         as GPR and floating point registers.
4590         (int_reg_operand): New predicate to match only GPR registers.
4591         (base_reg_operand): New predicate to match base registers.
4592         (quad_int_reg_operand): New predicate to match even GPR registers
4593         for quad memory operations.
4594         (vsx_reg_or_cint_operand): New predicate to allow vector logical
4595         operations in both GPR and VSX registers.
4596         (quad_memory_operand): New predicate for quad memory operations.
4597         (reg_or_indexed_operand): New predicate for direct move support.
4599         * gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
4600         Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
4601         (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
4602         (POWERPC_MASKS): Add power8 options.
4603         (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
4604         various options.
4606         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
4607         Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
4609         * gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
4610         (-mpower8-fusion): New power8 options.
4611         (-mpower8-fusion-sign): Likewise.
4612         (-mpower8-vector): Likewise.
4613         (-mcrypto): Likewise.
4614         (-mdirect-move): Likewise.
4615         (-mquad-memory): Likewise.
4617         * gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
4618         power8.
4619         (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
4620         registers.
4621         (rs6000_debug_reg_print): Print the base register class if
4622         -mdebug=reg.
4623         (rs6000_debug_vector_unit): Add p8_vector.
4624         (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
4625         definitions.  Also print fusion state.
4626         (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
4627         (rs6000_builtin_mask_calculate): Add power8 builtin support.
4628         (rs6000_option_override_internal): Add support for power8.
4629         (rs6000_common_init_builtins): Add debugging for skipped builtins
4630         if -mdebug=builtin.
4631         (rs6000_adjust_cost): Add power8 support.
4632         (rs6000_issue_rate): Likewise.
4633         (insn_must_be_first_in_group): Likewise.
4634         (insn_must_be_last_in_group): Likewise.
4635         (force_new_group): Likewise.
4636         (rs6000_register_move_cost): Likewise.
4637         (rs6000_opt_masks): Likewise.
4639         * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
4640         power8 capable assembler, default to power7 options.
4641         (TARGET_DIRECT_MOVE): Likewise.
4642         (TARGET_CRYPTO): Likewise.
4643         (TARGET_P8_VECTOR): Likewise.
4644         (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
4645         (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
4646         (VECTOR_MEM_P8_VECTOR_P): Likewise.
4647         (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
4648         (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
4649         (TARGET_XSCVDPSPN): Likewise.
4650         (TARGET_XSCVSPDPN): Likewsie.
4651         (TARGET_SYNC_HI_QI): Likewise.
4652         (TARGET_SYNC_TI): Likewise.
4653         (MASK_CRYPTO): Likewise.
4654         (MASK_DIRECT_MOVE): Likewise.
4655         (MASK_P8_FUSION): Likewise.
4656         (MASK_P8_VECTOR): Likewise.
4657         (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the
4658         TFmode temporary used by some of the direct move instructions to
4659         get two FP temporary registers does not force creation of a stack
4660         frame.
4661         (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
4662         (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
4663         that any VSX registers are tieable, even if they are also an
4664         Altivec vector mode.
4665         (r6000_reg_class_enum): Add wm, wr, wv constraints.
4666         (RS6000_BTM_P8_VECTOR): Power8 builtin support.
4667         (RS6000_BTM_CRYPTO): Likewise.
4668         (RS6000_BTM_COMMON): Likewise.
4670         * config/rs6000/rs6000.md (cpu attribute): Add power8.
4671         * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
4672         (enum rs6000_vector): Add power8 vector support.
4675         Backport from mainline
4676         2013-03-20  Pat Haugen <pthaugen@us.ibm.com>
4678         * config/rs6000/predicates.md (indexed_address, update_address_mem
4679         update_indexed_address_mem): New predicates.
4680         * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
4681         attribute for load/store instructions.
4682         * config/rs6000/dfp.md (movsd_store): Likewise.
4683         (movsd_load): Likewise.
4684         * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
4685         (unnamed HI->DI extend define_insn): Likewise.
4686         (unnamed SI->DI extend define_insn): Likewise.
4687         (unnamed QI->SI extend define_insn): Likewise.
4688         (unnamed QI->HI extend define_insn): Likewise.
4689         (unnamed HI->SI extend define_insn): Likewise.
4690         (unnamed HI->SI extend define_insn): Likewise.
4691         (extendsfdf2_fpr): Likewise.
4692         (movsi_internal1): Likewise.
4693         (movsi_internal1_single): Likewise.
4694         (movhi_internal): Likewise.
4695         (movqi_internal): Likewise.
4696         (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
4697         attribute for load/store instructions.
4698         (mov<mode>_hardfloat): Set correct "type" attribute for load/store
4699         instructions.
4700         (mov<mode>_softfloat): Likewise.
4701         (mov<mode>_hardfloat32): Likewise.
4702         (mov<mode>_hardfloat64): Likewise.
4703         (mov<mode>_softfloat64): Likewise.
4704         (movdi_internal32): Likewise.
4705         (movdi_internal64): Likewise.
4706         (probe_stack_<mode>): Likewise.
4708         Backport from mainline
4709         2013-03-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
4711         * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
4712         floating point, and decimal floating point to reload iterator.
4714         * config/rs6000/constraints.md (wl constraint): New constraints to
4715         return FLOAT_REGS if certain options are used to reduce the number
4716         of separate patterns that exist in the file.
4717         (wx constraint): Likewise.
4718         (wz constraint): Likewise.
4720         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
4721         -mdebug=reg, print wg, wl, wx, and wz constraints.
4722         (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
4723         Initialize the reload functions for 64-bit binary/decimal floating
4724         point types.
4725         (reg_offset_addressing_ok_p): If we are on a power7 or later, use
4726         LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
4727         create the buffer on the stack to overcome not having a 32-bit
4728         load and store.
4729         (rs6000_emit_move): Likewise.
4730         (rs6000_secondary_memory_needed_rtx): Likewise.
4731         (rs6000_alloc_sdmode_stack_slot): Likewise.
4732         (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
4733         via xxlxor, just like DFmode 0.0.
4735         * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro)
4736         (define as 1 if we are running on a power7 or newer.
4737         (enum r6000_reg_class_enum): Add new constraints.
4739         * config/rs6000/dfp.md (movsd): Delete, combine with binary
4740         floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
4741         with other moves by using conditional constraits (wg).  Use LFIWZX
4742         and STFIWX for loading SDmode on power7.  Use xxlxor to create
4743         0.0f.
4744         (movsd splitter): Likewise.
4745         (movsd_hardfloat): Likewise.
4746         (movsd_softfloat): Likewise.
4748         * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
4749         binary and decimal floating point moves.
4750         (fmove_ok): New attributes to combine binary and decimal floating
4751         point moves, and to combine power6x (mfpgpr) moves along normal
4752         floating moves.
4753         (real_value_to_target): Likewise.
4754         (f32_lr): Likewise.
4755         (f32_lm): Likewise.
4756         (f32_li): Likewise.
4757         (f32_sr): Likewise.
4758         (f32_sm): Likewise.
4759         (f32_si): Likewise.
4760         (movsf): Combine binary and decimal floating point moves.  Combine
4761         power6x (mfpgpr) moves with other moves by using conditional
4762         constraits (wg).  Use LFIWZX and STFIWX for loading SDmode on
4763         power7.
4764         (mov<mode> for SFmode/SDmode); Likewise.
4765         (SFmode/SDmode splitters): Likewise.
4766         (movsf_hardfloat): Likewise.
4767         (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
4768         (movsf_softfloat): Likewise.
4769         (mov<mode>_softfloat for SFmode/SDmode): Likewise.
4771         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl)
4772         (wx and wz constraints.
4774         * config/rs6000/constraints.md (wg constraint): New constraint to
4775         return FLOAT_REGS if -mmfpgpr (power6x) was used.
4777         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
4778         constraint.
4780         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
4781         -mdebug=reg, print wg, wl, wx, and wz constraints.
4782         (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
4783         Initialize the reload functions for 64-bit binary/decimal floating
4784         point types.
4785         (reg_offset_addressing_ok_p): If we are on a power7 or later, use
4786         LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
4787         create the buffer on the stack to overcome not having a 32-bit
4788         load and store.
4789         (rs6000_emit_move): Likewise.
4790         (rs6000_secondary_memory_needed_rtx): Likewise.
4791         (rs6000_alloc_sdmode_stack_slot): Likewise.
4792         (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
4793         via xxlxor, just like DFmode 0.0.
4796         * config/rs6000/dfp.md (movdd): Delete, combine with binary
4797         floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
4798         with other moves by using conditional constraits (wg).  Use LFIWZX
4799         and STFIWX for loading SDmode on power7.
4800         (movdd splitters): Likewise.
4801         (movdd_hardfloat32): Likewise.
4802         (movdd_softfloat32): Likewise.
4803         (movdd_hardfloat64_mfpgpr): Likewise.
4804         (movdd_hardfloat64): Likewise.
4805         (movdd_softfloat64): Likewise.
4807         * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
4808         64-bit binary and decimal floating point moves.
4809         (FMOVE64X): Likewise.
4810         (movdf): Combine 64-bit binary and decimal floating point moves.
4811         Combine power6x (mfpgpr) moves with other moves by using
4812         conditional constraits (wg).
4813         (mov<mode> for DFmode/DDmode): Likewise.
4814         (DFmode/DDmode splitters): Likewise.
4815         (movdf_hardfloat32): Likewise.
4816         (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
4817         (movdf_softfloat32): Likewise.
4818         (movdf_hardfloat64_mfpgpr): Likewise.
4819         (movdf_hardfloat64): Likewise.
4820         (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
4821         (movdf_softfloat64): Likewise.
4822         (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
4823         (reload_<mode>_load): Move to later in the file so they aren't in
4824         the middle of the floating point move insns.
4825         (reload_<mode>_store): Likewise.
4827         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
4828         constraint.
4830         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
4831         constraint if -mdebug=reg.
4832         (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if
4833         -mfpgpr.  Enable using dd reload support if needed.
4835         * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
4836         binary and decimal floating point moves in rs6000.md.
4837         (movtd_internal): Likewise.
4839         * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
4840         decimal floating point moves.
4841         (movtf): Likewise.
4842         (movtf_internal): Likewise.
4843         (mov<mode>_internal, TDmode/TFmode): Likewise.
4844         (movtf_softfloat): Likewise.
4845         (mov<mode>_softfloat, TDmode/TFmode): Likewise.
4847         * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
4848         movdi_internal64, using wg constraint for move direct operations.
4849         (movdi_internal64): Likewise.
4851         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
4852         MODES_TIEABLE_P for selected modes.  Print the numerical value of
4853         the various virtual registers. Use GPR/FPR first/last values)
4854         (instead of hard coding the register numbers.  Print which modes
4855         have reload functions registered.
4856         (rs6000_option_override_internal): If -mdebug=reg, trace the
4857         options settings before/after setting cpu, target and subtarget
4858         settings.
4859         (rs6000_secondary_reload_trace): Improve the RTL dump for
4860         -mdebug=addr and for secondary reload failures in
4861         rs6000_secondary_reload_inner.
4862         (rs6000_secondary_reload_fail): Likewise.
4863         (rs6000_secondary_reload_inner): Likewise.
4865         * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
4866         macros for first/last GPR and FPR registers.
4867         (LAST_GPR_REGNO): Likewise.
4868         (FIRST_FPR_REGNO): Likewise.
4869         (LAST_FPR_REGNO): Likewise.
4871         * config/rs6000/vector.md (mul<mode>3): Use the combined macro
4872         VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
4873         VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
4874         (vcond<mode><mode>): Likewise.
4875         (vcondu<mode><mode>): Likewise.
4876         (vector_gtu<mode>): Likewise.
4877         (vector_gte<mode>): Likewise.
4878         (xor<mode>3): Don't allow logical operations on TImode in 32-bit
4879         to prevent the compiler from converting DImode operations to
4880         TImode.
4881         (ior<mode>3): Likewise.
4882         (and<mode>3): Likewise.
4883         (one_cmpl<mode>2): Likewise.
4884         (nor<mode>3): Likewise.
4885         (andc<mode>3): Likewise.
4887         * config/rs6000/constraints.md (wt constraint): New constraint
4888         that returns VSX_REGS if TImode is allowed in VSX registers.
4890         * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
4891         constant under VSX.
4893         * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
4894         similar to TImode, but it is restricted to being in the GPRs.
4896         * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
4897         TImode to occupy a single VSX register.
4899         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
4900         -mvsx-timode for power7/power8.
4901         (power7 cpu): Likewise.
4902         (power8 cpu): Likewise.
4904         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
4905         sure that TFmode/TDmode take up two registers if they are ever
4906         allowed in the upper VSX registers.
4907         (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
4908         registers.
4909         (rs6000_init_hard_regno_mode_ok): Likewise.
4910         (rs6000_debug_reg_global): Add debugging for PTImode and wt
4911         constraint.  Print if LRA is turned on.
4912         (rs6000_option_override_internal): Give an error if -mvsx-timode
4913         and VSX is not enabled.
4914         (invalid_e500_subreg): Handle PTImode, restricting it to GPRs.  If
4915         -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
4916         to reg+offset addressing.  Use PTImode when checking offset
4917         addresses for validity.
4918         (reg_offset_addressing_ok_p): Likewise.
4919         (rs6000_legitimate_offset_address_p): Likewise.
4920         (rs6000_legitimize_address): Likewise.
4921         (rs6000_legitimize_reload_address): Likewise.
4922         (rs6000_legitimate_address_p): Likewise.
4923         (rs6000_eliminate_indexed_memrefs): Likewise.
4924         (rs6000_emit_move): Likewise.
4925         (rs6000_secondary_reload): Likewise.
4926         (rs6000_secondary_reload_inner): Handle PTImode.  Allow 64-bit
4927         reloads to fpr registers to continue to use reg+offset addressing)
4928         (but 64-bit reloads to altivec registers need reg+reg addressing.
4929         Drop test for PRE_MODIFY, since VSX loads/stores no longer support
4930         it.  Treat LO_SUM like a PLUS operation.
4931         (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
4932         FLOAT_REGS instead of VSX_RGS to allow use of reg+offset
4933         addressing.
4934         (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
4935         registers to share a register with a smaller sized type, since VSX
4936         puts scalars in the upper 64-bits.
4937         (print_operand): Add support for PTImode.
4938         (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
4939         VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
4940         registers, but don't have arithmetic support.
4941         (rs6000_memory_move_cost): Add test for VSX.
4942         (rs6000_opt_masks): Add -mvsx-timode.
4944         * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
4945         for TImode.
4946         (VSs): Likewise.
4947         (VSr): Use wt constraint for TImode.
4948         (VSv): Drop TImode support.
4949         (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
4950         (vsx_movti_64bit): Likewise.
4951         (vsx_movti_32bit): Likewise.
4952         (vec_store_<mode>): Use VSX iterator instead of vector iterator.
4953         (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
4954         one '?' on the appropriate output constraint.  Do not allow TImode
4955         logical operations on 32-bit systems.
4956         (vsx_ior<mode>3): Likewise.
4957         (vsx_xor<mode>3): Likewise.
4958         (vsx_one_cmpl<mode>2): Likewise.
4959         (vsx_nor<mode>3): Likewise.
4960         (vsx_andc<mode>3): Likewise.
4961         (vsx_concat_<mode>): Likewise.
4962         (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
4964         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
4965         OPTION_MASK_VSX_TIMODE.
4966         (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
4967         (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
4969         * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
4970         (TI2 iterator): New iterator for TImode, PTImode.
4971         (wd mode attribute): Add values for vector types.
4972         (movti_string): Replace TI move operations with operations for
4973         TImode and PTImode.  Add support for TImode being allowed in VSX
4974         registers.
4975         (mov<mode>_string, TImode/PTImode): Likewise.
4976         (movti_ppc64): Likewise.
4977         (mov<mode>_ppc64, TImode/PTImode): Likewise.
4978         (TI mode splitters): Likewise.
4980         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
4981         constraint.
4983 2014-04-04  Richard Biener  <rguenther@suse.de>
4985         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
4987 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4989         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
4991 2014-04-01  Richard Biener  <rguenther@suse.de>
4993         * gimple.h (struct gimple_statement_base): Align subcode to
4994         16 bits.
4996 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4998         * doc/invoke.texi (mapp-regs): Clarify.
5000 2014-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5002         PR rtl-optimization/60700
5003         Backport from mainline
5004         2013-07-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5006         PR rtl-optimization/57637
5007         * function.c (move_insn_for_shrink_wrap): Also check the
5008         GEN set of the LIVE problem for the liveness analysis
5009         if it exists, otherwise give up.
5011 2014-03-30  Kaz Kojima  <kkojima@gcc.gnu.org>
5013         Backport from mainline
5014         2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5016         PR target/60039
5017         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
5019 2014-03-26  Martin Jambor  <mjambor@suse.cz>
5021         PR ipa/60419
5022         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk and
5023         alias flags of nodes in the border.
5025 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5027         PR rtl-optimization/60452
5028         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
5029         <case REG>: Return 1 for invalid offsets from the frame pointer.
5031 2014-03-24  Richard Biener  <rguenther@suse.de>
5033         PR tree-optimization/60429
5034         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Remove
5035         duplicated line.
5037 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
5039         PR rtl-optimization/60601
5040         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
5042         * gcc.c (eval_spec_function): Initialize save_growing_value.
5044 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
5046         PR target/60568
5047         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
5048         into CONST, put pic register as first operand of PLUS.  Use
5049         gen_const_mem for both 32-bit and 64-bit PIC got loads.
5051 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5053         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
5054         around for store forwarding issue in the FPU on the UT699.
5055         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
5056         loads and operations if -mfix-ut699 is specified.
5057         (divtf3_hq): Tweak attribute.
5058         (sqrttf2_hq): Likewise.
5060 2014-03-18  Kai Tietz  <ktietz@redhat.com>
5062         PR rtl-optimization/56356
5063         * sdbout.c (sdbout_parms): Verify that parms'
5064         incoming argument is valid.
5065         (sdbout_reg_parms): Likewise.
5067 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
5069         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
5070         proper constant for the store mode.
5072 2014-03-17  Mikael Pettersson  <mikpelinux@gmail.com>
5073             Committed by Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5075         Backport from mainline:
5077         2013-06-20  Joern Rennecke <joern.rennecke@embecosm.com>
5079         PR rtl-optimization/57425
5080         PR rtl-optimization/57569
5081         * alias.c (write_dependence_p): Remove parameters mem_mode and
5082         canon_mem_addr.  Add parameters x_mode, x_addr and x_canonicalized.
5083         Changed all callers.
5084         (canon_anti_dependence): Get comments and semantics in sync.
5085         Add parameter mem_canonicalized.  Changed all callers.
5086         * rtl.h (canon_anti_dependence): Update prototype.
5088         2013-06-16  Joern Rennecke <joern.rennecke@embecosm.com>
5090         PR rtl-optimization/57425
5091         PR rtl-optimization/57569
5092         * alias.c (write_dependence_p): Add new parameters mem_mode,
5093         canon_mem_addr and mem_canonicalized.  Change type of writep to bool.
5094         Changed all callers.
5095         (canon_anti_dependence): New function.
5096         * cse.c (check_dependence): Use canon_anti_dependence.
5097         * cselib.c (cselib_invalidate_mem): Likewise.
5098         * rtl.h (canon_anti_dependence): Declare.
5100 2014-03-17  Richard Biener  <rguenther@suse.de>
5102         Backport from mainline
5103         2014-03-11  Richard Biener  <rguenther@suse.de>
5105         PR tree-optimization/60429
5106         PR tree-optimization/60485
5107         * tree-ssa-structalias.c (set_union_with_increment): Properly
5108         take into account all fields that overlap the shifted vars.
5109         (do_sd_constraint): Likewise.
5110         (do_ds_constraint): Likewise.
5111         (get_constraint_for_ptr_offset): Likewise.
5113 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
5115         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
5116         (eligible_for_call_delay): New prototype.
5117         * config/sparc/sparc.c (tls_call_delay): Rename into...
5118         (eligible_for_call_delay): ...this.  Return false if the instruction
5119         cannot be put in the delay slot of a branch.
5120         (eligible_for_restore_insn): Simplify.
5121         (eligible_for_return_delay): Return false if the instruction cannot be
5122         put in the delay slot of a branch and simplify.
5123         (eligible_for_sibcall_delay): Return false if the instruction cannot be
5124         put in the delay slot of a branch.
5125         * config/sparc/sparc.md (fix_ut699): New attribute.
5126         (tls_call_delay): Delete.
5127         (in_call_delay): Reimplement.
5128         (eligible_for_sibcall_delay): Rename into...
5129         (in_sibcall_delay): ...this.
5130         (eligible_for_return_delay): Rename into...
5131         (in_return_delay): ...this.
5132         (in_branch_delay): Reimplement.
5133         (in_uncond_branch_delay): Delete.
5134         (in_annul_branch_delay): Delete.
5136 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
5138         Backport from 2014-03-14 trunk r208562.
5140         PR target/59396
5141         * config/avr/avr.c (avr_set_current_function): Pass function name
5142         through default_strip_name_encoding before sanity checking instead
5143         of skipping the first char of the assembler name.
5145 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
5147         Backport from 2014-03-13 trunk r208532.
5148         
5149         PR target/60486
5150         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
5151         calls of avr_out_plus_1.
5153 2014-03-13  Joey Ye  <joey.ye@arm.com>
5155         Backport from mainline
5156         2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5158         PR tree-optimization/60454
5159         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
5161 2014-03-06  Matthias Klose  <doko@ubuntu.com>
5163         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
5164         MULTILIB_OSDIRNAMES is not defined.
5166 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
5168         PR tree-optimization/60276
5169         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Avoid
5170         a -Wsign-compare warning.
5172         * Makefile.in (tree-ssa-uninit.o): Depend on $(PARAMS_H).
5174         Backport from mainline
5175         2014-02-21  Jakub Jelinek  <jakub@redhat.com>
5177         PR tree-optimization/56490
5178         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
5179         * tree-ssa-uninit.c: Include params.h.
5180         (compute_control_dep_chain): Add num_calls argument, return false
5181         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
5182         num_calls to recursive call.
5183         (find_predicates): Change dep_chain into normal array, add num_calls
5184         variable and adjust compute_control_dep_chain caller.
5185         (find_def_preds): Likewise.
5187         2014-02-13  Jakub Jelinek  <jakub@redhat.com>
5189         PR target/43546
5190         * expr.c (compress_float_constant): If x is a hard register,
5191         extend into a pseudo and then move to x.
5193         2014-02-11  Richard Henderson  <rth@redhat.com>
5194                     Jakub Jelinek  <jakub@redhat.com>
5196         PR debug/59776
5197         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
5198         around drhs if type conversion to lacc->type is not useless.
5200         2014-02-08  Jakub Jelinek  <jakub@redhat.com>
5202         PR ipa/60026
5203         * ipa-cp.c (determine_versionability): Fail at -O0
5204         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
5205         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
5207         2014-02-06  Jakub Jelinek  <jakub@redhat.com>
5209         PR target/60062
5210         * tree.h (opts_for_fn): New inline function.
5211         (opt_for_fn): Define.
5212         * config/i386/i386.c (ix86_function_regparm): Use
5213         opt_for_fn (decl, optimize) instead of optimize.
5215         2014-02-05  Jakub Jelinek  <jakub@redhat.com>
5217         PR middle-end/57499
5218         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
5219         bb with no successors.
5221 2014-03-04  Richard Biener  <rguenther@suse.de>
5223         PR tree-optimization/60382
5224         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
5225         dead PHIs a reduction.
5227 2014-02-25  Richard Biener  <rguenther@suse.de>
5229         Backport from mainline
5230         2014-02-21  Richard Biener  <rguenther@suse.de>
5232         PR tree-optimization/60276
5233         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
5234         (STMT_VINFO_MIN_NEG_DIST): New macro.
5235         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
5236         STMT_VINFO_MIN_NEG_DIST.
5237         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
5238         made for negative dependence distances still hold.
5240 2014-02-25  Richard Biener  <rguenther@suse.de>
5242         Backport from mainline
5243         2014-02-21  Richard Biener  <rguenther@suse.de>
5245         PR middle-end/60291
5246         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
5247         DECL_INITIAL for globals not in the current function context.
5249         2014-02-20  Richard Biener  <rguenther@suse.de>
5251         PR middle-end/60221
5252         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
5253         regions at -O0.
5255         2014-02-14  Richard Biener  <rguenther@suse.de>
5257         PR tree-optimization/60183
5258         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating
5259         loads.
5260         (tree_ssa_phiprop): Calculate and free post-dominators.
5262 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5264         PR target/55426
5265         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
5266         conversions.
5268 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
5270         * config/pa/pa.c (pa_output_move_double): Don't valididate when
5271         adjusting offsetable addresses.
5273 2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>
5275         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg names
5277 2014-02-23  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
5279         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
5280         definition.
5282 2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>
5284         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk
5285         and define TARGET_ASM_OUTPUT_MI_THUNK and
5286         TARGET_ASM_CAN_OUTPUT_MI_THUNK.
5288 2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>
5290         * config/microblaze/predicates.md: Add cmp_op predicate.
5291         * config/microblaze/microblaze.md: Add branch_compare instruction 
5292         which uses cmp_op predicate and emits cmp insn before branch.
5293         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename 
5294         to microblaze_expand_conditional_branch and consolidate logic.
5295         (microblaze_expand_conditional_branch): emit branch_compare
5296         insn instead of handling cmp op separate from branch insn.
5298 2014-02-21  Martin Jambor  <mjambor@suse.cz>
5300         PR ipa/55260
5301         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
5302         info when checking whether lattices are bottom.
5304 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
5306         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
5307         mode for mask of V8SFmode permutation.
5309 2014-02-20  Richard Henderson  <rth@redhat.com>
5311         PR c++/60272
5312         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
5313         on failure the store back into EXPECT.  Always make a new pseudo for
5314         OLDVAL.
5316 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
5318         PR target/57896
5319         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
5320         gen_reg_rtx if d->testing_p.
5321         (expand_vec_perm_pshufb2, expand_vec_perm_even_odd_1,
5322         expand_vec_perm_broadcast_1): Return early if d->testing_p and
5323         we will certainly return true.
5325 2014-02-20  Richard Biener  <rguenther@suse.de>
5327         * tree-cfg.c (replace_uses_by): Mark altered BBs before
5328         doing the substitution.
5330 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
5332         Backport from mainline
5333         2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
5335         PR target/60207
5336         * config/i386/i386.c (construct_container): Remove TFmode check
5337         for X86_64_INTEGER_CLASS.
5339 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
5341         Backport from mainline
5342         2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
5344         PR target/59794
5345         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
5346         only when -Wpsabi is enabled.
5348 2014-02-19  Terry Guo  <terry.guo@arm.com>
5350         Backport from mainline
5351         2014-02-08  Terry Guo  <terry.guo@arm.com>
5353         * doc/invoke.texi: Document ARM -march=armv7e-m.
5355 2014-02-18  Kai Tietz  <ktietz@redhat.com>
5357         Backport from mainline
5358         2014-02-18  Kai Tietz  <ktietz@redhat.com>
5360         PR target/60193
5361         * config/i386/i386.c (ix86_expand_prologue): Use
5362         rax register as displacement for restoring %r10, %rax.
5363         Additional fix wrong offset for restoring both-registers.
5365 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
5367         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
5368         assertion with conditional return.
5370 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
5371             Uros Bizjak  <ubizjak@gmail.com>
5373         PR driver/60233
5374         * config/i386/driver-i386.c (host_detect_local_cpu): If
5375         YMM state is not saved by the OS, also clear has_f16c.  Move
5376         CPUID 0x80000001 handling before YMM state saving checking.
5378 2014-02-14  Roland McGrath  <mcgrathr@google.com>
5380         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
5381         * configure: Regenerated.
5382         * config.in: Regenerated.
5383         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
5384         instead of ASM_SHORT.
5386 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
5388         Backport from mainline
5389         2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
5391         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
5392         operands[2], not operands[3].
5394 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5396         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
5397         caused by bad second argument to warning_at() with -mhotpatch and
5398         nested functions (e.g. with gfortran).
5400 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
5402         Backport from mainline
5403         2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
5404                     Uros Bizjak  <ubizjak@gmail.com>
5406         PR target/60151
5407         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
5409 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
5411         PR rtl-optimization/60116
5412         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
5413         other_insn once the combination has been validated.
5415 2014-02-10  Nagaraju Mekala <nagaraju.mekala@xilinx.com>
5417         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
5418         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
5420 2014-02-10  Nagaraju Mekala <nagaraju.mekala@xilinx.com>
5422         * config/microblaze/microblaze.c: Extend mcpu version format
5424 2014-02-10  David Holsgrove <david.holsgrove@xilinx.com>
5426         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
5428 2014-02-10  Richard Biener  <rguenther@suse.de>
5430         Backport from mainline
5431         2014-01-30  Richard Biener  <rguenther@suse.de>
5433         PR tree-optimization/59903
5434         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
5435         check properly.
5437         2014-02-10  Richard Biener  <rguenther@suse.de>
5439         PR tree-optimization/60115
5440         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
5441         MEM_REF handling.  Properly verify that the accesses are not
5442         out of the objects bound.
5444 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
5446         Backport from mainline.
5447         2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
5449         PR target/59718
5450         * doc/invoke.texi (-march): Clarify documentation for ARM.
5451         (-mtune): Likewise.
5452         (-mcpu): Likewise.
5454 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
5456         PR target/59777
5457         * config/pa/pa.c (legitimize_tls_address): Return original address
5458         if not passed a SYMBOL_REF rtx.
5459         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
5460         addresses.
5461         (pa_emit_move_sequence): Simplify TLS source operands.
5462         (pa_legitimate_constant_p): Reject all TLS constants.
5463         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
5464         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
5466 2014-02-04  Uros Bizjak  <ubizjak@gmail.com>
5468         Backport from mainline
5469         2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
5471         PR target/60017
5472         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
5473         when calculating size of integer atomic types.
5475 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
5477         Backport from mainline
5478         2014-01-30  Jakub Jelinek  <jakub@redhat.com>
5480         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
5482 2014-01-31  Richard Henderson  <rth@redhat.com>
5484         PR middle-end/60004
5485         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
5486         until after else_eh is processed.
5488 2014-01-30  David Holsgrove <david.holsgrove@xilinx.com>
5490         Backport from mainline
5491         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
5492         comparison_operator with ordered_comparison_operator.
5494 2014-01-25  Walter Lee  <walt@tilera.com>
5496         Backport from mainline
5497         2014-01-25  Walter Lee  <walt@tilera.com>
5499         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
5500         avoid clobbering a live register.
5502 2014-01-25  Walter Lee  <walt@tilera.com>
5504         Backport from mainline
5505         2014-01-25  Walter Lee  <walt@tilera.com>
5507         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
5508         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
5509         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
5510         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
5512 2014-01-25  Walter Lee  <walt@tilera.com>
5514         Backport from mainline
5515         2014-01-25  Walter Lee  <walt@tilera.com>
5517         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
5518         insns before bundling.
5519         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
5521 2014-01-25  Walter Lee  <walt@tilera.com>
5523         Backport from mainline
5524         2014-01-25  Walter Lee  <walt@tilera.com>
5526         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
5527         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
5528         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
5530 2014-01-25  Walter Lee  <walt@tilera.com>
5532         Backport from mainline
5533         2014-01-25  Walter Lee  <walt@tilera.com>
5535         * config/tilepro/tilepro.md (ctzdi2): Use register_operand
5536         predicate.
5537         (clzdi2): Ditto.
5538         (ffsdi2): Ditto.
5540 2014-01-25  Walter Lee  <walt@tilera.com>
5542         Backport from mainline
5543         2014-01-25  Walter Lee  <walt@tilera.com>
5545         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
5546         (TARGET_EXPAND_TO_RTL_HOOK): Define.
5548 2014-01-24  H.J. Lu  <hongjiu.lu@intel.com>
5550         Backport from mainline
5551         2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
5553         PR target/59929
5554         * config/i386/i386.md (pushsf splitter): Get stack adjustment
5555         from push operand if code of push isn't PRE_DEC.
5557 2014-01-23  David Holsgrove <david.holsgrove@xilinx.com>
5559         Backport from mainline.
5560         * config/microblaze/microblaze.md: Add trap insn and attribute
5562 2014-01-23  Marek Polacek  <polacek@redhat.com>
5564         Backport from mainline
5565         2013-10-21  Marek Polacek  <polacek@redhat.com>
5567         PR middle-end/58809
5568         * fold-const.c (fold_range_test): Return 0 if the type is not
5569         an integral type.
5571 2014-01-22  David Holsgrove <david.holsgrove@xilinx.com>
5573         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
5575 2014-01-22  Uros Bizjak  <ubizjak@gmail.com>
5577         Backport from mainline
5578         2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
5580         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
5581         for SImode_address_operand operands, having only a REG argument.
5583         2014-01-20  Jakub Jelinek  <jakub@redhat.com>
5585         PR target/59880
5586         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
5587         if operands[1] is a REG or ZERO_EXTEND of a REG.
5589         2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
5590                     H.J. Lu  <hongjiu.lu@intel.com>
5592         PR target/59379
5593         * config/i386/i386.md (*lea<mode>): Zero-extend return register
5594         to DImode for zero-extended addresses.
5596 2014-01-21  Andrew Pinski <apinski@cavium.com>
5597             Steve Ellcey  <sellcey@mips.com>
5599         PR target/59462
5600         * config/mips/mips.c (mips_print_operand): Check operand mode instead
5601         of operator mode.
5603 2014-01-21  Andrey Belevantsev  <abel@ispras.ru>
5605         Backport from mainline
5606         2013-12-23  Andrey Belevantsev  <abel@ispras.ru>
5608         PR rtl-optimization/57422
5609         * sel-sched.c (mark_unavailable_hard_regs): Fix typo when calling
5610         add_to_hard_reg_set.
5612 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
5614         PR middle-end/59860
5615         * tree.h (fold_builtin_strcat): New prototype.
5616         * builtins.c (fold_builtin_strcat): No longer static.  Add len
5617         argument, if non-NULL, don't call c_strlen.  Optimize
5618         directly into __builtin_memcpy instead of __builtin_strcpy.
5619         (fold_builtin_2): Adjust fold_builtin_strcat caller.
5620         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
5622 2014-01-20  Richard Biener  <rguenther@suse.de>
5624         PR middle-end/59860
5625         * builtins.c (fold_builtin_strcat): Remove case better handled
5626         by tree-ssa-strlen.c.
5628 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
5630         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
5631         long non-pic millicode calls.
5633 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
5635         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
5636         call to $$dyncall when TARGET_LONG_CALLS is true.
5638 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
5640         Backport from mainline
5641         2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
5643         PR target/59794
5644         * config/i386/i386.c (type_natural_mode): Add a bool parameter
5645         to indicate if type is used for function return value.  Warn
5646         ABI change if the vector mode isn't available for function
5647         return value.
5648         (ix86_function_arg_advance): Pass false to type_natural_mode.
5649         (ix86_function_arg): Likewise.
5650         (ix86_gimplify_va_arg): Likewise.
5651         (function_arg_32): Don't warn ABI change.
5652         (ix86_function_value): Pass true to type_natural_mode.
5653         (ix86_return_in_memory): Likewise.
5654         (ix86_struct_value_rtx): Removed.
5655         (TARGET_STRUCT_VALUE_RTX): Likewise.
5657 2014-01-17  Charles Baylis  <charles.baylis@linaro.org>
5659         Backport from mainline
5660         2013-12-19  Charles Baylis  <charles.baylis@linaro.org>
5662         PR target/59142
5663         * config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb
5664         patterns.
5665         * config/arm/ldmstm.md: Regenerate.
5667         2013-12-19  Charles Baylis  <charles.baylis@linaro.org>
5669         PR target/59142
5670         * config/arm/predicates.md (arm_hard_general_register_operand):
5671         New predicate.
5672         (arm_hard_register_operand): Remove.
5673         * config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand
5674         for all patterns.
5675         * config/arm/ldmstm.md: Regenerate.
5677         2013-12-19  Charles Baylis  <charles.baylis@linaro.org>
5679         PR target/59142
5680         * config/arm/predicates.md (vfp_hard_register_operand): New predicate.
5681         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use
5682         vfp_hard_register_operand.
5684 2014-01-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5686         Backport from mainline
5687         2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
5688             Kugan Vivekanandarajah  <kuganv@linaro.org>
5690         PR target/59695
5691         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
5692         truncation.
5694 2014-01-17  Terry Guo  <terry.guo@arm.com>
5696         PR target/59826
5697         * config/arm/arm.md (prefetch): Set insn type attribute to load1.
5699 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
5701         PR target/59839
5702         * config/i386/i386.c (ix86_expand_builtin): If target doesn't
5703         satisfy operand 0 predicate for gathers, use a new pseudo as
5704         subtarget.
5706 2014-01-16  Richard Henderson <rth@redhat.com>
5708         PR debug/54694
5709         * reginfo.c (global_regs_decl): Globalize.
5710         * rtl.h (global_regs_decl): Declare.
5711         * ira.c (do_reload): Diagnose frame_pointer_needed and it
5712         reserved via global_regs.
5714 2014-01-16  Peter Bergner  <bergner@vnet.ibm.com>
5716         Backport from mainline
5717         2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
5719         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
5720         VALID_AVX256_REG_OR_OI_MODE.
5722         2013-09-05  Peter Bergner  <bergner@vnet.ibm.com>
5724         PR target/58139
5725         * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
5726         looking for widest mode.
5728 2014-01-16  Marek Polacek  <polacek@redhat.com>
5730         Backported from mainline
5731         2014-01-16  Marek Polacek  <polacek@redhat.com>
5733         PR middle-end/59827
5734         * gimple-low.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
5735         it is error_mark_node.
5737 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5739         PR target/59803
5740         * config/s390/s390.c (s390_preferred_reload_class): Don't return
5741         ADDR_REGS for invalid symrefs in non-PIC code.
5743 2014-01-14  Uros Bizjak  <ubizjak@gmail.com>
5745         Revert:
5746         2014-01-08  Uros Bizjak  <ubizjak@gmail.com>
5748         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
5749         from prefetch_block tune setting.
5751 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
5753         Backported from mainline
5754         2014-01-10  Jakub Jelinek  <jakub@redhat.com>
5756         PR tree-optimization/59745
5757         * tree-predcom.c (tree_predictive_commoning_loop): Call
5758         free_affine_expand_cache if giving up because components is NULL.
5760 2014-01-10  Yufeng Zhang  <yufeng.zhang@arm.com>
5762         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
5763         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
5764         rtx is const0_rtx or not.
5766 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5768         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
5769         extraction in good case.
5771 2014-01-10  Huacai Chen  <chenhc@lemote.com>
5773         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
5774         kernel strings for Loongson-2E/2F/3A.
5776 2014-01-10  Richard Biener  <rguenther@suse.de>
5778         PR tree-optimization/59715
5779         * tree-flow.h (split_critical_edges): Declare.
5780         * tree-cfg.c (split_critical_edges): Export.
5781         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
5783 2014-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
5785         * config/mips/mips.h (ISA_HAS_WSBH): Define.
5786         * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
5787         constants.
5788         (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.
5790 2014-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
5792         PR rtl-optimization/59137
5793         * reorg.c (steal_delay_list_from_target): Call update_block for
5794         elided insns.
5795         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
5797 2014-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
5799         Revert:
5800         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
5802         * config/mips/mips.c (mips_truncated_op_cost): New function.
5803         (mips_rtx_costs): Adjust test for BADDU.
5804         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
5806         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
5808         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
5809         (*baddu_si): ...this new pattern.
5811 2014-01-09  Richard Biener  <rguenther@suse.de>
5813         Backport from mainline
5814         2013-11-18  Richard Biener  <rguenther@suse.de>
5816         PR tree-optimization/59125
5817         PR tree-optimization/54570
5818         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining
5819         is not complete do not treat component-references with offset zero
5820         but different fields as equal.
5821         * tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h.
5822         (compute_object_sizes): Apply TLC.  Propagate the constant
5823         results into all uses and fold their stmts.
5824         * passes.def (pass_all_optimizations): Move pass_object_sizes
5825         after the first pass_forwprop and before pass_fre.
5827         2013-12-03  Jakub Jelinek  <jakub@redhat.com>
5829         PR tree-optimization/59362
5830         * tree-object-size.c (object_sizes): Change into array of
5831         vec<unsigned HOST_WIDE_INT>.
5832         (compute_builtin_object_size): Check computed bitmap for
5833         non-NULL instead of object_sizes.  Call safe_grow on object_sizes
5834         vector if new SSA_NAMEs appeared.
5835         (init_object_sizes): Check computed bitmap for non-NULL.
5836         Call safe_grow on object_sizes elements instead of initializing
5837         it with XNEWVEC.
5838         (fini_object_sizes): Call release on object_sizes elements, don't
5839         set it to NULL.
5841 2014-01-09  Richard Earnshaw  <rearnsha@arm.com>
5843         PR rtl-optimization/54300
5844         * regcprop.c (copyprop_hardreg_forward_1): Ensure any unused
5845         outputs in a single-set are killed from the value chains.
5847 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
5849         PR rtl-optimization/59724
5850         * ifcvt.c (cond_exec_process_if_block): Don't call
5851         flow_find_head_matching_sequence with 0 longest_match.
5852         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
5853         non-active insns if !stop_after.
5854         (try_head_merge_bb): Revert 2014-01-07 changes.
5856 2014-01-09  Hans-Peter Nilsson  <hp@axis.com>
5858         Backport from mainline
5859         2013-12-23  Hans-Peter Nilsson  <hp@axis.com>
5861         PR middle-end/59584
5862         * config/cris/predicates.md (cris_nonsp_register_operand):
5863         New define_predicate.
5864         * config/cris/cris.md: Replace register_operand with
5865         cris_nonsp_register_operand for destinations in all
5866         define_splits where a register is set more than once.
5868 2014-01-08   H.J. Lu  <hongjiu.lu@intel.com>
5870         Backport from mainline
5871         2013-12-25   H.J. Lu  <hongjiu.lu@intel.com>
5873         PR target/59587
5874         * config/i386/i386.c (struct ptt): Add a field for processor name.
5875         (processor_target_table): Sync with processor_type.  Add
5876         processor names.
5877         (cpu_names): Removed.
5878         (ix86_option_override_internal): Default x_ix86_tune_string
5879         to processor_target_table[TARGET_CPU_DEFAULT].name.
5880         (ix86_function_specific_print): Assert arch and tune <
5881         PROCESSOR_max.  Use processor_target_table to print arch and
5882         tune names.
5883         * config/i386/i386.h (TARGET_CPU_DEFAULT): Default to
5884         PROCESSOR_GENERIC32.
5885         (target_cpu_default): Removed.
5886         (processor_type): Reordered.
5888 2014-01-08  Uros Bizjak  <ubizjak@gmail.com>
5890         Backport from mainline
5891         2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
5893         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
5894         from prefetch_block tune setting.
5895         (nocona_cost): Correct size of prefetch block to 64.
5897 2014-01-08  Martin Jambor  <mjambor@suse.cz>
5899         PR ipa/59610
5900         * ipa-prop.c (ipa_compute_jump_functions): Bail out if not optimizing.
5901         (parm_preserved_before_stmt_p): Assume modification present when not
5902         optimizing.
5904 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
5906         PR target/59652
5907         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
5908         for 14-bit register offsets when INT14_OK_STRICT is false.
5910 2014-01-07  Roland Stigge  <stigge@antcom.de>
5911             Michael Meissner  <meissner@linux.vnet.ibm.com>
5913         PR 57386/target
5914         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
5915         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
5917 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
5919         PR rtl-optimization/58668
5920         * cfgcleanup.c (flow_find_cross_jump): Don't count
5921         any jumps if dir_p is NULL.  Remove p1 variable and make USE/CLOBBER
5922         check consistent with other places.
5923         (flow_find_head_matching_sequence): Don't count USE or CLOBBER insns.
5924         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
5925         counting change.
5926         * ifcvt.c (count_bb_insns): Don't count USE or CLOBBER insns.
5928 2014-01-07  Mike Stump  <mikestump@comcast.net>
5929             Jakub Jelinek  <jakub@redhat.com>
5931         PR pch/59436
5932         * tree.h (struct tree_optimization_option): Change optabs
5933         type from unsigned char * to void *.
5934         * optabs.c (init_tree_optimization_optabs): Adjust
5935         TREE_OPTIMIZATION_OPTABS initialization.
5937 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
5939         Backported from mainline
5940         2013-12-16  Jakub Jelinek  <jakub@redhat.com>
5942         PR middle-end/58956
5943         PR middle-end/59470
5944         * gimple.h (walk_stmt_load_store_addr_fn): New typedef.
5945         (walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Use it
5946         for callback params.
5947         * gimple.c (walk_stmt_load_store_ops): Likewise.
5948         (walk_stmt_load_store_addr_ops): Likewise.  Adjust all callback
5949         calls to supply the gimple operand containing the base tree
5950         as an extra argument.
5951         * tree-ssa-ter.c (find_ssaname, find_ssaname_in_store): New helper
5952         functions.
5953         (find_replaceable_in_bb): For calls or GIMPLE_ASM, only set
5954         same_root_var if USE is used somewhere in the stores of the stmt.
5955         * ipa-prop.c (visit_ref_for_mod_analysis): Remove name of the stmt
5956         argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
5957         * ipa-pure-const.c (check_load, check_store, check_ipa_load,
5958         check_ipa_store): Likewise.
5959         * gimple.c (gimple_ior_addresses_taken_1): Likewise.
5960         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Likewise.
5961         (verify_non_ssa_vars, visit_bb): Adjust their callers.
5962         * cfgexpand.c (add_scope_conflicts_1): Use
5963         walk_stmt_load_store_addr_fn type for visit variable.
5964         (visit_op, visit_conflict): Remove name of the stmt
5965         argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
5966         * tree-sra.c (asm_visit_addr): Likewise.  Remove name of the data
5967         argument and ATTRIBUTE_UNUSED.
5968         * cgraphbuild.c (mark_address, mark_load, mark_store): Add another
5969         unnamed tree argument.
5971 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
5973         * config/m68k/m68k.c (handle_move_double): Handle pushes with
5974         overlapping registers also for registers other than the stack
5975         pointer.
5977 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
5979         PR target/59625
5980         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
5981         asm goto as jump.
5983 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
5985         PR rtl-optimization/59647
5986         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
5987         new_rtx into UNSIGNED_FLOAT rtxes.
5989 2013-12-28  Eric Botcazou  <ebotcazou@adacore.com>
5991         * doc/invoke.texi (output file options): Document -fada-spec-parent.
5993 2013-12-26  Uros Bizjak  <ubizjak@gmail.com>
5995         * config/i386/driver-i386.c (decode_caches_intel): Add missing entries.
5997 2013-12-20  Jakub Jelinek  <jakub@redhat.com>
5999         PR c++/59255
6000         Backported from mainline
6001         2013-08-19  Dehao Chen  <dehao@google.com>
6003         * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
6005 2013-12-19  James Greenhalgh  <james.greenhalgh@arm.com>
6007         Backport from Mainline.
6008         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
6010         * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
6011         (cmgeu): ...This.
6012         (cmhi): Rename to...
6013         (cmgtu): ...This.
6014         * config/aarch64/aarch64-simd.md
6015         (simd_mode): Add SF.
6016         (aarch64_vcond_internal): Use new names for unsigned comparison insns.
6017         (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
6018         * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
6019         (cstore<mode>_neg): ...This.
6020         * config/aarch64/iterators.md
6021         (VALLF): new.
6022         (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
6023         (COMPARISONS): New.
6024         (UCOMPARISONS): Likewise.
6025         (optab): Add missing comparisons.
6026         (n_optab): New.
6027         (cmp_1): Likewise.
6028         (cmp_2): Likewise.
6029         (CMP): Likewise.
6030         (cmp): Remove.
6031         (VCMP_S): Likewise.
6032         (VCMP_U): Likewise.
6033         (V_cmp_result): Add DF, SF modes.
6034         (v_cmp_result): Likewise.
6035         (v): Likewise.
6036         (vmtype): Likewise.
6037         * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
6039         Partial Backport from mainline.
6040         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
6042         * config/aarch64/arm_neon.h
6043         (vc<eq, lt, le, gt, ge, tst><qsd>_<u><8,16,32,64>): Remap
6044         to builtins or C as appropriate.
6046 2013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6047             Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6049         Backport from mainline
6050         2013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6051         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New
6052         constant
6053         (s390_hotpatch_trampoline_halfwords_max): New constant
6054         (s390_hotpatch_trampoline_halfwords): New static variable
6055         (get_hotpatch_attribute): New function
6056         (s390_handle_hotpatch_attribute): New function
6057         (s390_attribute_table): New target specific attribute table to implement
6058         the hotpatch attribute
6059         (s390_option_override): Parse hotpatch options
6060         (s390_function_num_hotpatch_trampoline_halfwords): New function
6061         (s390_can_inline_p): Implement target hook to
6062         suppress hotpatching for explicitly inlined functions
6063         (s390_asm_output_function_label): Generate hotpatch prologue
6064         (TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table
6065         (TARGET_CAN_INLINE_P): Define to implement target hook
6066         * config/s390/s390.opt (mhotpatch): New options -mhotpatch, -mhotpatch=
6067         * config/s390/s390-protos.h (s390_asm_output_function_label): Add
6068         prototype
6069         * config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific
6070         function label generation for hotpatching
6071         (FUNCTION_BOUNDARY): Align functions to eight bytes
6072         * doc/extend.texi: Document hotpatch attribute
6073         * doc/invoke.texi: Document -mhotpatch option
6075 2013-12-18  Eric Botcazou  <ebotcazou@adacore.com>
6077         * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Fix thinko.
6079 2013-12-12  Vladimir Makarov  <vmakarov@redhat.com>
6081         PR middle-end/59470
6082         * lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo
6083         values if necessary.
6085 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
6087         PR libgomp/59467
6088         * gimplify.c (omp_check_private): Add copyprivate argument, if it
6089         is true, don't check omp_privatize_by_reference.
6090         (gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify
6091         decl is private in outer context.  Adjust omp_check_private caller.
6093 2013-12-10  Eric Botcazou  <ebotcazou@adacore.com>
6095         PR rtl-optimization/58295
6096         * simplify-rtx.c (simplify_truncation): Restrict the distribution for
6097         WORD_REGISTER_OPERATIONS targets.
6099 2013-12-10  Kai Tietz  <ktietz@redhat.com>
6101         PR target/56807
6102         * config/i386/i386.c (ix86_expand_prologue): Address saved
6103         registers stack-relative, not via frame-pointer.
6105 2013-12-09  Alan Modra  <amodra@gmail.com>
6107         Apply from mainline
6108         2013-12-05  Alan Modra  <amodra@gmail.com>
6109         * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
6110         build != host.
6111         <recursive call for build != host>: Clear GMPINC.  Don't bother
6112         saving CFLAGS.
6113         * configure: Regenerate.
6115 2013-12-08  Uros Bizjak  <ubizjak@gmail.com>
6117         Backport from mainline
6118         2013-12-06  Uros Bizjak  <ubizjak@gmail.com>
6120         PR target/59405
6121         * config/i386/i386.c (type_natural_mode): Properly handle
6122         size 8 for !TARGET_64BIT.
6124 2013-12-07  Ralf Corsépius  <ralf.corsepius@rtems.org>
6126         * config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT.
6128 2013-12-06  Jakub Jelinek  <jakub@redhat.com>
6130         PR tree-optimization/59388
6131         * tree-ssa-reassoc.c (update_range_test): If op == range->exp,
6132         gimplify tem after stmt rather than before it.
6134 2013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>
6136         Backport from mainline
6137         2013-11-26  Oleg Endo  <olegendo@gcc.gnu.org>
6139         PR target/58314
6140         PR target/50751
6141         * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
6142         Prefix function names with 'sh_'.  Make them non-static.
6143         * config/sh/sh-protos.h (sh_disp_addr_displacement,
6144         sh_max_mov_insn_displacement): Add declarations.
6145         * config/sh/constraints.md (Q): Reject QImode.
6146         (Sdd): Use match_code "mem".
6147         (Snd): Fix erroneous matching of non-memory operands.
6148         * config/sh/predicates.md (short_displacement_mem_operand): New
6149         predicate.
6150         (general_movsrc_operand): Disallow PC relative QImode loads.
6151         * config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
6152         (*movqi, *movhi): Merge both insns into...
6153         (*mov<mode>): ... this new insn.  Replace generic 'm' constraints with
6154         'Snd' and 'Sdd' constraints.  Calculate insn length dynamically based
6155         on the operand types.
6157 2013-12-06  Richard Biener  <rguenther@suse.de>
6159         Backport from mainline
6160         2013-11-29  Richard Biener  <rguenther@suse.de>
6162         PR tree-optimization/59334
6163         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
6164         in previous commit.
6166         2013-11-28  Richard Biener  <rguenther@suse.de>
6168         PR tree-optimization/59330
6169         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
6170         and fix delayed marking of free calls not necessary.
6172 2013-12-06  Richard Biener  <rguenther@suse.de>
6174         Backport from mainline
6175         2013-11-27  Richard Biener  <rguenther@suse.de>
6177         PR tree-optimization/59288
6178         * tree-vect-loop.c (get_initial_def_for_induction): Do not
6179         re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
6181         2013-11-19  Richard Biener  <rguenther@suse.de>
6183         PR tree-optimization/59164
6184         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust
6185         check whether we can create an epilogue loop to reflect the
6186         cases where we create one.
6188         2013-09-05  Richard Biener  <rguenther@suse.de>
6190         PR tree-optimization/58137
6191         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6192         Do not create vectors of pointers.
6193         * tree-vect-loop.c (get_initial_def_for_induction): Use proper
6194         types for the components of the vector initializer.
6195         * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
6196         allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
6198 2013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>
6200         PR target/51244
6201         PR target/59343
6202         * config/sh/sh.md (*cbranch_t): Check that there are no labels between
6203         the s1 insn and the testing insn.  Remove REG_DEAD note from s1 insn.
6205 2013-12-05  Richard Biener  <rguenther@suse.de>
6207         Backport from mainline
6208         2013-11-19  Richard Biener  <rguenther@suse.de>
6210         PR middle-end/58956
6211         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
6212         loads into stmts that may clobber it.
6214 2013-12-04  Jakub Jelinek  <jakub@redhat.com>
6216         PR rtl-optimization/58726
6217         * combine.c (force_to_mode): Fix comment typo.  Don't destructively
6218         modify x for ROTATE, ROTATERT and IF_THEN_ELSE.
6220 2013-12-04  Jakub Jelinek  <jakub@redhat.com>
6221             Uros Bizjak  <ubizjak@gmail.com>
6223         PR target/59163
6224         * config/i386/i386.c (ix86_legitimate_combined_insn): If for
6225         !TARGET_AVX there is misaligned MEM operand with vector mode
6226         and get_attr_ssememalign is 0, return false.
6227         (ix86_expand_special_args_builtin): Add get_pointer_alignment
6228         computed alignment and for non-temporal loads/stores also
6229         at least GET_MODE_ALIGNMENT as MEM_ALIGN.
6230         * config/i386/sse.md
6231         (<sse>_loadu<ssemodesuffix><avxsizesuffix>,
6232         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
6233         <sse2>_loaddqu<avxsizesuffix>,
6234         <sse2>_storedqu<avxsizesuffix>, <sse3>_lddqu<avxsizesuffix>,
6235         sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps,
6236         sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps,
6237         *vec_interleave_highv2df, *vec_interleave_lowv2df,
6238         *vec_extractv2df_1_sse, sse2_loadhpd, sse2_loadlpd, sse2_movsd,
6239         sse4_1_<code>v8qiv8hi2, sse4_1_<code>v4qiv4si2,
6240         sse4_1_<code>v4hiv4si2, sse4_1_<code>v2qiv2di2,
6241         sse4_1_<code>v2hiv2di2, sse4_1_<code>v2siv2di2, sse4_2_pcmpestr,
6242         *sse4_2_pcmpestr_unaligned, sse4_2_pcmpestri, sse4_2_pcmpestrm,
6243         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned,
6244         sse4_2_pcmpistri, sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add
6245         ssememalign attribute.
6246         * config/i386/i386.md (ssememalign): New define_attr.
6248 2013-12-03  Jakub Jelinek  <jakub@redhat.com>
6250         PR middle-end/59011
6251         * gimplify.c (nonlocal_vla_vars): New variable.
6252         (gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into
6253         nonlocal_vla_vars chain.
6254         (gimplify_body): Call declare_vars on nonlocal_vla_vars chain
6255         if outer_bind has DECL_INITIAL (current_function_decl) block.
6257         PR target/58864
6258         * optabs.c (emit_conditional_move): Save and restore
6259         pending_stack_adjust and stack_pointer_delta if cmove can't be used.
6261 2013-12-02  Jakub Jelinek  <jakub@redhat.com>
6263         PR tree-optimization/59358
6264         * tree-vrp.c (union_ranges): To check for the partially
6265         overlapping ranges or adjacent ranges, also compare *vr0max
6266         with vr1max.
6268 2013-12-02  Richard Biener  <rguenther@suse.de>
6270         PR tree-optimization/59139
6271         * tree-ssa-loop-niter.c (chain_of_csts_start): Properly match
6272         code in get_val_for.
6273         (get_val_for): Use gcc_checking_asserts.
6275 2013-11-27  Tom de Vries  <tom@codesourcery.com>
6276             Marc Glisse  <marc.glisse@inria.fr>
6278         PR middle-end/59037
6279         * fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
6280         BIT_FIELD_REF.
6281         * gimplify.c (gimple_fold_indirect_ref): Same.
6283 2013-12-01  Eric Botcazou  <ebotcazou@adacore.com>
6285         * config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an
6286         identifier node.
6288 2013-12-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6290         * expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument.
6292 2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6294         Backport from mainline
6295         2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6297         * config/arm/iterators.md (vrint_conds): New int attribute.
6298         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
6299         (smax<mode>3): Likewise.
6300         (smin<mode>3): Likewise.
6302 2013-11-28  Uros Bizjak  <ubizjak@gmail.com>
6304         Backport from mainline
6305         2013-11-27  Uros Bizjak  <ubizjak@gmail.com>
6306                     Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
6308         PR target/56788
6309         * gcc.target/i386/xop-frczX.c: New test.
6311 2013-11-28  Terry Guo  <terry.guo@arm.com>
6313         Backport mainline r205391
6314         2013-11-26  Terry Guo  <terry.guo@arm.com>
6316         * config/arm/arm.c (require_pic_register): Handle high pic base
6317         register for thumb-1.
6318         (arm_load_pic_register): Also initialize high pic base register.
6319         * doc/invoke.texi: Update documentation for option -mpic-register.
6321 2013-11-27  Jakub Jelinek  <jakub@redhat.com>
6323         Backported from mainline
6324         2013-11-26  Jakub Jelinek  <jakub@redhat.com>
6326         PR tree-optimization/59014
6327         * tree-vrp.c (register_edge_assert_for_1): Don't look
6328         through conversions from non-integral types or through
6329         narrowing conversions.
6331 2013-11-27  Eric Botcazou  <ebotcazou@adacore.com>
6333         PR middle-end/59138
6334         * expr.c (emit_group_store): Don't write past the end of the structure.
6335         (store_bit_field): Fix formatting.
6337 2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6339         Backport from mainline
6340         2013-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6342         * config/sparc/t-rtems: Add leon3 multilibs.
6344 2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6346         Backport from mainline
6347         2013-08-09  Eric Botcazou  <ebotcazou@adacore.com>
6349         * configure.ac: Add GAS check for LEON instructions on SPARC.
6350         * configure: Regenerate.
6351         * config.in: Likewise.
6352         * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
6353         sparc*-*-* block.
6354         * config/sparc/sparc.opt (LEON, LEON3): New masks.
6355         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
6356         for LEON or LEON3.
6357         (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
6358         (AS_LEON_FLAG): New macro.
6359         * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
6360         and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
6361         Deal with LEON and LEON3 for the memory model.
6362         * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
6363         (atomic_compare_and_swap<mode>_1): Likewise.
6364         (*atomic_compare_and_swap<mode>_1): Likewise.
6366 2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6368         Backport from mainline
6369         2013-07-23  Eric Botcazou  <ebotcazou@adacore.com>
6371         * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
6373 2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6375         Backport from mainline
6376         2013-07-22  Eric Botcazou  <ebotcazou@adacore.com>
6378         * config.gcc (sparc*-*-*): Accept leon3 processor.
6379         (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
6380         * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
6381         * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
6382         * config/sparc/sparc.opt (enum processor_type): Add leon3.
6383         (mfix-ut699): Adjust comment.
6384         * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
6385         (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
6386         (CPP_CPU_SPEC): Likewise.
6387         (ASM_CPU_SPEC): Likewise.
6388         * config/sparc/sparc.c (leon3_cost): New constant.
6389         (sparc_option_override): Add leon3 support.
6390         (mem_ref): New function.
6391         (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
6392         (sparc_do_work_around_errata): Look into the instruction in the delay
6393         slot and adjust accordingly.  Add fix for the data cache nullify issues
6394         of the UT699.  Change insertion position for the NOP.
6395         * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
6396         (leon3_load): New reservation.
6397         (leon_store): Bump latency to 2.
6398         (grfpu): New automaton.
6399         (grfpu_alu): New unit.
6400         (grfpu_ds): Likewise.
6401         (leon_fp_alu): Adjust.
6402         (leon_fp_mult): Delete.
6403         (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
6404         (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
6405         * config/sparc/sparc.md (cpu): Add leon3.
6406         * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
6407         (swapsi): Likewise.
6408         (atomic_test_and_set): Likewise.
6409         (ldstub): Likewise.
6411 2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6413         Backport from mainline
6414         2013-04-10  Steven Bosscher  <steven@gcc.gnu.org>
6416         * config/sparc/sparc.c: Include tree-pass.h.
6417         (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
6418         (sparc_reorg): Rename to sparc_do_work_around_errata.  Move to
6419         head of file.  Change return type.  Split off gate function.
6420         (sparc_gate_work_around_errata): New function.
6421         (pass_work_around_errata): New pass definition.
6422         (insert_pass_work_around_errata) New pass insert definition to
6423         insert pass_work_around_errata just after delayed-branch scheduling.
6424         (sparc_option_override): Insert the pass.
6425         * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
6427 2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6429         Backport from mainline
6430         2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
6432         * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
6433         * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
6434         mode if the instruction isn't available in the original mode.
6435         * config/sparc/sparc.opt (mfix-ut699): New option.
6436         * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
6437         (divdf3): Turn into expander.
6438         (divdf3_nofix): New insn.
6439         (divdf3_fix): Likewise.
6440         (divsf3): Disable if -mfix-ut699.
6441         (sqrtdf2): Turn into expander.
6442         (sqrtdf2_nofix): New insn.
6443         (sqrtdf2_fix): Likewise.
6444         (sqrtsf2): Disable if -mfix-ut699.
6446 2013-11-22  Eric Botcazou  <ebotcazou@adacore.com>
6448         * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.
6450 2013-11-21  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6452         PR bootstrap/57683
6453         Backport from mainline: r197467 and r198999.
6454         2013-04-03  Jeff Law  <law@redhat.com>
6456         * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
6457         (lra-eliminations.o): Likewise.
6459         2013-05-16  Jeff Law  <law@redhat.com>
6461         * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
6463 2013-11-20  Eric Botcazou  <ebotcazou@adacore.com>
6465         PR target/59207
6466         * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
6467         Make sure neg2_ovf is set before being used.
6469 2013-11-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6470             Dominik Vogt  <vogt@linux.vnet.ibm.com>
6472         Backport from mainline
6473         * config/s390/s390.c (s390_canonicalize_comparison): Don't fold
6474         int comparisons with an out of range condition code.
6475         (s390_optimize_nonescaping_tx): Skip empty BBs.
6476         Generate the new tbegin RTX when removing the FPR clobbers (with
6477         two SETs).
6478         (s390_expand_tbegin): Fix the retry loop counter.  Copy CC to the
6479         result before doing the retry calculations.
6480         (s390_init_builtins): Make tbegin "returns_twice" and tabort
6481         "noreturn".
6482         * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
6483         the TDB setting part of an tbegin.
6484         ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
6485         ("tx_assist"): Set unused argument to an immediate zero instead of
6486         loading zero into a GPR and pass it as argument.
6487         * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
6488         Remove inline and related attributes.
6489         (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
6490         (__TM_is_illegal, __TM_is_footprint_exceeded)
6491         (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value
6492         check.
6494 2013-11-19  Uros Bizjak  <ubizjak@gmail.com>
6496         Backport from mainline
6497         2013-11-18  Uros Bizjak  <ubizjak@gmail.com>
6499         * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
6500         ix86_address_subreg_operand.  Move subreg checks to
6501         ix86_validate_address_register.  Move address override check to
6502         ix86_legitimate_address_p.
6503         (ix86_validate_address_register): New function.
6504         (ix86_legitimate_address_p): Call ix86_validate_address_register
6505         to validate base and index registers.  Add address override check
6506         from ix86_decompose_address.
6507         (ix86_decompose_address): Remove.
6509         Backport from mainline
6510         2013-11-17  Uros Bizjak  <ubizjak@gmail.com>
6512         PR target/59153
6513         * config/i386/i386.c (ix86_address_subreg_operand): Do not
6514         reject non-integer subregs.
6515         (ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
6516         Move check for invalid x32 constant addresses ...
6517         (ix86_legitimate_address_p): ... here.
6519 2013-11-19  Richard Biener  <rguenther@suse.de>
6521         Backport from mainline
6522         2013-11-07  Richard Biener  <rguenther@suse.de>
6524         * tree-dfa.c (get_ref_base_and_extent): Fix casting.
6526 2013-11-19  Richard Biener  <rguenther@suse.de>
6528         PR tree-optimization/57517
6529         * tree-predcom.c (combinable_refs_p): Verify the combination
6530         is always executed when the refs are.
6532 2013-11-19  Richard Biener  <rguenther@suse.de>
6534         Backport from mainline
6535         2013-11-05  Richard Biener  <rguenther@suse.de>
6537         PR middle-end/58941
6538         * tree-dfa.c (get_ref_base_and_extent): Merge common code
6539         in MEM_REF and TARGET_MEM_REF handling.  Make sure to
6540         process trailing array detection before diving into the
6541         view-converted object (and possibly apply some extra offset).
6543 2013-11-18  Richard Biener  <rguenther@suse.de>
6545         Backport from mainline
6546         2013-10-21  Richard Biener  <rguenther@suse.de>
6548         PR tree-optimization/58794
6549         * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
6550         of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
6552         2013-10-21  Richard Biener  <rguenther@suse.de>
6554         PR middle-end/58742
6555         * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
6556         to (T) X for sign-changing conversions (or no conversion).
6558         2013-11-06  Richard Biener  <rguenther@suse.de>
6560         PR tree-optimization/58653
6561         * tree-predcom.c (ref_at_iteration): Rewrite to generate
6562         a MEM_REF.
6563         (prepare_initializers_chain): Adjust.
6565         PR tree-optimization/59047
6566         * tree-predcom.c (ref_at_iteration): Handle bitfield accesses
6567         properly.
6569         2013-10-15  Richard Biener  <rguenther@suse.de>
6571         PR tree-optimization/58143
6572         * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
6573         New function.
6574         (rewrite_to_defined_overflow): Likewise.
6575         (move_computations_dom_walker::before_dom): Rewrite stmts
6576         with undefined signed overflow that are not always executed
6577         into unsigned arithmetic.
6579 2013-11-14  Uros Bizjak  <ubizjak@gmail.com>
6581         Backport from mainline
6582         2013-11-10  Uros Bizjak  <ubizjak@gmail.com>
6584         * mode-switching.c (optimize_mode_switching): Mark block as
6585         nontransparent, if last_mode at block exit is different from no_mode.
6587         Backport from mainline
6588         2013-11-06  Uros Bizjak  <ubizjak@gmail.com>
6590         PR target/59021
6591         * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
6592         AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
6593         (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
6594         RTXes that return in AVX256 register.
6596 2013-11-14  Jakub Jelinek  <jakub@redhat.com>
6597             Uros Bizjak  <ubizjak@gmail.com>
6599         PR target/59101
6600         * config/i386/i386.md (*anddi_2): Only allow CCZmode if
6601         operands[2] satisfies_constraint_Z that might have bit 31 set.
6603 2013-11-12  H.J. Lu  <hongjiu.lu@intel.com>
6605         Backported from mainline
6606         2013-11-12  H.J. Lu  <hongjiu.lu@intel.com>
6608         PR target/59088
6609         * config/i386/i386.c (initial_ix86_tune_features): Set
6610         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
6611         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for m_HASWELL.
6613 2013-11-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6615         Backported from mainline
6616         2013-10-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6618         PR target/58854
6619         * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage
6621 2013-11-11  Jakub Jelinek  <jakub@redhat.com>
6623         Backported from mainline
6624         2013-11-06  Jakub Jelinek  <jakub@redhat.com>
6626         PR middle-end/58970
6627         * expr.c (get_bit_range): Handle *offset == NULL_TREE.
6628         (expand_assignment): If *bitpos is negative, set *offset
6629         and adjust *bitpos, so that it is not negative.
6631         2013-11-05  Jakub Jelinek  <jakub@redhat.com>
6633         PR rtl-optimization/58997
6634         * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
6635         get_iv_value to be in iv->mode rather than iv->extend_mode.
6636         (iv_extend): Likewise.  Otherwise, if iv->extend != extend,
6637         use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
6638         * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
6639         mode.
6641 2013-11-10  Karlson2k  <k2k@narod.ru>
6642             Kai Tietz  <ktietz@redhat.com>
6644         Merged from trunk
6645         PR plugins/52872
6646         * configure.ac: Adding for exported symbols check
6647         and for rdynamic-check executable-extension.
6648         * configure: Regenerated.
6650 2013-11-07  H.J. Lu  <hongjiu.lu@intel.com>
6652         PR target/59034
6653         * config/i386/i386.md (push peepholer/splitter): Use Pmode
6654         with stack_pointer_rtx.
6656 2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
6658         * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
6660 2013-11-05  Jakub Jelinek  <jakub@redhat.com>
6662         PR tree-optimization/58984
6663         * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
6664         set *SIZE_P if non-NULL on success.
6665         (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
6666         callers.
6667         (ipcp_transform_function): Likewise.  Punt if size of access
6668         is different from TYPE_SIZE on v->value's type.
6670 2013-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6672         Backport from mainline
6673         2013-10-12  H.J. Lu  <hongjiu.lu@intel.com>
6675         PR target/58690
6676         * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
6677         (ix86_expand_movmem): Replace copy_addr_to_reg with
6678         ix86_copy_addr_to_reg.
6679         (ix86_expand_setmem): Likewise.
6681 2013-10-29  Uros Bizjak  <ubizjak@gmail.com>
6683         Backport from mainline
6684         2013-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
6686         PR rtl-optimization/58079
6687         * combine.c (combine_simplify_rtx): Avoid using SUBST if
6688         simplify_comparison has widened a comparison with an integer.
6690 2013-10-29  Martin Jambor  <mjambor@suse.cz>
6692         PR middle-end/58789
6693         Backport from mainline
6694         2013-05-09  Martin Jambor  <mjambor@suse.cz>
6696         PR lto/57084
6697         * gimple-fold.c (canonicalize_constructor_val): Call
6698         cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
6700         Backport from mainline
6701         2013-03-16  Jan Hubicka  <jh@suse.cz>
6703         * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
6704         * cgraph.c (cgraph_get_create_real_symbol_node): New function.
6705         * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
6706         of cgraph_get_create_node.
6707         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6709 2013-10-28  Tom de Vries  <tom@codesourcery.com>
6711         * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
6712         Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
6714 2013-10-26  Uros Bizjak  <ubizjak@gmail.com>
6716         Backport from mainline
6717         2013-10-22  Uros Bizjak  <ubizjak@gmail.com>
6719         PR target/58779
6720         * config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
6721         Remove CCCmode handling.
6722         <case LTU>: Return 'c' suffix for CCCmode.
6723         <case GEU>: Return 'nc' suffix for CCCmode.
6724         (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
6725         * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
6726         (*sub<mode>3_cc_overflow): Ditto.
6727         (*subsi3_zext_cc_overflow): Ditto.
6729 2013-10-26  Uros Bizjak  <ubizjak@gmail.com>
6731         Backport from mainline
6732         2013-10-19  Uros Bizjak  <ubizjak@gmail.com>
6734         PR target/58792
6735         * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
6736         ST1_REG and XMM1_REG for 32bit and 64bit targets.  Also add DI_REG
6737         and SI_REG for 64bit SYSV ABI targets.
6739 2013-08-25  Richard Henderson  <rth@twiddle.net>
6741         PR rtl/58542
6742         * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
6743         instead of create_convert_operand_to.
6744         (maybe_emit_sync_lock_test_and_set): Likewise.
6745         (expand_atomic_compare_and_swap): Likewise.
6746         (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
6748 2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6750         PR rtl-optimization/58831
6751         * alias.c (init_alias_analysis): At the beginning of each iteration, set
6752         the reg_seen[N] bit if static_reg_base_value[N] is non-null.
6754 2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6756         * recog.c (search_ofs): New static variable moved from...
6757         (peep2_find_free_register): ...here.
6758         (peephole2_optimize): Initialize it.
6760 2013-10-24  David Edelsohn  <dje.gcc@gmail.com>
6762         Backport from mainline
6763         2013-10-23  David Edelsohn  <dje.gcc@gmail.com>
6765         PR target/58838
6766         * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
6767         TARGET_32BIT final condition.
6768         (mulsi3_internal2 and splitter): Same.
6770 2013-10-23  Tom de Vries  <tom@codesourcery.com>
6772         PR tree-optimization/58805
6773         * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
6775 2013-10-23  Richard Biener  <rguenther@suse.de>
6777         Backport from mainline
6778         2013-06-24  Richard Biener  <rguenther@suse.de>
6780         PR tree-optimization/57488
6781         * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
6783 2013-10-16  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
6785         Backport from mainline
6786         2013-10-16  Ganesh Gopalasubramanian
6787                     <Ganesh.Gopalasubramanian@amd.com>
6789         * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
6790         for AMD bdver3.
6792 2013-10-16  Jakub Jelinek  <jakub@redhat.com>
6794         * BASE-VER: Set to 4.8.3.
6795         * DEV-PHASE: Set to prerelease.
6797 2013-10-16  Release Manager
6799         * GCC 4.8.2 released.
6801 2013-10-12  James Greenhalgh  <james.greenhalgh@arm.com>
6803         Backport from mainline.
6804         2013-10-12  James Greenhalgh  <james.greenhalgh@arm.com>
6806         * config/aarch64/arm_neon.h
6807         (vtbx<1,3>_<psu>8): Fix register constriants.
6809 2013-10-10  Jakub Jelinek  <jakub@redhat.com>
6811         PR middle-end/58670
6812         * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
6813         if any labels are in FALLTHRU_BB, use a special label emitted
6814         immediately after the asm goto insn rather than label_rtx
6815         of the LABEL_DECL.
6816         (expand_asm_stmt): Adjust caller.
6817         * cfgrtl.c (commit_one_edge_insertion): Force splitting of
6818         edge if the last insn in predecessor is a jump with single successor,
6819         but it isn't simplejump_p.
6821 2013-10-09  Jakub Jelinek  <jakub@redhat.com>
6823         Backport from mainline
6824         2013-09-26  Richard Biener  <rguenther@suse.de>
6826         PR tree-optimization/58539
6827         * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
6828         the fact that debug statements are not taking part in loop-closed
6829         SSA construction.
6831 2013-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6833         * config/s390/s390.c (s390_register_info): Make the call-saved FPR
6834         loop to work also for 31bit ABI.
6835         Save the stack pointer for frame_size > 0.
6837 2013-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6839         * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
6840         ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
6841         constraint letters from expanders.
6842         ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
6843         retry count to general_operand.
6844         ("tabort"): Give operand 0 a mode.
6845         ("tabort_1"): Add mode and constraint letter for operand 0.
6846         * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
6848 2013-10-04  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6850         Backport from mainline.
6852         PR target/58460
6853         * config/aarch64/aarch64.md (*add_<shift>_<mode>)
6854         (*add_<shift>_si_uxtw,*add_mul_imm_<mode>)
6855         (*sub_<shift>_<mode>)
6856         (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
6857         Remove k constraint.
6859 2013-10-02  John David Anglin  <danglin@gcc.gnu.org>
6861         * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
6863 2013-10-01  Jakub Jelinek  <jakub@redhat.com>
6864             Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6866         PR target/58574
6867         * config/s390/s390.c (s390_chunkify_start): Handle tablejump_p first,
6868         continue when done, for other jumps look through PARALLEL
6869         unconditionally.
6871 2013-09-30  Jakub Jelinek  <jakub@redhat.com>
6873         PR middle-end/58564
6874         * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
6875         optimization, punt if sign_bit_p looked through any zero extension.
6877 2013-09-27  Paulo Matos  <pmatos@broadcom.com>
6879         Backport from mainline.
6881         PR middle-end/58463
6882         2013-03-27  Richard Biener  <rguenther@suse.de>
6884         PR tree-optimization/56716
6885         * tree-ssa-structalias.c (perform_var_substitution): Adjust
6886         dumping for ref nodes.
6888 2013-09-27  Paulo Matos  <pmatos@broadcom.com>
6890         Backport from mainline.
6892         2013-09-27  Paulo Matos  <pmatos@broadcom.com>
6893         PR middle-end/58463
6894         * gcc.dg/pr58463.c: New test.
6896 2013-09-23  Eric Botcazou  <ebotcazou@adacore.com>
6898         * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
6899         assignment statements.
6901 2013-09-23  Alan Modra  <amodra@gmail.com>
6903         PR target/58330
6904         * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
6906 2013-09-23  Alan Modra  <amodra@gmail.com>
6908         * config/rs6000/predicates.md (add_cint_operand): New.
6909         (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
6910         * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
6911         using add_cint_operand.
6912         (largetoc_high_plus_aix): Likewise.
6913         * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
6915 2013-09-20  John David Anglin  <danglin@gcc.gnu.org>
6917         PR middle-end/56791
6918         * config/pa/pa.c (pa_option_override): Disable auto increment and
6919         decrement instructions until reload is completed.
6921         * config/pa/pa.md: In "scc" insn patterns, change output template to
6922         handle const0_rtx in reg_or_0_operand operands.
6924 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
6926         * omp-low.c (expand_omp_sections): Always pass len - 1 to
6927         GOMP_sections_start, even if !exit_reachable.
6929 2013-09-18  Richard Earnshaw  <rearnsha@arm.com>
6931         * arm.c (arm_expand_prologue): Validate architecture supports
6932         LDRD/STRD before accepting tuning preferences.
6933         (arm_expand_epilogue): Likewise.
6935 2013-09-18  Daniel Morris  <danielm@ecoscentric.com>
6936             Paolo Carlini  <paolo.carlini@oracle.com>
6938         PR c++/58458
6939         * doc/implement-cxx.texi: Fix references to the C++ standards.
6941 2013-09-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6943         PR tree-optimization/58088
6944         * fold-const.c (mask_with_trailing_zeros): New function.
6945         (fold_binary_loc): Make sure we don't recurse infinitely
6946         when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
6947         Use mask_with_trailing_zeros where appropriate.
6949 2013-09-14  John David Anglin  <danglin@gcc.gnu.org>
6951         PR target/58382
6952         * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
6953         calls to word_mode.
6955 2013-09-13  Christian Bruel  <christian.bruel@st.com>
6957         PR target/58314
6958         * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
6960 2013-09-11  Andi Kleen  <ak@linux.intel.com>
6962         Backport from mainline
6963         * doc/extend.texi: Use __atomic_store_n instead of
6964         __atomic_store in HLE example.
6966 2013-09-11  Andi Kleen  <ak@linux.intel.com>
6968         Backport from mainline
6969         * doc/extend.texi: Dont use __atomic_clear in HLE
6970         example.  Fix typo.
6972 2013-09-11  Andi Kleen  <ak@linux.intel.com>
6974         Backport from mainline
6975         * doc/extend.texi: Document that __atomic_clear and
6976           __atomic_test_and_set should only be used with bool.
6978 2013-09-11  Richard Biener  <rguenther@suse.de>
6980         PR middle-end/58377
6981         * passes.c (init_optimization_passes): Split critical edges
6982         before late uninit warning pass in the -Og pipeline.
6984 2013-09-11  Jakub Jelinek  <jakub@redhat.com>
6986         PR tree-optimization/58385
6987         * fold-const.c (build_range_check): If both low and high are NULL,
6988         use omit_one_operand_loc to preserve exp side-effects.
6990 2013-09-10  Richard Earnshaw  <rearnsha@arm.com>
6992         PR target/58361
6993         * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
6994         support conditional execution.
6995         (combine_vcvt_f64_<FCVTI32typename>): Likewise.
6997 2013-09-10  Jakub Jelinek  <jakub@redhat.com>
6999         PR rtl-optimization/58365
7000         * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
7001         resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
7002         it differs.
7004 2013-09-09  Jakub Jelinek  <jakub@redhat.com>
7006         PR tree-optimization/58364
7007         * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
7008         BOOLEAN_TYPE, only invert in_p and continue with arg0 if
7009         the current range can't be an unconditional true or false.
7011 2013-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7013         PR target/57735
7014         Backport from mainline
7015         2013-04-30  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7017         * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
7018         Use gen_int_mode rather than GEN_INT.
7020 2013-09-09  Richard Biener  <rguenther@suse.de>
7022         Backport from mainline
7023         2013-08-27  Richard Biener  <rguenther@suse.de>
7025         PR tree-optimization/57521
7026         * tree-if-conv.c (if_convertible_bb_p): Verify that at least
7027         one edge is non-critical.
7028         (find_phi_replacement_condition): Make sure to use a non-critical
7029         edge.  Cleanup and remove old bug workarounds.
7030         (bb_postdominates_preds): Remove.
7031         (if_convertible_loop_p_1): Do not compute post-dominators.
7032         (combine_blocks): Do not free post-dominators.
7033         (main_tree_if_conversion): Likewise.
7035 2013-09-09  Richard Biener  <rguenther@suse.de>
7037         Backport from mainline
7038         2013-09-03  Richard Biener  <rguenther@suse.de>
7040         PR middle-end/57656
7041         * fold-const.c (negate_expr_p): Fix division case.
7042         (negate_expr): Likewise.
7044 2013-09-09  Richard Biener  <rguenther@suse.de>
7046         Backport from mainline
7047         2013-08-29  Richard Biener  <rguenther@suse.de>
7049         PR tree-optimization/57685
7050         * tree-vrp.c (register_edge_assert_for_1): Recurse only for
7051         single-use operands to avoid exponential complexity.
7053 2013-09-09  Richard Biener  <rguenther@suse.de>
7055         Backport from mainline
7056         2013-08-30  Richard Biener  <rguenther@suse.de>
7058         PR tree-optimization/58223
7059         * tree-loop-distribution.c (has_anti_dependence): Rename to ...
7060         (has_anti_or_output_dependence): ... this and adjust to also
7061         look for output dependences.
7062         (mark_nodes_having_upstream_mem_writes): Adjust.
7063         (rdg_flag_uses): Likewise.
7065 2013-09-03  Richard Biener  <rguenther@suse.de>
7067         Backport from mainline
7068         2013-08-29  Richard Biener  <rguenther@suse.de>
7070         PR tree-optimization/58246
7071         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
7072         handle the dominance check inside a basic-block.
7074 2013-09-03  Richard Biener  <rguenther@suse.de>
7076         Backport from mainline
7077         2013-08-30  Richard Biener  <rguenther@suse.de>
7079         PR tree-optimization/58228
7080         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
7081         allow invariant loads in nested loop vectorization.
7083 2013-09-03  Richard Biener  <rguenther@suse.de>
7085         Backport from mainline
7086         2013-08-30  Richard Biener  <rguenther@suse.de>
7088         PR tree-optimization/58010
7089         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
7090         assert that we have a loop-closed PHI.
7092 2013-09-01  Uros Bizjak  <ubizjak@gmail.com>
7094         Backport from mainline
7095         2013-08-31  Uros Bizjak  <ubizjak@gmail.com>
7097         * config/alpha/alpha.c (alpha_emit_conditional_move): Update
7098         "cmp" RTX before signed_comparison_operator check to account
7099         for "code" changes.
7101 2013-09-01  John David Anglin  <danglin@gcc.gnu.org>
7103         * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
7105 2013-08-30  Jakub Jelinek  <jakub@redhat.com>
7107         PR tree-optimization/58277
7108         * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
7109         after seeing too many stmts with vdef in between dombb and current
7110         bb, invalidate everything.
7112 2013-08-29  Oleg Endo  <olegendo@gcc.gnu.org>
7114         Backport from mainline
7115         2013-08-05  Oleg Endo  <olegendo@gcc.gnu.org>
7117         PR other/12081
7118         * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
7119         class insn_gen_fn.
7120         * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
7121         rtx (*) (rtx, ...) with insn_gen_fn.
7122         * genoutput.c (output_insn_data): Cast gen_? function pointers to
7123         insn_gen_fn::stored_funcptr.  Add initializer braces.
7125         Backport from mainline
7126         2013-08-07  Oleg Endo  <olegendo@gcc.gnu.org>
7128         PR other/12081
7129         * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
7130         (rs6000_emit_swdiv_high_precision, rs6000_emit_swdiv_low_precision,
7131         rs6000_emit_swrsqrt): Don't cast result of GEN_FCN to gen_2arg_fn_t.
7133 2013-08-29  Jakub Jelinek  <jakub@redhat.com>
7135         Backported from mainline
7136         2013-05-27  Richard Biener  <rguenther@suse.de>
7138         PR middle-end/57381
7139         PR tree-optimization/57417
7140         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
7141         for unchanged base.
7142         (set_ssa_val_to): Compare addresses using
7143         get_addr_base_and_unit_offset.
7145         PR tree-optimization/57396
7146         * tree-affine.c (double_int_constant_multiple_p): Properly
7147         return false for val == 0 and div != 0.
7149         PR tree-optimization/57343
7150         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
7151         use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
7152         (number_of_iterations_cond): Do not build the folded tree.
7154 2013-08-28  Jakub Jelinek  <jakub@redhat.com>
7156         PR middle-end/58257
7157         * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
7159 2013-08-28  Richard Biener  <rguenther@suse.de>
7161         Backport from mainline
7162         2013-06-24  Richard Biener  <rguenther@suse.de>
7164         PR middle-end/56977
7165         * passes.c (init_optimization_passes): Move pass_fold_builtins
7166         and pass_dce earlier with -Og.
7168 2013-08-28  Uros Bizjak  <ubizjak@gmail.com>
7170         Backport from mainline
7171         2013-08-27  H.J. Lu  <hongjiu.lu@intel.com>
7173         * config/i386/driver-i386.c (host_detect_local_cpu): Update
7174         Haswell processor detection.
7176         Backport from mainline
7177         2013-08-27  Christian Widmer  <shadow@umbrox.de>
7179         PR target/57927
7180         * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
7181         of Ivy Bridge and Haswell processors.  Assume core-avx2 for unknown
7182         AVX2 capable processors.
7184 2013-08-23  Jakub Jelinek  <jakub@redhat.com>
7186         PR target/58218
7187         * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
7188         * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
7190         PR tree-optimization/58209
7191         * tree-tailcall.c (find_tail_calls): Give up for pointer result types
7192         if m or a is non-NULL.
7194 2013-08-21  Richard Earnshaw  <rearnsha@arm.com>
7196         PR target/56979
7197         * arm.c (aapcs_vfp_allocate): Decompose the argument if the
7198         suggested mode for the assignment isn't compatible with the
7199         registers required.
7201 2013-08-20  Alan Modra  <amodra@gmail.com>
7203         PR target/57865
7204         * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
7205         (rs6000_emit_epilogue): Likewise.
7207 2013-08-19  Peter Bergner  <bergner@vnet.ibm.com>
7208             Jakub Jelinek  <jakub@redhat.com>
7210         Backport from mainline
7211         * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
7212         destination and source operands.
7214 2013-08-18  Jakub Jelinek  <jakub@redhat.com>
7216         PR tree-optimization/58006
7217         * tree-parloops.c (take_address_of): Don't ICE if get_name
7218         returns NULL.
7219         (eliminate_local_variables_stmt): Remove clobber stmts.
7221 2013-08-16  Jakub Jelinek  <jakub@redhat.com>
7223         PR tree-optimization/58164
7224         * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
7225         walk gimple_goto_dest of GIMPLE_GOTO.
7227         PR tree-optimization/58165
7228         * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
7229         bi_call must be the last stmt in a bb, don't split_block, instead
7230         use fallthru edge from it and give up if there is none.
7231         Release conds vector when returning early.
7233 2013-08-15  David Given  <dg@cowlark.com>
7235         Backport from mainline
7236         2013-04-26  Vladimir Makarov  <vmakarov@redhat.com>
7238         * lra-constraints.c (process_alt_operands): Use #if HAVE_ATTR_enable
7239         instead of #ifdef.
7241 2013-08-14  Jakub Jelinek  <jakub@redhat.com>
7243         PR tree-optimization/58145
7244         * tree-sra.c (build_ref_for_offset): If prev_base has
7245         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
7247 2013-08-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7249         * config/s390/htmxlintrin.h: Add file missing from last commit.
7250         * config/s390/htmintrin.h: Likewise.
7251         * config/s390/s390intrin.h: Likewise.
7253 2013-08-14  Uros Bizjak  <ubizjak@gmail.com>
7255         Backport from mainline
7256         2013-08-13  Uros Bizjak  <ubizjak@gmail.com>
7258         * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
7259         when Pmode != word_mode.  Add length_address attribute.
7260         (sse3_monitor_<mode>): Merge from sse3_monitor and
7261         sse3_monitor64_<mode> insn patterns.  Emit addr32 prefix when
7262         Pmode != word_mode.  Update insn length attribute.
7263         * config/i386/i386.c (ix86_option_override_internal): Update
7264         ix86_gen_monitor selection for merged sse3_monitor insn.
7266 2013-08-14  Jakub Jelinek  <jakub@redhat.com>
7267             Alexandre Oliva  <aoliva@redhat.com>
7269         PR target/58067
7270         * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
7271         and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
7272         there also UNSPEC_PLTOFF.
7274 2013-08-13  Jakub Jelinek  <jakub@redhat.com>
7276         PR sanitizer/56417
7277         * asan.c (instrument_strlen_call): Fix typo in comment.
7278         Use char * type even for the lhs of POINTER_PLUS_EXPR.
7280 2013-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7282         Backport from mainline
7283         2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>
7285         PR rtl-optimization/57459
7286         * lra-constraints.c (update_ebb_live_info): Fix typo for operand
7287         type when setting live regs.
7289 2013-08-13  Marek Polacek  <polacek@redhat.com>
7290             Jakub Jelinek  <jakub@redhat.com>
7292         PR tree-optimization/57980
7293         * tree-tailcall.c (process_assignment): Return false
7294         when not dealing with integers or floats.
7296 2013-08-12  Andrew Haley  <aph@redhat.com>
7298         Backport from mainline:
7299         * 2013-07-11  Andreas Schwab  <schwab@suse.de>
7301         * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
7303 2013-08-13  Uros Bizjak  <ubizjak@gmail.com>
7305         Backport from mainline
7306         2013-08-12  Perez Read  <netfirewall@gmail.com>
7308         PR target/58132
7309         * config/i386/i386.md (*movabs<mode>_1):  Add <ptrsize> PTR before
7310         operand 0 for intel asm alternative.
7311         (*movabs<mode>_2): Ditto for operand 1.
7313 2013-08-09  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7315         Backport from mainline:
7316         2013-08-09  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7318         * config/arm/neon.md (vcond): Fix floating-point vector
7319         comparisons against 0.
7321 2013-08-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7323         Backport from mainline:
7324         2013-08-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7326         * config/arm/neon.md (movmisalign<mode>): Disable when we
7327         don't allow unaligned accesses.
7328         (*movmisalign<mode>_neon_store): Likewise.
7329         (*movmisalign<mode>_neon_load): Likewise.
7330         (*movmisalign<mode>_neon_store): Likewise.
7331         (*movmisalign<mode>_neon_load): Likewise.
7333 2013-08-06  Martin Jambor  <mjambor@suse.cz>
7335         PR middle-end/58041
7336         * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
7337         MEM_REF has proper alignment information.
7339 2013-08-05  Richard Earnshaw  <rearnsha@arm.com>
7341         PR rtl-optimization/57708
7342         * recog.c (peep2_find_free_register): Validate all regs in a
7343         multi-reg mode.
7345 2013-08-02  Eric Botcazou  <ebotcazou@adacore.com>
7347         * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
7348         the implied StoreLoad barrier for atomic operations if before.
7350 2013-08-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7352         Backports from mainline:
7353         2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7355         * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
7356         UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
7357         (struct machine_function): Add tbegin_p.
7358         (s390_canonicalize_comparison): Fold CC mode compares to
7359         conditional jump if possible.
7360         (s390_emit_jump): Return the emitted jump.
7361         (s390_branch_condition_mask, s390_branch_condition_mnemonic):
7362         Handle CCRAWmode compares.
7363         (s390_option_override): Default to -mhtm if available.
7364         (s390_reg_clobbered_rtx): Handle floating point regs as well.
7365         (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
7366         FPRs instead of df_regs_ever_live_p.
7367         (s390_optimize_nonescaping_tx): New function.
7368         (s390_init_frame_layout): Extend clobbered_regs array to cover
7369         FPRs as well.
7370         (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
7371         (s390_expand_tbegin): New function.
7372         (enum s390_builtin): New enum definition.
7373         (code_for_builtin): New array definition.
7374         (s390_init_builtins): New function.
7375         (s390_expand_builtin): New function.
7376         (TARGET_INIT_BUILTINS): Define.
7377         (TARGET_EXPAND_BUILTIN): Define.
7378         * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
7379         * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
7380         (s390_alc_comparison): Likewise.
7381         * config/s390/s390-modes.def: Add CCRAWmode.
7382         * config/s390/s390.h (processor_flags): Add PF_TX.
7383         (TARGET_CPU_HTM): Define macro.
7384         (TARGET_HTM): Define macro.
7385         (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
7386         * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
7387         UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
7388         (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
7389         (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum
7390         values.
7391         (TBEGIN_MASK, TBEGINC_MASK): New constants.
7392         ("*cc_to_int"): Move up.
7393         ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
7394         constants other than 0.
7395         ("*ccraw_to_int"): New insn and splitter definition.
7396         ("tbegin", "tbegin_nofloat", "tbegin_retry")
7397         ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
7398         ("tx_assist"): New expander.
7399         ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
7400         ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
7401         * config/s390/s390.opt: Add -mhtm option.
7402         * config/s390/s390-protos.h (s390_emit_jump): Add return type.
7403         * config/s390/htmxlintrin.h: New file.
7404         * config/s390/htmintrin.h: New file.
7405         * config/s390/s390intrin.h: New file.
7406         * doc/extend.texi: Document htm builtins.
7407         * config.gcc: Add the new header files to extra_headers.
7409         2013-07-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7411         * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
7412         enabled without -march=zEC12.
7413         * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
7414         flags to be set.
7416 2013-08-01  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
7418         Backport from mainline
7419         2013-05-13  Ganesh Gopalasubramanian
7420                     <Ganesh.Gopalasubramanian@amd.com>
7422         * config/i386/i386.c (processor_target_table): Modified default
7423         alignment values for AMD BD and BT architectures.
7425 2013-07-31  Sriraman Tallam  <tmsriram@google.com>
7427         * config/i386/i386.c (dispatch_function_versions): Fix array
7428         indexing of function_version_info to match actual_versions.
7430 2013-07-31  Sebastian Huber  <sebastian.huber@embedded-brains.de>
7432         * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
7433         * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
7435 2013-07-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7437         Backport from mainline
7438         2013-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7440         * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
7442         2013-07-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7444         * config/s390/linux-unwind.h: Use the proper dwarf to hard reg
7445         mapping for FPRs when creating the fallback framestate.
7447         2013-07-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7449         * config/s390/s390.md ("movcc"): Swap load and store instructions.
7451 2013-07-25  Terry Guo  <terry.guo@arm.com>
7453         Backport from mainline:
7454         2013-07-25  Terry Guo  <terry.guo@arm.com>
7456         * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
7457         shift_add/shift_sub0/shift_sub1 RTXs.
7459 2013-07-22  Iain Sandoe  <iain@codesourcery.com>
7461         Backport from mainline:
7462         2013-07-22  Uros Bizjak  <ubizjak@gmail.com>
7464         * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
7465         it is not needed after split.
7467         2013-07-20  Iain Sandoe  <iain@codesourcery.com>
7469         PR target/51784
7470         * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
7471         second label for nonlocal goto receivers. Don't output pic base labels
7472         unless we're producing PIC; mark that action unreachable().
7473         (ix86_save_reg): If the function contains a nonlocal label, save the
7474         PIC base reg.
7475         * config/darwin-protos.h (machopic_should_output_picbase_label): New.
7476         * gcc/config/darwin.c (emitted_pic_label_num): New GTY.
7477         (update_pic_label_number_if_needed): New.
7478         (machopic_output_function_base_name): Adjust for nonlocal receiver
7479         case.
7480         (machopic_should_output_picbase_label): New.
7481         * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
7482         (nonlocal_goto_receiver): New insn and split.
7484 2013-07-19 Wei Mi  <wmi@google.com>
7486         Backport from mainline:
7487         2013-07-18  Vladimir Makarov  <vmakarov@redhat.com>
7488                     Wei Mi  <wmi@google.com>
7490         PR rtl-optimization/57878
7491         * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
7492         top. Promote lra_assert to gcc_assert.
7493         (reload_pseudo_compare_func): Check regs first for reload pseudos.
7495 2013-07-11  Georg-Johann Lay  <avr@gjlay.de>
7497         Backport from 2013-07-19 trunk r201051.
7499         PR target/57516
7500         * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
7501         * config/avr/avr.md (adjust_len): Add `round'.
7502         * config/avr/avr-protos.h (avr_out_round): New prototype.
7503         (avr_out_plus): Add `out_label' argument.
7504         * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
7505         (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
7506         Handle the case where `insn' is just a pattern.
7507         (avr_out_bitop): Handle the case where `insn' is just a pattern.
7508         (avr_out_round): New function.
7509         (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
7511 2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
7513         * config/i386/bmiintrin.h (_bextr_u32): New.
7514         (_bextr_u64): Ditto.
7515         (_blsi_u32): New.
7516         (_blsi_u64): Ditto.
7517         (_blsr_u32): Ditto.
7518         (_blsr_u64): Ditto.
7519         (_blsmsk_u32): Ditto.
7520         (_blsmsk_u64): Ditto.
7521         (_tzcnt_u32): Ditto.
7522         (_tzcnt_u64): Ditto.
7524 2013-07-17  James Greenhalgh  <james.greenhalgh@arm.com>
7526         Backport From mainline:
7527         2013-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
7529         * config/aarch64/aarch64-builtins.c
7530         (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
7531         * config/aarch64/aarch64-simd-builtins.def (ld1): New.
7532         (st1): Likewise.
7533         * config/aarch64/aarch64-simd.md
7534         (aarch64_ld1<VALL:mode>): New.
7535         (aarch64_st1<VALL:mode>): Likewise.
7536         * config/aarch64/arm_neon.h
7537         (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
7539 2013-07-11  Georg-Johann Lay  <avr@gjlay.de>
7541         Backport from 2013-07-11 trunk r200901.
7543         PR target/57631
7544         * config/avr/avr.c (avr_set_current_function): Sanity-check signal
7545         name seen by assembler/linker if available.
7547 2013-07-10  Georg-Johann Lay  <avr@gjlay.de>
7549         Backport from 2013-07-10 trunk r200872.
7551         PR target/57844
7552         * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
7553         of my_fp.
7555 2013-07-10  Georg-Johann Lay  <avr@gjlay.de>
7557         Backport from 2013-07-10 trunk r200870.
7559         PR target/57506
7560         * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
7561         (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
7562         (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
7563         Remove duplicate devices.
7564         * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
7565         * config/avr/t-multilib: Regenerate.
7566         * config/avr/avr-tables.opt: Regenerate.
7567         * doc/avr-mmcu.texi: Regenerate.
7569 2013-07-10  Georg-Johann Lay  <avr@gjlay.de>
7571         PR target/56987
7572         * config/avr/avr.opt (Waddr-space-convert): Fix typo.
7574 2013-07-09  Joseph Myers  <joseph@codesourcery.com>
7576         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
7577         adjust register size for TDmode and TFmode for VSX registers.
7579 2013-07-08  Kai Tietz  <ktietz@redhat.com>
7581         Backport from mainline
7582         PR target/56892
7583         * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
7584         hook_bool_const_tree_true.
7586 2013-07-08  Uros Bizjak  <ubizjak@gmail.com>
7588         Backport from mainline
7589         2013-07-07  Uros Bizjak  <ubizjak@gmail.com>
7591         * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
7592         signature_TM2_ebx, it interferes with signature_INTEL_ebx.
7594         Backport from mainline
7595         2013-07-06  Uros Bizjak  <ubizjak@gmail.com>
7597         * config/i386/sse.md (sse_movlhps): Change alternative 3
7598         of operand 2 to "m".
7600 2013-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7602         * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
7604 2013-07-08  Jakub Jelinek  <jakub@redhat.com>
7606         PR rtl-optimization/57829
7607         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
7608         mask bits outside of mode are just sign-extension from mode to HWI.
7610 2013-07-03  Jakub Jelinek  <jakub@redhat.com>
7612         PR target/57777
7613         * config/i386/predicates.md (vsib_address_operand): Disallow
7614         SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
7616 2013-06-30  Terry Guo  <terry.guo@arm.com>
7618         Backport from mainline
7619         2013-03-27  Bin Cheng  <bin.cheng@arm.com>
7621         PR target/56102
7622         * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
7623         rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
7624         mult-word mode.
7626 2013-06-28  Jakub Jelinek  <jakub@redhat.com>
7628         PR target/57736
7629         * config/i386/i386.c (ix86_expand_builtin): If target == NULL
7630         and mode is VOIDmode, don't create a VOIDmode pseudo to copy result
7631         into.
7633 2013-06-27  Jakub Jelinek  <jakub@redhat.com>
7635         PR target/57623
7636         * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
7637         constraints of operand 1 and 2.
7639         PR target/57623
7640         * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
7641         to match RTL canonicalization.  Swap predicates and
7642         constraints of operand 1 and 2.
7644         * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
7645         decl before the loop, initialize to NULL.
7646         (vectorizable_load): Initialize ptr_incr to NULL.
7648 2013-06-24  Martin Jambor  <mjambor@suse.cz>
7650         PR tree-optimization/57358
7651         * ipa-prop.c (parm_ref_data_preserved_p): Always return true when
7652         not optimizing.
7654 2013-06-24  Alan Modra  <amodra@gmail.com>
7656         * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
7657         (gen_easy_altivec_constant): Likewise.
7658         * config/rs6000/predicates.md (easy_vector_constant_add_self,
7659         easy_vector_constant_msb): Likewise.
7661 2013-06-21  Uros Bizjak  <ubizjak@gmail.com>
7663         Backport from mainline
7664         2013-06-20  Uros Bizjak  <ubizjak@gmail.com>
7666         PR target/57655
7667         * config/i386/i386.c (construct_container): Report error if
7668         long double is used with disabled x87 float returns.
7670 2013-06-20  Wei Mi  <wmi@google.com>
7672         Backport from mainline
7673         2013-06-19  Wei Mi  <wmi@google.com>
7675         PR rtl-optimization/57518
7676         * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
7677         if regno is used in paradoxical subreg.
7678         (update_equiv_regs): Check pdx_subregs[regno] before
7679         set a reg to be equivalent with a mem.
7682 2013-06-20  David Edelsohn  <dje.gcc@gmail.com>
7684         Backport from mainline
7685         2013-06-19  David Edelsohn  <dje.gcc@gmail.com>
7687         PR driver/57652
7688         * collect2.c (collect_atexit): New.
7689         (collect_exit): Delete.
7690         (main): Register collect_atexit with atexit.
7691         (collect_wait): Change collect_exit to exit.
7692         (do_wait): Same.
7693         * collect2.h (collect_exit): Delete.
7694         * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
7696 2013-06-19  Matthias Klose  <doko@ubuntu.com>
7698         PR driver/57651
7699         * file-find.h (find_a_file): Add a mode parameter.
7700         * file-find.c (find_a_file): Likewise.
7701         * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
7702         with X_OK for the executables.
7703         * collect2.c (main): Call find_a_file with X_OK.
7705 2013-06-19  Igor Zamyatin  <igor.zamyatin@intel.com>
7707         * doc/invoke.texi (core-avx2): Document.
7708         (atom): Updated with MOVBE.
7710 2013-06-19  Jakub Jelinek  <jakub@redhat.com>
7712         PR driver/57651
7713         * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
7714         PERSONALITY in $PATH derived prefixes.
7716 2013-06-19  Paolo Carlini  <paolo.carlini@oracle.com>
7718         PR c++/56544
7719         * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
7720         that now in C++ the value is correct per the C++ standards.
7722 2013-06-19  Alan Modra  <amodra@gmail.com>
7724         Apply mainline patches
7725         2013-06-13  Alan Modra  <amodra@gmail.com>
7726         * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
7727         * config/rs6000/rs6000.md (signbittf2): New insn.
7728         (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
7729         (abstf2_internal, cmptf_internal2): Likewise.
7730         * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
7732         2013-06-11  Anton Blanchard  <anton@samba.org>
7733         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
7734         correct shift value in little-endian mode.
7736         2013-06-07  Alan Modra  <amodra@gmail.com>
7737         * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
7738         va_list_gpr_size.
7740         2013-06-04  Alan Modra  <amodra@gmail.com>
7741         * config/rs6000/rs6000.c (output_toc): Correct little-endian float
7742         constant output.
7744         2013-05-10  Alan Modra  <amodra@gmail.com>
7745         * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
7746         (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
7747         * configure: Regenerate.
7749         2013-05-09  Alan Modra  <amodra@gmail.com>
7750         * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
7751         powerpc64le.
7752         * configure: Regenerate.
7754         2013-05-07  Anton Blanchard  <anton@samba.org>
7755         * configure.ac (HAVE_LD_LARGE_TOC): Use right linker emulation
7756         for powerpc64 little endian.
7757         * configure: Regenerate.
7759         2013-05-06  Alan Modra  <amodra@gmail.com>
7760         * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
7761         (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
7762         * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
7763         * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
7764         (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
7765         * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
7767         2013-05-06  Alan Modra  <amodra@gmail.com>
7768         * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
7769         (ASM_SPEC): ..here.  Emit DEFAULT_ASM_ENDIAN too.
7770         (DEFAULT_ASM_ENDIAN): Define.
7771         (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
7772         * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
7773         Update -K PIC clause from sysv4.h.
7774         (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
7775         (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
7777         2013-05-06  Alan Modra  <amodra@gmail.com>
7778         * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
7779         twice for little-endian.
7780         (ashrdi3_no_power, ashrdi3): Support little-endian.
7782         2013-04-25  Alan Modra  <amodra@gmail.com>
7783         * config.gcc: Support little-endian powerpc-linux targets.
7784         * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
7785         (LINK_OS_LINUX_SPEC): Define.
7786         * config/rs6000/linuxspe.h (TARGET_DEFAULT):
7787         Preserve MASK_LITTLE_ENDIAN.
7788         * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
7789         * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
7790         * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
7791         (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
7792         (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
7793         * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
7794         Correct fp word order for little-endian.  Don't shift toc entries
7795         smaller than a word for little-endian.
7796         * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
7797         (bswapdi2 splits): Correct low-part subreg for little-endian.
7798         Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
7799         low/high where such is correct only for be.
7800         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
7801         little-endian for -mcall-aixdesc.
7803 2013-06-12  Martin Jambor  <mjambor@suse.cz>
7805         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
7806         within bounds at the beginning of the function.
7808 2013-06-12  Jakub Jelinek  <jakub@redhat.com>
7810         PR tree-optimization/57537
7811         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
7812         vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
7814 2013-06-10  Uros Bizjak  <ubizjak@gmail.com>
7816         Backport from mainline
7817         2013-06-10  Uros Bizjak  <ubizjak@gmail.com>
7819         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
7820         cmp_code to construct REG_EQUAL note.
7822 2013-06-10  Oleg Endo  <olegendo@gcc.gnu.org>
7824         Backport from mainline
7825         2013-05-20  Oleg Endo  <olegendo@gcc.gnu.org>
7827         PR target/56547
7828         * config/sh/sh.md (fmasf4): Remove empty constraints strings.
7829         (*fmasf4, *fmasf4_media): New insns.
7831 2013-06-09  Jakub Jelinek  <jakub@redhat.com>
7833         PR target/57568
7834         * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
7835         that operands[2] doesn't overlap with operands[0].
7837 2013-06-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7839         * recog.c (offsettable_address_addr_space_p): Fix calculation of
7840         address mode.  Move pointer mode initialization to the same place.
7842 2013-06-07  Sofiane Naci  <sofiane.naci@arm.com>
7844         Backport from mainline
7845         * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
7847 2013-06-07  Uros Bizjak  <ubizjak@gmail.com>
7849         Backport from mainline
7850         2013-06-05  Uros Bizjak  <ubizjak@gmail.com>
7852         * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
7853         GE, GT, GEU and GTU compares, modulo DImode compares with zero.
7855         Backport from mainline
7856         2013-05-23  Uros Bizjak  <ubizjak@gmail.com>
7858         PR target/57379
7859         * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
7860         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
7861         REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
7863 2013-06-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7865         Backport from mainline.
7866         2013-05-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7868         * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
7870 2013-06-03  James Greenhalgh  <james.greenhalgh@arm.com>
7872         Backport from mainline.
7873         2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
7875         * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
7876         format specifier in 'X' case.
7878 2013-05-31  Richard Henderson  <rth@redhat.com>
7880         PR target/56742
7881         * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
7882         (ix86_reorg): Call it.
7884 2012-05-31  Jakub Jelinek  <jakub@redhat.com>
7886         * BASE-VER: Set to 4.8.2.
7887         * DEV-PHASE: Set to prerelease.
7889 2013-05-31  Release Manager
7891         * GCC 4.8.1 released.
7893 2013-05-24  Greta Yorsh  <Greta.Yorsh@arm.com>
7895         Backport from mainline
7896         2013-05-02  Greta Yorsh  <Greta.Yorsh@arm.com>
7898         PR target/56732
7899         * config/arm/arm.c (arm_expand_epilogue): Check really_return before
7900         generating simple_return for naked functions.
7902 2013-05-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7904         PR tree-ssa/57385
7905         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
7906         that index is not negative.
7908 2013-05-23  Martin Jambor  <mjambor@suse.cz>
7910         PR middle-end/57347
7911         * tree.h (contains_bitfld_component_ref_p): Declare.
7912         * tree-sra.c (contains_bitfld_comp_ref_p): Move...
7913         * tree.c (contains_bitfld_component_ref_p): ...here.  Adjust its caller.
7914         * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
7915         not access a bit-field.  Assert all final offsets are byte-aligned.
7917 2013-05-23  Richard Biener  <rguenther@suse.de>
7919         PR rtl-optimization/57341
7920         * ira.c (validate_equiv_mem_from_store): Use anti_dependence
7921         instead of true_dependence.
7923 2013-05-23  Jakub Jelinek  <jakub@redhat.com>
7925         PR middle-end/57344
7926         * expmed.c (store_split_bit_field): If op0 is a REG or
7927         SUBREG of a REG, don't lower unit.  Handle unit not being
7928         always BITS_PER_WORD.
7930 2013-05-22  Uros Bizjak  <ubizjak@gmail.com>
7932         PR target/57356
7933         * config/i386/i386.md (*movti_internal_rex64): Emit movaps/movups
7934         for non-sse2 targets.
7935         (*movti_internal): Simplify mode attribute calculation.
7937 2013-05-22  Richard Biener  <rguenther@suse.de>
7939         Backport from mainline
7940         2013-05-21  Richard Biener  <rguenther@suse.de>
7942         PR tree-optimization/57318
7943         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
7944         estimate stmts with side-effects as likely eliminated.
7946         2013-05-21  Richard Biener  <rguenther@suse.de>
7948         PR tree-optimization/57330
7949         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
7950         preserve the call stmts fntype.
7952         2013-05-21  Richard Biener  <rguenther@suse.de>
7954         PR tree-optimization/57303
7955         * tree-ssa-sink.c (statement_sink_location): Properly handle
7956         self-assignments.
7958 2013-05-21  Magnus Granberg  <baldrick@free.fr>
7960         PR plugins/56754
7961         * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
7963 2013-05-21  Eric Botcazou  <ebotcazou@adacore.com>
7965         Backport from mainline
7966         2013-05-14  Eric Botcazou  <ebotcazou@adacore.com>
7968         * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
7969         * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
7971 2013-05-17  Jakub Jelinek  <jakub@redhat.com>
7973         PR rtl-optimization/57281
7974         PR rtl-optimization/57300
7975         * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
7976         (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
7977         what the other splitter did if the registers are dead.
7979 2013-05-17  Uros Bizjak  <ubizjak@gmail.com>
7981         Backport from mainline
7982         2013-05-16  Uros Bizjak  <ubizjak@gmail.com>
7984         * config/i386/driver-i386.c (host_detect_local_cpu): Determine
7985         cache parameters using detect_caches_amd also for CYRIX,
7986         NSC and TM2 signatures.
7988         2013-05-16  Uros Bizjak  <ubizjak@gmail.com>
7989                     Dzianis Kahanovich  <mahatma@eu.by>
7991         PR target/45359
7992         PR target/46396
7993         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7994         VIA/Centaur processors and determine their cache parameters
7995         using detect_caches_amd.
7997         2013-05-15  Uros Bizjak  <ubizjak@gmail.com>
7999         * config/i386/i386.c (ix86_option_override_internal): Update
8000         processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags.  Add
8001         PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
8002         non-SSE 3dNow! targets.  Enable TARGET_PRFCHW for TARGET_3DNOW targets.
8003         * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
8004         of TARGET_3DNOW.
8005         (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
8007 2013-05-17  Jakub Jelinek  <jakub@redhat.com>
8009         * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
8010         linking.
8012         PR tree-optimization/57051
8013         * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
8014         case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
8016 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
8018         * omp-low.c (extract_omp_for_data): For collapsed loops,
8019         if at least one of the loops is known at compile time to
8020         iterate zero times, set count to 0.
8021         (expand_omp_regimplify_p): New function.
8022         (expand_omp_for_generic): For collapsed loops, if at least
8023         one of the loops isn't known to iterate at least once,
8024         add runtime check with setting count to 0.
8025         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
8026         For unsigned types if it isn't known at compile time that
8027         the loop will iterate at least once, add runtime check to bypass
8028         the whole loop if initial condition isn't true.
8030 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
8032         PR middle-end/57251
8033         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
8034         the case when both op0 and op1 have VOIDmode.
8036 2013-05-13  Jakub Jelinek  <jakub@redhat.com>
8038         PR tree-optimization/57230
8039         * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
8040         check.
8042 2013-05-12  Joern Rennecke  <joern.rennecke@embecosm.com>
8044         * config/epiphany/epiphany.c (epiphany_init): Check size of
8045         NUM_MODES_FOR_MODE_SWITCHING.
8046         (epiphany_expand_prologue):
8047         Remove CONFIG_REGNUM initial value handling code.
8048         (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
8049         (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
8050         (emit_set_fp_mode, epiphany_mode_after): Likewise.
8051         (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
8052         Don't return 1 for FP_MODE_NONE.
8053         * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
8054         Add value for EPIPHANY_MSW_ENTITY_CONFIG.
8055         (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
8056         * config/epiphany/epiphany.md (save_config): New pattern.
8058 2013-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8060         * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
8061         Add mthumb/march=armv7-a multilib.
8062         Add mthumb/march=armv7-r multilib.
8063         Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
8065 2013-05-10  Ralf Corsépius  <ralf.corsepius@rtems.org>
8067         PR target/57237
8068         * config/v850/t-rtems: Add more multilibs.
8070 2013-05-10  Richard Biener  <rguenther@suse.de>
8072         PR tree-optimization/57214
8073         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
8074         not propagate from SSA names that occur in abnormal PHI nodes.
8076 2013-05-10  Alan Modra  <amodra@gmail.com>
8078         PR target/55033
8079         * varasm.c (default_elf_select_section): Move !DECL_P check..
8080         (get_named_section): ..to here before calling get_section_name.
8081         Adjust assertion.
8082         (default_section_type_flags): Add DECL_P check.
8083         * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
8084         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
8086 2013-05-09  Joern Rennecke  <joern.rennecke@embecosm.com>
8088         * config/epiphany/epiphany.c (epiphany_expand_prologue):
8089         When using gen_stack_adjust_str with a register offset, add a
8090         REG_FRAME_RELATED_EXPR note.
8092 2013-05-09  Martin Jambor  <mjambor@suse.cz>
8094         PR middle-end/56988
8095         * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
8096         * ipa-cp.c (find_aggregate_values_for_callers_subset): Fill in the
8097         by_ref flag of ipa_agg_replacement_value structures.
8098         (known_aggs_to_agg_replacement_list): Likewise.
8099         * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
8100         (read_agg_replacement_chain): Likewise.
8101         (ipcp_transform_function): Also check that by_ref flags match.
8103 2013-05-08  Diego Novillo  <dnovillo@google.com>
8105         PR bootstrap/54659
8107         Revert:
8109         2012-08-17  Diego Novillo  <dnovillo@google.com>
8111                 PR bootstrap/54281
8112                 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
8113                 * config.in: Regenerate.
8114                 * configure: Regenerate.
8115                 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is
8116                 set.
8118 2013-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
8120         PR tree-optimization/57200
8121         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
8122         Only call inform if the preceding warning_at returns true.
8124 2013-05-07  Jakub Jelinek  <jakub@redhat.com>
8126         PR tree-optimization/57149
8127         * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
8128         (can_skip_redundant_opnd, compute_uninit_opnds_pos,
8129         collect_phi_def_edges, execute_late_warn_uninitialized): Use
8130         uninit_undefined_value_p instead of ssa_undefined_value_p.
8132         PR debug/57184
8133         * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
8134         for modifier == EXPAND_INITIALIZER.
8136 2013-05-07  Richard Biener  <rguenther@suse.de>
8138         Backport from mainline
8139         2013-05-06  Richard Biener  <rguenther@suse.de>
8141         PR tree-optimization/57185
8142         * tree-parloops.c (add_field_for_reduction): Handle anonymous
8143         SSA names properly.
8145         2013-04-19  Richard Biener  <rguenther@suse.de>
8147         PR tree-optimization/57000
8148         * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
8150 2013-05-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
8152         Backport from trunk
8153         2013-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
8155         PR target/57150
8156         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
8157         to save TFmode registers and DImode to save TImode registers for
8158         caller save operations.
8159         (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
8160         mark being partially clobbered since they only use the first
8161         double word.
8163         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
8164         and TDmode only use the upper 64-bits of each VSX register.
8166 2013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
8168         PR target/57108
8169         * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
8171 2013-05-06  Uros Bizjak  <ubizjak@gmail.com>
8173         Backport from mainline
8174         2013-05-06  Uros Bizjak  <ubizjak@gmail.com>
8176         PR target/57106
8177         * config/i386/i386.c (add_parameter_dependencies): Add dependence
8178         between "first_arg" and "insn", not "last" and "insn".
8180 2013-05-03  Jakub Jelinek  <jakub@redhat.com>
8182         PR rtl-optimization/57130
8183         * combine.c (make_compound_operation) <case SUBREG>: Pass
8184         SET instead of COMPARE as in_code to the recursive call
8185         if needed.
8187         Backported from mainline
8188         2013-04-26  Jakub Jelinek  <jakub@redhat.com>
8190         PR tree-optimization/57051
8191         * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
8192         and VEC_RSHIFT_EXPR if shift count is a multiple of element
8193         bitsize.
8195         2013-04-12  Marc Glisse  <marc.glisse@inria.fr>
8197         * fold-const.c (fold_binary_loc): Call const_binop also for mixed
8198         vector-scalar operations.
8200 2013-05-03  Marek Polacek  <polacek@redhat.com>
8202         Backport from mainline
8203         2013-04-25  Marek Polacek  <polacek@redhat.com>
8205         PR tree-optimization/57066
8206         * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
8208 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
8210         Backport from mainline
8211         2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
8213         * lra-constraints.c (process_alt_operands): Add checking alt
8214         number to choose the best alternative.
8216         2013-05-01  Vladimir Makarov  <vmakarov@redhat.com>
8218         PR target/57091
8219         * lra-constraints.c (best_small_class_operands_num): Remove.
8220         (process_alt_operands): Remove small_class_operands_num.  Take
8221         small classes operands into losers and only if the operand is not
8222         matched.  Modify debugging output.
8223         (curr_insn_transform): Remove best_small_class_operands_num.
8224         Print insn name.
8226 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
8228         Backport from mainline
8229         2013-04-29  Vladimir Makarov  <vmakarov@redhat.com>
8231         PR target/57097
8232         * lra-constraints.c (process_alt_operands): Discourage a bit more
8233         using memory for pseudos.  Print cost dump for alternatives.
8234         Modify cost values for conflicts with early clobbers.
8235         (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
8237 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
8239         Backport from mainline
8240         2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
8242         PR rtl-optimizations/57046
8243         * lra-constraints (split_reg): Set up lra_risky_transformations_p
8244         for multi-reg splits.
8246 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
8248         Backport from mainline
8249         2013-04-22  Vladimir Makarov  <vmakarov@redhat.com>
8251         PR target/57018
8252         * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
8253         a set sp if no stack realignment.
8255 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
8257         Backport from mainline
8258         2013-04-18  Vladimir Makarov  <vmakarov@redhat.com>
8260         PR rtl-optimization/56999
8261         * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
8262         related code.
8263         (lra_coalesce): Remove split_origin_bitmap and related code.
8264         * lra.c (lra): Coalesce after undoing inheritance. Recreate live
8265         ranges if necessary.
8267 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
8269         Backport from mainline
8270         2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
8272         PR rtl-optimization/56847
8273         * lra-constraints.c (process_alt_operands): Discourage alternative
8274         with non-matche doffsettable memory constraint fro memory with
8275         known offset.
8277 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
8279         Backport from mainline
8280         2013-03-28  Ian Bolton  <ian.bolton@arm.com>
8282         * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
8283         record only when desired or required.
8285 2013-04-30  Jakub Jelinek  <jakub@redhat.com>
8287         PR tree-optimization/57104
8288         * tsan.c (instrument_expr): Don't instrument accesses to
8289         DECL_HARD_REGISTER VAR_DECLs.
8291 2013-04-30  Uros Bizjak  <ubizjak@gmail.com>
8293         Backport from mainline
8294         2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
8296         PR target/44578
8297         * config/i386/i386.md (*zero_extendsidi2_rex64): Add "!" to m->?*y
8298         alternative.
8299         (*zero_extendsidi2): Ditto.
8301         Backport from mainline
8302         2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
8304         PR target/57098
8305         * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
8307 2013-04-29  Richard Biener  <rguenther@suse.de>
8309         PR middle-end/57103
8310         * tree-cfg.c (move_stmt_op): Fix condition under which to update
8311         TREE_BLOCK.
8312         (move_stmt_r): Remove redundant checking.
8314 2013-04-29  Christian Bruel  <christian.bruel@st.com>
8316         PR target/57108
8317         * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
8319 2013-04-29  Jakub Jelinek  <jakub@redhat.com>
8321         PR tree-optimization/57083
8322         * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
8323         non-singleton shift count range, zero extend low_bound for uns case.
8325 2013-04-28  Eric Botcazou  <ebotcazou@gcc.gnu.org>
8327         * stor-layout.c (finalize_size_functions): Allocate a structure and
8328         reset cfun before dumping the functions.
8330 2013-04-27  Jakub Jelinek  <jakub@redhat.com>
8332         PR target/56866
8333         * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
8334         use xop_pmacsdqh if uns_p.
8335         * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
8336         the immediate rotate count.
8338 2013-04-25  Jakub Jelinek  <jakub@redhat.com>
8340         PR rtl-optimization/57003
8341         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
8342         call note_stores with kill_clobbered_value callback again after
8343         killing regs_invalidated_by_call.
8345 2013-04-25  Ian Bolton  <ian.bolton@arm.com>
8347         Backported from mainline.
8348         2013-03-22  Ian Bolton  <ian.bolton@arm.com>
8350         * config/aarch64/aarch64.c (aarch64_print_operand): New
8351         format specifier for printing a constant in hex.
8352         * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
8353         format specifier for printing second operand.
8355 2013-04-24  James Greenhalgh  <james.greenhalgh@arm.com>
8357         Backported from mainline.
8358         2013-04-24  James Greenhalgh  <james.greenhalgh@arm.com>
8360         * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
8361         (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
8362         (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
8364 2013-04-24  Greta Yorsh  <Greta.Yorsh@arm.com>
8366         Backported from mainline.
8367         PR target/56797
8368         * config/arm/arm.c (load_multiple_sequence): Require SP
8369         as base register for loads if SP is in the register list.
8371 2013-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8372             Steven Bosscher <steven@gcc.gnu.org>
8374         Backported from mainline.
8375         PR rtl-optimization/56605
8376         * loop-iv.c (implies_p): Handle equal RTXs and subregs.
8378 2013-04-22  Marek Polacek  <polacek@redhat.com>
8380         Backported from mainline.
8381         2013-04-22  Marek Polacek  <polacek@redhat.com>
8383         PR sanitizer/56990
8384         * tsan.c (instrument_expr): Don't instrument expression
8385         in case its size is zero.
8387 2013-04-22  Yufeng Zhang  <yufeng.zhang@arm.com>
8389         Backported from mainline.
8390         2013-04-10  Yufeng Zhang  <yufeng.zhang@arm.com>
8391         * config/aarch64/aarch64.c (aarch64_print_extension): New function.
8392         (aarch64_start_file): Use the new function.
8394 2013-04-18  Jakub Jelinek  <jakub@redhat.com>
8396         PR tree-optimization/56984
8397         * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
8398         and (x >> M) >= N don't register any assertion if N << M is the
8399         minimum value.
8401 2013-04-17  David Edelsohn  <dje.gcc@gmail.com>
8403         PR target/56948
8404         * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
8406 2013-04-15  Jakub Jelinek  <jakub@redhat.com>
8408         PR tree-optimization/56962
8409         * gimple-ssa-strength-reduction.c (record_increment): Only set
8410         initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
8411         either rhs1 or rhs2 is equal to c->base_expr.
8413 2013-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8415         * emit-rtl.c (reset_all_used_flags): New function.
8416         (verify_rtl_sharing): Call reset_all_used_flags before and after
8417         performing the checks.
8419 2013-04-15  Eric Botcazou  <ebotcazou@adacore.com>
8421         PR target/56890
8422         * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
8423         (S_MODES): Set H_MODE bit.
8424         (SF_MODES): Set only S_MODE and SF_MODE bits.
8425         (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
8426         (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
8427         <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
8428         <MODE_FLOAT>: Likewise.
8430 2013-04-12  Vladimir Makarov  <vmakarov@redhat.com>
8432         PR target/56903
8433         * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
8434         lra_in_progress for return.
8436 2013-04-12  Jakub Jelinek  <jakub@redhat.com>
8438         PR tree-optimization/56918
8439         PR tree-optimization/56920
8440         * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
8441         instead of op1 - op2.  Pass 2 * TYPE_PRECISION (type) as second
8442         argument to rshift method.
8444 2013-04-12  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8446         * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as
8447         well.
8449 2013-04-11  Marek Polacek  <polacek@redhat.com>
8451         PR tree-optimization/48184
8452         * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum
8453         value to 1.
8455 2013-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
8457         Backported from mainline.
8458         2013-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
8460         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
8461         floating-point vector comparisons against 0.
8463 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
8465         PR tree-optimization/56899
8466         * fold-const.c (extract_muldiv_1): Apply distributive law
8467         only if TYPE_OVERFLOW_WRAPS (ctype).
8469 2013-04-10  David S. Miller  <davem@davemloft.net>
8471         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
8472         or -mcpu=hypersparc.
8474 2013-04-10  Jakub Jelinek  <jakub@redhat.com>
8476         Backported from mainline
8477         2013-04-09  Jakub Jelinek  <jakub@redhat.com>
8479         PR middle-end/56883
8480         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
8481         expand_omp_for_static_chunk): Use simple_p = true in
8482         force_gimple_operand_gsi calls when assigning to addressable decls.
8484 2013-04-09  Marek Polacek  <polacek@redhat.com>
8486         PR tree-optimization/48762
8487         * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum
8488         value to 1.
8490 2013-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8492         * config/s390/s390.c (s390_expand_insv): Only accept insertions
8493         within mode size.
8495 2013-04-08  Marek Polacek  <polacek@redhat.com>
8497         PR rtl-optimization/48182
8498         * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
8499         value to 1.
8501 2013-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8503         PR target/55487
8504         * config/pa/pa.c (legitimize_pic_address): Before incrementing label
8505         nuses, make sure we have a label.
8507 2013-04-04  Ian Lance Taylor  <iant@google.com>
8509         Backport from mainline:
8510         * doc/standards.texi (Standards): The Go frontend supports the Go
8511         1 language standard.
8513 2013-04-04  Marek Polacek  <polacek@redhat.com>
8515         Backport from mainline:
8516         2013-04-04  Marek Polacek  <polacek@redhat.com>
8518         PR tree-optimization/48186
8519         * predict.c (maybe_hot_frequency_p): Return false if
8520         HOT_BB_FREQUENCY_FRACTION is 0.
8521         (cgraph_maybe_hot_edge_p): Likewise.
8523 2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8525         Backport from mainline:
8526         2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8528         PR target/56720
8529         * config/arm/iterators.md (v_cmp_result): New mode attribute.
8530         * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
8532 2013-04-04  Richard Biener  <rguenther@suse.de>
8534         PR tree-optimization/56837
8535         * tree-loop-distribution.c (classify_partition): For non-zero
8536         values require that the value has the same precision as its
8537         mode to be useful as memset value.
8539 2013-04-03  Roland McGrath  <mcgrathr@google.com>
8541         Backport from mainline:
8542         2013-03-26  Roland McGrath  <mcgrathr@google.com>
8544         * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
8545         than fprintf with a non-constant, non-format string.
8547 2013-04-03  Marek Polacek  <polacek@redhat.com>
8549         Backport from mainline:
8550         2013-04-03  Marek Polacek  <polacek@redhat.com>
8552         PR sanitizer/55702
8553         * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN
8554         functions.
8556 2013-04-03  Richard Biener  <rguenther@suse.de>
8558         PR tree-optimization/56817
8559         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
8560         Split out ...
8561         (tree_unroll_loops_completely_1): ... new function to manually
8562         walk the loop tree, properly defering outer loops of unrolled
8563         loops to later iterations.
8565 2013-04-02  Jakub Jelinek  <jakub@redhat.com>
8567         PR rtl-optimization/56745
8568         * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
8569         if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
8571 2013-04-02  Wei Mi  <wmi@google.com>
8573         * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
8574         ashl<mode>3_mask, *<shift_insn><mode>3_mask and
8575         *<rotate_insn><mode>3_mask in i386.md.
8577 2013-04-01  Wei Mi  <wmi@google.com>
8579         * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
8580         Truncate operand 2 using %b asm operand modifier.
8581         (*<shift_insn><mode>3_mask): Ditto.
8582         (*<rotate_insn><mode>3_mask): Ditto.
8584 2013-04-01  Uros Bizjak  <ubizjak@gmail.com>
8586         * config/i386/i386.md (*movsf_internal): Change type of
8587         alternatives 3,4 to imov.
8589 2013-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
8591         PR lto/56777
8592         * doc/invoke.texi ([-fwhole-program]): Fix typo.
8594 2013-03-29  Kirill Yukhin  <kirill.yukhin@intel.com>
8596         * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
8597         Fix declaration name.
8599 2013-03-28  Gerald Pfeifer  <gerald@pfeifer.com>
8601         * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
8602         * doc/extend.texi (Named Address Spaces): Ditto.
8603         (Variable Attributes): Ditto.
8605 2013-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8607         * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
8608         general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
8609         is not enabled.
8611 2013-03-27  Walter Lee  <walt@tilera.com>
8613         Backport from mainline:
8614         2013-03-27  Walter Lee  <walt@tilera.com>
8616         * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
8617         double-decrement of next_scratch_regno.
8619 2013-03-27  Walter Lee  <walt@tilera.com>
8621         Backport from mainline:
8622         2013-03-27  Walter Lee  <walt@tilera.com>
8624         * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
8625         input operands.
8626         (insn_v1mulus): Ditto.
8627         (insn_v2muls): Ditto.
8629 2013-03-27  Walter Lee  <walt@tilera.com>
8631         Backport from mainline:
8632         2013-03-27  Walter Lee  <walt@tilera.com>
8634         * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete
8635         extra tab.
8636         (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
8638 2013-03-27  Walter Lee  <walt@tilera.com>
8640         Backport from mainline:
8641         2013-03-27  Walter Lee  <walt@tilera.com>
8643         * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
8644         (*sibcall_value): Ditto.
8646 2013-03-27  Walter Lee  <walt@tilera.com>
8648         Backport from mainline:
8649         2013-03-27  Walter Lee  <walt@tilera.com>
8651         * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
8652         (insn_mnz_v8qi): ... this ...
8653         (insn_mnz_v4hi): ... and this.  Replace (const_int 0) with the
8654         vector equivalent.
8655         (insn_v<n>mnz): Replaced by ...
8656         (insn_v1mnz): ... this ...
8657         (insn_v2mnz): ... and this.  Replace (const_int 0) with the vector
8658         equivalent.
8659         (insn_mz_<mode>): Replaced by ...
8660         (insn_mz_v8qi): ... this ...
8661         (insn_mz_v4hi): ... and this.  Replace (const_int 0) with the
8662         vector equivalent.
8663         (insn_v<n>mz): Replaced by ...
8664         (insn_v1mz): ... this ...
8665         (insn_v2mz): ... and this.  Replace (const_int 0) with the vector
8666         equivalent.
8668 2013-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8670         * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
8672 2013-03-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8674         * config/rtems.opt: Add -pthread option.
8676 2013-03-26  Sofiane Naci  <sofiane.naci@arm.com>
8678         * config/aarch64/aarch64.c (aarch64_classify_address): Support
8679         PC-relative load in SI modes and above only.
8681 2013-03-26  Walter Lee  <walt@tilera.com>
8683         Backport from mainline:
8684         2013-03-26  Walter Lee  <walt@tilera.com>
8686         * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
8687         * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
8689 2013-03-26  Walter Lee  <walt@tilera.com>
8691         Backport from mainline:
8692         2013-03-25  Walter Lee  <walt@tilera.com>
8694         * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
8695         TILEGX_INSN_SHUFFLEBYTES1.
8696         * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
8697         shufflebytes1.
8698         (tilegx_builtins): Ditto.
8699         * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
8701 2013-03-26  Walter Lee  <walt@tilera.com>
8703         Backport from mainline:
8704         2013-03-25  Walter Lee  <walt@tilera.com>
8706         * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
8707         tests for constraint J, K, N, P.
8709 2013-03-26  Walter Lee  <walt@tilera.com>
8711         Backport from mainline:
8712         2013-03-25  Walter Lee  <walt@tilera.com>
8714         * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
8715         Use indirect/pcrel encoding.
8716         * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
8717         Ditto.
8719 2013-03-25  Richard Biener  <rguenther@suse.de>
8721         PR middle-end/56694
8722         * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
8723         must-not-throw stmt location.
8725 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
8727         * BASE-VER: Set to 4.8.1.
8728         * DEV-PHASE: Set to prerelease.
8730 2013-03-22  Release Manager
8732         * GCC 4.8.0 released.
8734 2013-03-21  Walter Lee  <walt@tilera.com>
8736         * config/tilegx/sync.md (atomic_test_and_set): New pattern.
8738 2013-03-21  Mark Wielaard  <mjw@redhat.com>
8740         * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
8742 2013-03-20  Richard Biener  <rguenther@suse.de>
8744         PR tree-optimization/56661
8745         * tree-ssa-sccvn.c (visit_use): Only value-number calls if
8746         the result does not have to be distinct.
8748 2013-03-20  Jakub Jelinek  <jakub@redhat.com>
8750         PR tree-optimization/56635
8751         * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Give up
8752         if lhs of then_assign and else_assign don't have compatible types.
8754 2013-03-17  Jakub Jelinek  <jakub@redhat.com>
8756         PR target/56640
8757         * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
8758         class names.  Remove trailing comma after "ALL_REGS".
8760 2013-03-16  Jakub Jelinek  <jakub@redhat.com>
8762         * DEV-PHASE: Set to prerelease.
8764 2013-03-14  Andi Kleen  <ak@linux.intel.com>
8766         PR target/56619
8767         * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
8768         __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
8769         Document _x* TSX intrinsics.
8771 2013-03-14  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
8772             David Holsgrove <david.holsgrove@xilinx.com>
8774         * configure.ac: Add MicroBlaze TLS support detection.
8775         * configure: Regenerate.
8776         * config/microblaze/microblaze-protos.h
8777         (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
8778         symbol_mentioned_p, label_mentioned_p): Add prototypes.
8779         * config/microblaze/microblaze.c (microblaze_address_type): Add
8780         ADDRESS_TLS and tls_reloc address types.
8781         (microblaze_address_info): Add tls_reloc.
8782         (TARGET_HAVE_TLS): Define.
8783         (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
8784         microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
8785         symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
8786         load_tls_operand, microblaze_call_tls_get_addr,
8787         microblaze_legitimize_tls_address): New functions.
8788         (microblaze_classify_unspec): Handle UNSPEC_TLS.
8789         (get_base_reg): Use microblaze_tls_symbol_p.
8790         (microblaze_classify_address): Handle TLS.
8791         (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
8792         label_mentioned_p and microblaze_tls_referenced_p.
8793         (microblaze_legitimize_address): Handle TLS.
8794         (microblaze_address_insns): Handle ADDRESS_TLS.
8795         (pic_address_needs_scratch): Handle TLS.
8796         (print_operand_address): Handle TLS.
8797         (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
8798         (microblaze_expand_move): Handle TLS.
8799         (microblaze_legitimate_constant_p): Check
8800         microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8801         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
8802         * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
8803         (PIC_OFFSET_TABLE_REGNUM): Set.
8804         * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
8805         * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
8806         (addsi3, movsi_internal2, movdf_internal): Update constraints
8807         * config/microblaze/predicates.md (arith_plus_operand): Define
8808         (move_operand): Redefine as move_src_operand, check
8809         microblaze_tls_referenced_p.
8811 2013-03-14  Ian Bolton  <ian.bolton@arm.com>
8813         * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
8814         (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
8816 2013-03-14  Ian Bolton  <ian.bolton@arm.com>
8818         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
8819         CC mode for AND.
8821 2013-03-14  Jakub Jelinek  <jakub@redhat.com>
8823         PR tree-optimization/53265
8824         * common.opt (Waggressive-loop-optimizations): New option.
8825         * tree-ssa-loop-niter.c: Include tree-pass.h.
8826         (do_warn_aggressive_loop_optimizations): New function.
8827         (record_estimate): Call it.  Don't add !is_exit bounds to loop->bounds
8828         if number_of_latch_executions returned constant.
8829         (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
8830         early.  If number_of_latch_executions returned constant, set
8831         nb_iterations_upper_bound back to it.
8832         * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
8833         field.
8834         * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
8835         * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
8837         * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
8838         (MULTILIB_OSDIRNAMES): Set.
8839         * genmultilib: If defaultosdirname doesn't start with :: , set
8840         defaultosdirname2 instead, clear it and emit two . multilib_raw
8841         entries instead of just one.
8843 2013-03-14  Kaz Kojima  <kkojima@gcc.gnu.org>
8845         * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
8846         (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
8847         * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
8848         (SUBTARGET_OVERRIDE_OPTIONS): New.
8850 2013-03-13  Oleg Endo  <olegendo@gcc.gnu.org>
8852         PR target/49880
8853         * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
8854         (musermode): Convert to Var(TARGET_USERMODE).
8855         * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
8856         MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
8857         * config/sh/sh.c (sh_option_override): Use
8858         TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
8859         * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
8860         condition.
8861         (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
8862         TARGET_SH4.
8863         (udivsi3_i4_single, divsi3_i4_single): Use
8864         TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
8866 2013-03-13  Dave Korn  <dave.korn.cygwin@....>
8868         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
8869         default setting.
8871 2013-03-13  Richard Biener  <rguenther@suse.de>
8873         PR tree-optimization/56608
8874         * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
8875         calls when vectorizing basic-blocks.
8877 2013-03-13  Jakub Jelinek  <jakub@redhat.com>
8879         PR plugins/45078
8880         * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
8881         tm_file.
8883 2013-03-12  Jakub Jelinek  <jakub@redhat.com>
8885         * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
8887 2013-03-11  Jan Hubicka  <jh@suse.cz>
8889         PR lto/56557
8890         * lto-streamer-out.c (output_symbol_p): Skip references from
8891         constructors of external variables.
8893 2013-03-11  Jan Hubicka  <jh@suse.cz>
8895         PR middle-end/56571
8896         * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
8897         from pseudos.
8898         * emit-rtl.c (verify_rtx_sharing): Likewise.
8899         (copy_insn_1): Likewise.
8900         * rtl.c (copy_rtx): Likewise.
8902 2013-03-11  Georg-Johann Lay  <avr@gjlay.de>
8904         PR target/56591
8905         * config/avr/avr.c (avr_print_operand): Add space after '%c' in
8906         output_operand_lossage message.
8908 2013-03-11  Richard Earnshaw  <rearnsha@arm.com>
8910         PR target/56470
8911         * arm.c (shift_op): Validate RTL pattern on the fly.
8912         (arm_print_operand, case 'S'): Don't use shift_operator to validate
8913         the RTL.
8915 2013-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8917         PR target/56347
8918         * config/pa/pa.md (call_value): Check for calls to powf and direct to
8919         new call patterns that clobber %fr12.
8920         (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
8921         split and postreload patterns.
8922         * config/pa/pa.c (pa_conditional_register_usage): Revert marking
8923         registers %fr12 and %fr12R as call used.
8925 2013-03-09  Steven Bosscher  <steven@gcc.gnu.org>
8927         * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
8928         (canon_address, record_store, replace_read, check_mem_read_rtx,
8929         scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
8930         dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
8931         rest_of_handle_dse): Likewise.
8933 2013-03-09  Richard Sandiford  <rdsandiford@googlemail.com>
8935         PR middle-end/56524
8936         * tree.h (tree_optimization_option): Rename target_optabs to optabs.
8937         Add base_optabs.
8938         (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
8939         (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
8940         (save_optabs_if_changed): Replace with...
8941         (init_tree_optimization_optabs): ...this.
8942         * optabs.c (save_optabs_if_changed): Rename to...
8943         (init_tree_optimization_optabs): ...this.  Take the optimization node
8944         as argument.  Do nothing if the base optabs are already correct.
8945         Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
8946         to recompute optabs.
8947         * function.h (function): Remove optabs field.
8948         * function.c (invoke_set_current_function_hook): Call
8949         init_tree_optimization_optabs.  Use the result to initialize
8950         this_fn_optabs.
8952 2013-02-27  Aldy Hernandez  <aldyh@redhat.com>
8954         * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
8955         if GTMA_HAS_NO_INSTRUMENTATION.
8956         (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
8957         (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
8958         * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
8959         * gimple-pretty-print.c (dump_gimple_transaction): Handle
8960         GTMA_HAS_NO_INSTRUMENTATION.
8962 2013-03-08  Jakub Jelinek  <jakub@redhat.com>
8964         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
8965         libasan_preinit.o.
8967 2013-03-08  Marek Polacek  <polacek@redhat.com>
8968             Jakub Jelinek  <jakub@redhat.com>
8970         PR tree-optimization/56478
8971         * predict.c (is_comparison_with_loop_invariant_p): Change the
8972         type of loop_step to tree.
8973         (predict_loops): Adjust.
8974         (predict_iv_comparison): Perform the computations on double_ints.
8976 2013-03-08  Richard Biener  <rguenther@suse.de>
8978         PR tree-optimization/56570
8979         * tree-cfg.c (verify_expr_location_1): Verify locations for
8980         DECL_DEBUG_EXPR.
8981         * tree-sra.c (create_access_replacement): Strip locations
8982         from DECL_DEBUG_EXPRs.
8984 2013-03-08  Richard Biener  <rguenther@suse.de>
8986         * tree-inline.c (expand_call_inline): Do not associate
8987         a BLOCK with the location in BLOCK_SOURCE_LOCATION.
8988         * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
8990 2013-03-08  Richard Biener  <rguenther@suse.de>
8992         * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
8993         or block changes with -Og.  Fix for location / block encoding
8994         changes and PHI arguments with locations.
8996 2013-03-07  Steven Bosscher  <steven@gcc.gnu.org>
8998         * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
8999         for all counters.
9000         (struct output_info): Likewise.
9001         (register_overhead): Remove bad gcc_assert.
9002         (bitmap_find_bit): If there is only a single bitmap element, do not
9003         count a miss as a search.
9004         (print_statistics): Update for counter type changes.
9005         (dump_bitmap_statistics): Likewise.  Print headers such that they
9006         are properly lined up with the printed counters.
9008 2013-03-07  Jakub Jelinek  <jakub@redhat.com>
9010         PR tree-optimization/56559
9011         * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
9012         check that it has only a single use.
9014 2013-03-07  Richard Biener  <rguenther@suse.de>
9016         * doc/invoke.texi (fwhole-program): Discourage use in combination
9017         with -flto.
9019 2013-03-06  Jakub Jelinek  <jakub@redhat.com>
9021         * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
9023         PR tree-optimization/56539
9024         * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
9025         instead of GSI_CONTINUE_LINKING as last argument to
9026         force_gimple_operand_gsi.  Adjust function comment.
9028         * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
9029         aarch64-cores.def.
9031         PR middle-end/56548
9032         * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
9033         promoted mode, convert the result back to the original mode.
9035 2013-03-06  Richard Biener  <rguenther@suse.de>
9037         PR middle-end/56294
9038         * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
9039         (insert_updated_phi_nodes_compare_uids): New function.
9040         (update_ssa): Sort symbols_to_rename after UID before
9041         traversing it to insert PHI nodes.
9043 2013-03-06  Richard Biener  <rguenther@suse.de>
9045         PR middle-end/50494
9046         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
9047         Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
9049         Revert
9050         2013-02-13  Richard Biener  <rguenther@suse.de>
9052         PR lto/50494
9053         * varasm.c (output_constant_def_1): Get the decl representing
9054         the constant as argument.
9055         (output_constant_def): Wrap output_constant_def_1.
9056         (make_decl_rtl): Use output_constant_def_1 with the decl
9057         representing the constant.
9058         (build_constant_desc): Optionally re-use a decl already
9059         representing the constant.
9060         (tree_output_constant_def): Adjust.
9062 2013-03-06  Joey Ye  <joey.ye@arm.com>
9064         PR lto/50293
9065         * gcc.c (convert_white_space): New function.
9066         (main): Handles white space in function name.
9068 2013-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
9070         PR target/56529
9071         * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
9072         instead of TARGET_SH2 for call-table case.  Do not set sh_div_strategy
9073         to SH_DIV_CALL_TABLE for TARGET_SH2.
9074         * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
9075         list.
9076         * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
9077         call-table options.
9079 2013-03-05  Sterling Augustine  <saugustine@google.com>
9080             Cary Coutant  <ccoutant@google.com>
9082         PR debug/55364
9083         * dwarf2out.c (resolve_addr): Don't call
9084         remove_loc_list_addr_table_entries a second time for the same
9085         expression.
9087 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
9089         PR debug/56510
9090         * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
9091         (avoid_complex_debug_insns): New function.
9092         (expand_debug_locations): Call it.
9094         PR rtl-optimization/56484
9095         * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
9096         lifetimes of hard registers on small register class machines.
9098 2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
9100         * config/microblaze/microblaze-protos.h: Rename
9101         microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
9102         * config/microblaze/microblaze.c (microblaze_attribute_table): Add
9103         fast_interrupt.
9104         (microblaze_fast_interrupt_function_p): New function.
9105         (microblaze_is_interrupt_handler): Rename to
9106         microblaze_is_interrupt_variant and add fast_interrupt check.
9107         (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
9108         (save_restore_insns): Likewise.
9109         (compute_frame_size): Likewise.
9110         (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
9111         (microblaze_globalize_label): Likewise.
9112         * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
9113         * config/microblaze/microblaze.md: Use wrapper
9114         microblaze_is_interrupt_variant.
9116 2013-03-05  Kai Tietz  <ktietz@redhat.com>
9118         * sdbout.c (sdbout_one_type): Switch to current function's section
9119         supporting cold/hot.
9121 2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
9123         * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
9124         -mxl-reorder.
9126 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
9128         PR middle-end/56461
9129         * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
9130         if VALGRIND_GET_VBITS is defined, temporarily make object
9131         memory all defined, and restore previous valgrind addressability
9132         and definability afterwards.  Free this_object at the end.
9134         PR middle-end/56461
9135         * lra.c (lra): Call lra_clear_live_ranges if live_p,
9136         right before calling lra_create_live_ranges, also call it
9137         when clearing live_p.  Only call lra_clear_live_ranges
9138         at the end if live_p.
9140         PR middle-end/56461
9141         * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
9143 2013-03-05  Richard Biener  <rguenther@suse.de>
9145         PR tree-optimization/56521
9146         * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
9147         value-id.
9149 2013-03-05  Steven Bosscher  <steven@gcc.gnu.org>
9151         PR c++/55135
9152         * except.h (remove_unreachable_eh_regions): New prototype.
9153         * except.c (remove_eh_handler_splicer): New function, split out
9154         of remove_eh_handler.
9155         (remove_eh_handler): Use remove_eh_handler_splicer.  Add comment
9156         warning about running it on many EH regions one at a time.
9157         (remove_unreachable_eh_regions_worker): New function, walk the
9158         EH tree in depth-first order and remove non-marked regions.
9159         (remove_unreachable_eh_regions): New function.
9160         * tree-eh.c (mark_reachable_handlers): New function, split out
9161         from remove_unreachable_handlers.
9162         (remove_unreachable_handlers): Use mark_reachable_handlers and
9163         remove_unreachable_eh_regions.
9164         (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
9165         and remove_unreachable_eh_regions.
9167 2013-03-05  Richard Biener  <rguenther@suse.de>
9169         PR middle-end/56525
9170         * loop-init.c (fix_loop_structure): Remove loops in two stages,
9171         not freeing them until the end.
9173 2013-03-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9175         * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
9177 2013-03-05  Richard Biener  <rguenther@suse.de>
9179         PR tree-optimization/56270
9180         * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
9181         of loads after scheduling an SLP instance.
9183 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
9185         * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
9186         tic6x.exp.
9187         (check_gcc_parallelize): Run guality.exp as a separate job from
9188         vect.exp with unsorted.exp and $(dg_target_exps) separately from
9189         struct-layout-1.exp with stackalign.exp.
9191         * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
9193         PR middle-end/56461
9194         * tree-vect-slp.c (vect_supported_load_permutation_p): Free
9195         load_index sbitmap even if some bit in it isn't set.
9197         PR middle-end/56461
9198         * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
9199         (discover_iteration_bound_by_body_walk): Change queues to
9200         vec<vec<basic_block> > and queue to vec<basic_block>.  Fix up
9201         spelling in comment.  Call safe_push on queues[bound_index] directly.
9202         Release queues[queue_index] in every iteration unconditionally.
9203         Release bounds vector.
9205         PR middle-end/56461
9206         * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
9207         free_stmt_vec_info on any left-over stmt_vec_info in the vector.
9208         * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
9209         inner_phis vector.
9211 2013-03-05  Richard Biener  <rguenther@suse.de>
9213         PR lto/56515
9214         * tree-inline.c (remap_blocks_to_null): New function.
9215         (expand_call_inline): When expanding a call stmt without
9216         an associated block inline remap all callee blocks to NULL.
9218 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
9220         PR rtl-optimization/56494
9221         * simplify-rtx.c (simplify_truncation): If C is narrower than A,
9222         optimize (truncate:A (subreg:B (truncate:C X) 0)) into
9223         (subreg:A (truncate:C X) 0) instead of (truncate:A X).
9225         PR middle-end/56461
9226         * sel-sched-ir.c (free_sched_pools): Release
9227         succs_info_pool.stack[succs_info_pool.max_top] vectors too
9228         if succs_info_pool.max_top isn't -1.
9230         PR bootstrap/56509
9231         * opts.c (opts_obstack, opts_concat): Moved to...
9232         * opts-common.c (opts_obstack, opts_concat): ... here.
9234 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
9236         PR middle-end/56461
9237         * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
9239 2013-03-04  Martin Jambor  <mjambor@suse.cz>
9241         * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
9242         all appropriate places.
9244 2013-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9246         PR tree-optimization/56424
9247         * ipa-split.c (split_function): Do not set the RSO flag if result is
9248         not by reference and its type is a register type.
9250 2013-03-04  David Holsgrove  <david.holsgrove@xilinx.com>
9252         * config/microblaze/microblaze.c (microblaze_valid_pic_const): New.
9253         (microblaze_legitimate_pic_operand): Likewise.
9254         * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): Call
9255         new function microblaze_legitimate_pic_operand.
9256         * config/microblaze/microblaze-protos.h
9257         (microblaze_legitimate_pic_operand): Declare.
9259 2013-03-04  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
9261         * config/microblaze/predicates.md (call_insn_simple_operand):
9262         New predicate for supported rtx code types.
9263         * config/microblaze/microblaze.md (call_internal1): Use
9264         call_insn_simple_operand predicate.
9266 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
9268         PR middle-end/56461
9269         * tree-loop-distribution.c (ldist_gen): Call partition_free after each
9270         partitions.ordered_remove.
9272         PR middle-end/56461
9273         * tree-vect-stmts.c (vectorizable_conversion): Don't call
9274         vec_oprnds0.create (1) for modifier == NONE.
9276         PR middle-end/56461
9277         * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
9278         on vec_oprnds0 or vec_oprnds1 before loop, only call it on
9279         vec_oprnds1 right before pushing anything to it for
9280         scalar_shift_arg.
9282         PR middle-end/56461
9283         * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
9284         set nbbs to 0 instead of having separate code path.
9285         (vect_analyze_loop_form): Call destroy_loop_vec_info with true
9286         instead of false as last argument if returning NULL.
9288 2013-03-03  Sandra Loosemore  <sandra@codesourcery.com>
9290         * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
9291         the attribute is now called "target" instead of "option".
9292         (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
9293         * doc/tm.texi.in (Target Attributes):  Likewise document the correct
9294         attribute/pragma name for TARGET_OPTION_VALID_P and
9295         TARGET_OPTION_PRAGMA_PARSE.  Also copy-edit and correct markup.
9296         * doc/tm.texi: Regenerated.
9298 2013-03-02  David Holsgrove  <david.holsgrove@xilinx.com>
9300         * config/microblaze/microblaze.c:
9301         Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
9302         * config/microblaze/microblaze.h: Add -mxl-reorder to
9303         DRIVER_SELF_SPECS.
9304         * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
9305         instructions emitted if TARGET_REORDER.
9306         * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
9307         or 0 for -m/-mno case, but initialises as 2 to detect default use case
9308         separately.
9310 2013-03-01  Xinliang David Li  <davidxl@google.com>
9312         * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
9313         walk length.
9315 2013-03-01  Jakub Jelinek  <jakub@redhat.com>
9317         PR middle-end/56461
9318         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
9319         vector even when returning true.  Fix up function comment formatting.
9321         PR middle-end/56461
9322         * ira-build.c (ira_loop_nodes_count): New variable.
9323         (create_loop_tree_nodes): Initialize it.
9324         (finish_loop_tree_nodes): Use it instead of looking at current_loops.
9326         PR middle-end/56461
9327         * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
9328         method on dr_chain and result_chain.
9329         * tree-vect-stmts.c (vectorizable_store): Only call
9330         result_chain.create if j == 0.
9332         PR middle-end/56461
9333         * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
9334         vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
9335         before overwriting it.
9337 2013-03-01  Tobias Burnus  <burnus@net-b.de>
9339         * doc/extended.texi (C Extensions): Change order in @menu
9340         to match @node.
9341         (Other MIPS Built-in Functions): Move last MIPS entry before
9342         "picoChip Built-in Functions".
9343         (SH Built-in Functions): Move after RX Built-in Functions.
9344         * doc/gcc.texi (Introduction): Change order in @menu to match @node.
9345         * doc/md.texi (Constraints): Ditto.
9346         * gty.texi (Type Information): Ditto.
9347         (User-provided marking routines for template types): Make subsection.
9348         * doc/invoke.texi (AArch64 Options): Move before
9349         "Adapteva Epiphany Options".
9351 2013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
9352             Jakub Jelinek  <jakub@redhat.com>
9354         PR sanitizer/56454
9355         * asan.c (gate_asan): Lookup no_sanitize_address instead of
9356         no_address_safety_analysis attribute.
9357         * doc/extend.texi (no_address_safety_attribute): Rename to
9358         no_sanitize_address attribute, mention no_address_safety_analysis
9359         attribute as deprecated alias.
9361 2013-02-28  Jakub Jelinek  <jakub@redhat.com>
9363         PR middle-end/56461
9364         * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
9365         type to vec<vec<tree> > *.
9366         * tree-vect-slp.c (vect_get_slp_defs): Likewise.  Change vec_defs
9367         to be vec<tree> instead of vec<tree> *, set vec_defs
9368         to vNULL and call vec_defs.create (number_of_vects), adjust other
9369         uses of vec_defs.
9370         * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
9371         vectorizable_condition): Adjust vect_get_slp_defs callers.
9373 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
9375         * config/aarch64/aarch64.c
9376         (aarch64_float_const_representable): Remove unused variable.
9378 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
9380         * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
9382 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
9384         * config/aarch64/aarch64-builtins.c
9385         (aarch64_init_simd_builtins): Make static.
9387 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
9389         * config/aarch64/aarch64.c
9390         (aarch64_simd_make_constant): Make static.
9392 2013-02-28  Martin Jambor  <mjambor@suse.cz>
9394         * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
9395         with no initialization to the RHS of debug statements.
9397 2013-02-28  Martin Jambor  <mjambor@suse.cz>
9399         PR tree-optimization/56294
9400         * tree-sra.c (analyze_access_subtree): Create replacement declarations.
9401         Adjust dumping.
9402         (get_access_replacement): Do not call create_access_replacement.
9403         Assert a replacement exists.
9404         (get_repl_default_def_ssa_name): Create the replacement declaration
9405         itself.
9407 2013-02-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9409         * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
9410         final_end_function.
9412 2013-02-28  Marek Polacek  <polacek@redhat.com>
9414         PR rtl-optimization/56466
9415         * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
9416         if we're changing a loop.
9417         (peel_loops_completely): Likewise.
9419 2013-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
9421         PR c++/55813
9422         * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
9424 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
9426         PR target/56445
9427         * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
9428         macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
9429         INTX_FTYPE_FX, FX_FTYPE_INTX.
9430         * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
9432 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
9434         * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
9435         (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
9436         (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
9437         (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
9438         (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
9439         (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
9440         (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
9441         (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
9442         (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
9443         (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
9444         (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
9445         (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
9446         (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
9447         (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
9448         (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
9449         (avrxmega6): Increase max flash segments from 5 to 6.
9450         * config/avr/t-multilib: Regenerate.
9451         * config/avr/avr-tables.opt: Regenerate.
9452         * doc/avr-mmcu.texi: Regenerate.
9454 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
9456         * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
9457         (avr_device_to_arch): Rename to avr_device_to_ld.
9458         (avr_device_to_as): New prototype.
9459         (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
9460         (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
9461         * config/avr/driver-avr.c (avr_device_to_as): New.
9462         (avr_device_to_arch): Rename to avr_device_to_ld.
9464 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
9466         PR middle-end/56461
9467         * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
9468         method on dr_chain and result_chain.
9470         PR middle-end/56461
9471         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
9472         pointer_set_destroy on not_executed_last_iteration.
9474         PR middle-end/56461
9475         * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
9477         PR middle-end/56461
9478         * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
9479         FOR_EACH_DEFINED_FUNCTION when freeing state.
9481         PR middle-end/56461
9482         * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
9483         pool_free.
9484         (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
9485         overwriting it.
9487         PR middle-end/56461
9488         * ipa-cp.c (decide_whether_version_node): Call vec_free on
9489         known_aggs[i].items and release known_aggs vector.
9491         PR middle-end/56461
9492         * ipa-reference.c (propagate): Free node_info even for alias nodes.
9494 2013-02-27  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
9496         * config/microblaze/microblaze.c (microblaze_emit_compare):
9497         Use xor for EQ/NE comparisions.
9498         * config/microblaze/microblaze.md (cstoresf4): Add constraints
9499         (cbranchsf4): Adjust operator to comparison_operator.
9501 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
9503         PR middle-end/56461
9504         * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
9505         vector.
9506         * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
9507         vec_safe_push, always update *slot.
9508         (redirect_edge_var_map_clear): Use vec_free.
9509         (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
9510         (free_var_map_entry): Use vec_free.
9511         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
9512         FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
9514 2013-02-27  Andrey Belevantsev  <abel@ispras.ru>
9516         PR middle-end/45472
9517         * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
9518         when the may_trap_p bit of the exprs being merged differs.
9519         Reorder tests for speculativeness in the logical and operator.
9521 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
9523         * incpath.c (add_standard_paths): Use reconcat instead of concat
9524         where appropriate and avoid leaking memory.
9526         * opts.h: Include obstack.h.
9527         (opts_concat): New prototype.
9528         (opts_obstack): New declaration.
9529         * opts.c (opts_concat): New function.
9530         (opts_obstack): New variable.
9531         (init_options_struct): Call gcc_init_obstack on opts_obstack.
9532         (finish_options): Use opts_concat instead of concat
9533         and XOBNEWVEC instead of XNEWVEC.
9534         * opts-common.c (generate_canonical_option, decode_cmdline_option,
9535         generate_option): Likewise.
9536         * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
9537         * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
9539         PR target/56455
9540         * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
9541         and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
9543 2013-02-26  Jakub Jelinek  <jakub@redhat.com>
9545         PR middle-end/56461
9546         * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
9548 2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
9550         * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
9551         (arm_block_move_unaligned_straight): Likewise.
9552         (arm_adjust_block_mem): Likewise.
9554 2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
9556         PR target/48901
9557         * config/lm32/lm32.c (gen_int_relational): Remove unused variables
9558         temp, cond and label.
9559         * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
9561         PR target/52500
9562         * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
9563         * config/c6x/c6x.h (dbx_register_map): Update declaration.
9565         PR target/52501
9566         * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
9567         of prologue/epilogue functions.
9569         PR target/52550
9570         * config/tilegx/tilegx.c (tilegx_expand_prologue):
9571         Remove unused variable cfa_offset.
9572         * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
9574         PR target/54639
9575         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
9576         type promotion to unsigned.
9578         PR target/54640
9579         * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
9580         for HOST_WIDE_INT of 32 bit / same size as int.
9581         (arm_block_move_unaligned_straight): Likewise.
9582         (arm_adjust_block_mem): Likewise.
9584         PR target/54662
9585         * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
9586         ALL_CFLAGS.
9588 2013-02-26  Marek Polacek  <polacek@redhat.com>
9590         PR tree-optimization/56426
9591         * tree-ssa-loop.c (tree_ssa_loop_init): Always call
9592         scev_initialize.
9594 2013-02-26  Richard Biener  <rguenther@suse.de>
9596         PR target/56444
9597         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
9598         unused variable loops.
9600 2013-02-26  Jakub Jelinek  <jakub@redhat.com>
9602         PR tree-optimization/56448
9603         * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
9604         TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
9605         Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
9606         later operands of the references, or even first operand for
9607         INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
9609         PR tree-optimization/56443
9610         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
9611         overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
9612         to type_for_mode langhook.
9614 2013-02-25  Matt Turner  <mattst88@gmail.com>
9616         * doc/invoke.texi: Document r4700.
9618 2013-02-25  Richard Biener  <rguenther@suse.de>
9620         PR tree-optimization/56175
9621         * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
9622         split out from ...
9623         (simplify_bitwise_binary): ... here.  Also guard the conversion
9624         of (type) X op CST to (type) (X op ((type-x) CST)) with it.
9626 2013-02-25  Catherine Moore  <clm@codesourcery.com>
9628         Revert:
9629         2013-02-24  Catherine Moore  <clm@codesourcery.com>
9630             Maciej W. Rozycki  <macro@codesourcery.com>
9631             Tom de Vries  <tom@codesourcery.com>
9632             Nathan Sidwell  <nathan@codesourcery.com>
9633             Iain Sandoe  <iain@codesourcery.com>
9634             Nathan Froyd  <froydnj@codesourcery.com>
9635             Chao-ying Fu  <fu@mips.com>
9637         * doc/extend.texi (micromips, nomicromips, nocompression):
9638         Document new function attributes.
9639         * doc/invoke.texi (minterlink-compressed, mmicromips,
9640         m14k, m14ke, m14kec): Document new options.
9641         (minterlink-mips16): Update documentation.
9642         * doc/md.texi (ZC, ZD): Document new constraints.
9643         * configure.ac (gcc_cv_as_micromips): Check if linker
9644         supports the .set micromips directive.
9645         * configure: Regenerate.
9646         * config.in: Regenerate.
9647         * config/mips/mips-tables.opt: Regenerate.
9648         * config/mips/micromips.md: New file.
9649         * constraints.md (ZC, AD): New constraints.
9650         * config/mips/predicates.md (movep_src_register): New predicate.
9651         (movep_src_operand): New predicate.
9652         (non_volatile_mem_operand): New predicate.
9653         * config/mips/mips.md (multimem): New type.
9654         (length): Differentiate between 17-bit and 18-bit branch offsets.
9655         (MOVEP1, MOVEP2): New mode iterator.
9656         (mov_<load>l): Use ZC constraint.
9657         (mov_<load>r): Likewise.
9658         (mov_<store>l): Likewise.
9659         (mov_<store>r): Likewise.
9660         (*branch_equality<mode>_inverted): Add microMIPS support.
9661         (*branch_equality<mode>): Likewise.
9662         (*jump_absolute): Likewise.
9663         (indirect_jump_<mode>): Likewise.
9664         (tablejump_<mode>): Likewise.
9665         (<optab>_internal): Likewise.
9666         (sibcall_internal): Likewise.
9667         (sibcall_value_internal): Likewise.
9668         (prefetch): Use constraint ZD.
9669         * config/mips/mips.opt (minterlink-compressed): New option.
9670         (minterlink-mips16): Now an alias for minterlink-compressed.
9671         (mmicromips): New option.
9672         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
9673         (compare_and_swap_12): Likewise.
9674         (sync_add<mode>): Likewise.
9675         (sync_<optab>_12): Likewise.
9676         (sync_old_<optab>_12): Likewise.
9677         (sync_new_<optab>_12): Likewise.
9678         (sync_nand_12): Likewise.
9679         (sync_old_nand_12): Likewise.
9680         (sync_new_nand_12): Likewise.
9681         (sync_sub<mode>): Likewise.
9682         (sync_old_add<mode>): Likewise.
9683         (sync_old_sub<mode>): Likewise.
9684         (sync_new_add<mode>): Likewise.
9685         (sync_new_sub<mode>): Likewise.
9686         (sync_<optab><mode>): Likewise.
9687         (sync_old_<optab><mode>): Likewise.
9688         (sync_new_<optab><mode>): Likewise.
9689         (sync_nand<mode>): Likewise.
9690         (sync_old_nand<mode>): Likewise.
9691         (sync_new_nand<mode>): Likewise.
9692         (sync_lock_test_and_set<mode>): Likewise.
9693         (test_and_set_12): Likewise.
9694         (atomic_compare_and_swap<mode>): Likewise.
9695         (atomic_exchange<mode>_llsc): Likewise.
9696         (atomic_fetch_add<mode>_llsc): Likewise.
9697         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
9698         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
9699         (umips_save_restore_pattern_p): Likewise.
9700         (umips_load_store_pair_p): Likewise.
9701         (umips_output_load_store_pair): Likewise.
9702         (umips_movep_target_p): Likewise.
9703         (umips_12bit_offset_address_p): Likewise.
9704         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
9705         (mips_base_mips16): Rename this...
9706         (mips_base_compression_flags): ...to this. Update all uses.
9707         (mips_attribute_table): Add micromips, nomicromips and nocompression.
9708         (mips_mips16_decl_p): Delete.
9709         (mips_nomips16_decl_p): Delete.
9710         (mips_get_compress_on_flags): New function.
9711         (mips_get_compress_off_flags): New function.
9712         (mips_get_compress_mode): New function.
9713         (mips_get_compress_on_name): New function.
9714         (mips_get_compress_off_name): New function.
9715         (mips_insert_attributes): Support multiple compression types.
9716         (mips_merge_decl_attributes): Likewise.
9717         (umips_12bit_offset_address_p): New function.
9718         (mips_start_function_definition): Emit .set micromips directive.
9719         (mips_call_may_need_jalx_p): New function.
9720         (mips_function_ok_for_sibcall): Add microMIPS support.
9721         (mips_print_operand_punctuation): Support short delay slots and
9722         compact jumps.
9723         (umips_swm_mask, umips_swm_encoding): New.
9724         (umips_build_save_restore): New function.
9725         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
9726         (was_mips16_p): Remove.
9727         (old_compression_mode): New.
9728         (mips_set_compression_mode): New function.
9729         (mips_set_current_function): Add microMIPS support.
9730         (mips_option_override): Likewise.
9731         (umips_save_restore_pattern_p): New function.
9732         (umips_output_save_restore): New function.
9733         (umips_load_store_pair_p_1): New function.
9734         (umips_load_store_pair_p): New function.
9735         (umips_output_load_store_pair_1): New function.
9736         (umips_output_load_store_pair): New function.
9737         (umips_movep_target_p) New function.
9738         (mips_prepare_pch_save): Add microMIPS support.
9739         * config/mips/mips.h (TARGET_COMPRESSION): New.
9740         (TARGET_CPU_CPP_BUILTINS): Update macro
9741         to use new compression flags and to support microMIPS.
9742         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
9743         (MIPS_ARCH_FLOAT_SPEC): Likewise.
9744         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
9745         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
9746         (ASM_SPEC): Support mmicromips and mno-micromips.
9747         (M16STORE_REG_P): New macro.
9748         (MIPS_CALL): Support TARGET_MICROMIPS.
9749         (MICROMIPS_J): New macro.
9750         (mips_base_mips16): Rename this...
9751         (mips_base_compression_flags): ...to this.
9752         (UMIPS_12BIT_OFFSET_P): New macro.
9753         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
9754         (MULTILIB_DIRNAMES): Likewise.
9756 2013-02-25  Tom de Vries  <tom@codesourcery.com>
9758         PR rtl-optimization/56131
9759         * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
9760         * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
9761         NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
9763 2013-02-25  Tobias Burnus  <burnus@net-b.de>
9765         * doc/invoke.texi (-fsanitize=): Move from optimization
9766         to debugging options.
9768 2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
9770         * sched-deps.c (sched_analyze_insn): Fix typo in comment.
9772 2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
9773             Alexander Monakov  <amonakov@ispras.ru>
9775         PR middle-end/56077
9776         * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
9777         flush pending lists also on non-jumps.  Adjust comment.
9779 2013-02-24  Catherine Moore  <clm@codesourcery.com>
9780             Maciej W. Rozycki  <macro@codesourcery.com>
9781             Tom de Vries  <tom@codesourcery.com>
9782             Nathan Sidwell  <nathan@codesourcery.com>
9783             Iain Sandoe  <iain@codesourcery.com>
9784             Nathan Froyd  <froydnj@codesourcery.com>
9785             Chao-ying Fu  <fu@mips.com>
9787         * doc/extend.texi (micromips, nomicromips, nocompression):
9788         Document new function attributes.
9789         * doc/invoke.texi (minterlink-compressed, mmicromips,
9790         m14k, m14ke, m14kec): Document new options.
9791         (minterlink-mips16): Update documentation.
9792         * doc/md.texi (ZC, ZD): Document new constraints.
9793         * configure.ac (gcc_cv_as_micromips): Check if linker
9794         supports the .set micromips directive.
9795         * configure: Regenerate.
9796         * config.in: Regenerate.
9797         * config/mips/mips-tables.opt: Regenerate.
9798         * config/mips/micromips.md: New file.
9799         * constraints.md (ZC, AD): New constraints.
9800         * config/mips/predicates.md (movep_src_register): New predicate.
9801         (movep_src_operand): New predicate.
9802         (non_volatile_mem_operand): New predicate.
9803         * config/mips/mips.md (multimem): New type.
9804         (length): Differentiate between 17-bit and 18-bit branch offsets.
9805         (MOVEP1, MOVEP2): New mode iterator.
9806         (mov_<load>l): Use ZC constraint.
9807         (mov_<load>r): Likewise.
9808         (mov_<store>l): Likewise.
9809         (mov_<store>r): Likewise.
9810         (*branch_equality<mode>_inverted): Add microMIPS support.
9811         (*branch_equality<mode>): Likewise.
9812         (*jump_absolute): Likewise.
9813         (indirect_jump_<mode>): Likewise.
9814         (tablejump_<mode>): Likewise.
9815         (<optab>_internal): Likewise.
9816         (sibcall_internal): Likewise.
9817         (sibcall_value_internal): Likewise.
9818         (prefetch): Use constraint ZD.
9819         * config/mips/mips.opt (minterlink-compressed): New option.
9820         (minterlink-mips16): Now an alias for minterlink-compressed.
9821         (mmicromips): New option.
9822         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
9823         (compare_and_swap_12): Likewise.
9824         (sync_add<mode>): Likewise.
9825         (sync_<optab>_12): Likewise.
9826         (sync_old_<optab>_12): Likewise.
9827         (sync_new_<optab>_12): Likewise.
9828         (sync_nand_12): Likewise.
9829         (sync_old_nand_12): Likewise.
9830         (sync_new_nand_12): Likewise.
9831         (sync_sub<mode>): Likewise.
9832         (sync_old_add<mode>): Likewise.
9833         (sync_old_sub<mode>): Likewise.
9834         (sync_new_add<mode>): Likewise.
9835         (sync_new_sub<mode>): Likewise.
9836         (sync_<optab><mode>): Likewise.
9837         (sync_old_<optab><mode>): Likewise.
9838         (sync_new_<optab><mode>): Likewise.
9839         (sync_nand<mode>): Likewise.
9840         (sync_old_nand<mode>): Likewise.
9841         (sync_new_nand<mode>): Likewise.
9842         (sync_lock_test_and_set<mode>): Likewise.
9843         (test_and_set_12): Likewise.
9844         (atomic_compare_and_swap<mode>): Likewise.
9845         (atomic_exchange<mode>_llsc): Likewise.
9846         (atomic_fetch_add<mode>_llsc): Likewise.
9847         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
9848         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
9849         (umips_save_restore_pattern_p): Likewise.
9850         (umips_load_store_pair_p): Likewise.
9851         (umips_output_load_store_pair): Likewise.
9852         (umips_movep_target_p): Likewise.
9853         (umips_12bit_offset_address_p): Likewise.
9854         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
9855         (mips_base_mips16): Rename this...
9856         (mips_base_compression_flags): ...to this. Update all uses.
9857         (mips_attribute_table): Add micromips, nomicromips and nocompression.
9858         (mips_mips16_decl_p): Delete.
9859         (mips_nomips16_decl_p): Delete.
9860         (mips_get_compress_on_flags): New function.
9861         (mips_get_compress_off_flags): New function.
9862         (mips_get_compress_mode): New function.
9863         (mips_get_compress_on_name): New function.
9864         (mips_get_compress_off_name): New function.
9865         (mips_insert_attributes): Support multiple compression types.
9866         (mips_merge_decl_attributes): Likewise.
9867         (umips_12bit_offset_address_p): New function.
9868         (mips_start_function_definition): Emit .set micromips directive.
9869         (mips_call_may_need_jalx_p): New function.
9870         (mips_function_ok_for_sibcall): Add microMIPS support.
9871         (mips_print_operand_punctuation): Support short delay slots and
9872         compact jumps.
9873         (umips_swm_mask, umips_swm_encoding): New.
9874         (umips_build_save_restore): New function.
9875         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
9876         (was_mips16_p): Remove.
9877         (old_compression_mode): New.
9878         (mips_set_compression_mode): New function.
9879         (mips_set_current_function): Add microMIPS support.
9880         (mips_option_override): Likewise.
9881         (umips_save_restore_pattern_p): New function.
9882         (umips_output_save_restore): New function.
9883         (umips_load_store_pair_p_1): New function.
9884         (umips_load_store_pair_p): New function.
9885         (umips_output_load_store_pair_1): New function.
9886         (umips_output_load_store_pair): New function.
9887         (umips_movep_target_p) New function.
9888         (mips_prepare_pch_save): Add microMIPS support.
9889         * config/mips/mips.h (TARGET_COMPRESSION): New.
9890         (TARGET_CPU_CPP_BUILTINS): Update macro
9891         to use new compression flags and to support microMIPS.
9892         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
9893         (MIPS_ARCH_FLOAT_SPEC): Likewise.
9894         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
9895         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
9896         (ASM_SPEC): Support mmicromips and mno-micromips.
9897         (M16STORE_REG_P): New macro.
9898         (MIPS_CALL): Support TARGET_MICROMIPS.
9899         (MICROMIPS_J): New macro.
9900         (mips_base_mips16): Rename this...
9901         (mips_base_compression_flags): ...to this.
9902         (UMIPS_12BIT_OFFSET_P): New macro.
9903         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
9904         (MULTILIB_DIRNAMES): Likewise.
9906 2013-02-24  Jakub Jelinek  <jakub@redhat.com>
9908         PR target/52555
9909         * target-globals.c (save_target_globals): For init_reg_sets and
9910         target_reinit remporarily set this_fn_optabs to this_target_optabs.
9912 2013-02-22  James Grennahlgh  <james.greenhalgh@arm.com>
9914         * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
9915         * config/aarch64/t-aarch64
9916         (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
9918 2013-02-22  Vladimir Makarov  <vmakarov@redhat.com>
9920         PR inline-asm/56148
9921         * lra-constraints.c (process_alt_operands): Reload operand
9922         conflicting with earlier clobber only if no more other conflicting
9923         operands.
9925 2013-02-22  Jakub Jelinek  <jakub@redhat.com>
9927         PR sanitizer/56393
9928         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
9929         if not linking a shared library.
9931 2013-02-22  Seth LaForge  <sethml@google.com>
9933         * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
9935 2013-02-22  Greta Yorsh  <Greta.Yorsh@arm.com>
9937         * config/arm/arm.md (split for extendsidi): Update condition.
9938         (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
9939         * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
9940         (qhs_zextenddi_cstr): Likewise.
9942 2013-02-21  Jakub Jelinek  <jakub@redhat.com>
9944         PR middle-end/56420
9945         * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
9946         avoid signed wrapping.
9947         (expand_mult): Handle properly multiplication by
9948         ((dword_type) -1) << (BITS_PER_WORD - 1).  Improve multiplication by
9949         ((dword_type) 1) << (BITS_PER_WORD - 1).  Avoid undefined behavior
9950         in the compiler if coeff is HOST_WIDE_INT_MIN.
9951         (expand_divmod): Don't make ext_op1 static, change it's type to uhwi.
9952         Avoid undefined behavior in -INTVAL (op1).
9954         PR rtl-optimization/50339
9955         * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
9956         field.
9957         * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
9958         (compute_costs): Call compute_splitting_shift also for ASHIFTRT
9959         into splitting_ashiftrt field.
9960         (find_decomposable_shift_zext, resolve_shift_zext): Handle also
9961         ASHIFTRT.
9962         (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
9963         choices.
9965 2013-02-20  Aldy Hernandez  <aldyh@redhat.com>
9967         PR middle-end/56108
9968         * trans-mem.c (execute_tm_mark): Do not expand transactions that
9969         are sure to go irrevocable.
9971 2013-02-21  Hans-Peter Nilsson  <hp@axis.com>
9973         * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
9974         scalars are valid operands.
9976 2013-02-21  Martin Jambor  <mjambor@suse.cz>
9978         PR tree-optimization/56310
9979         * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
9980         only matching indices and non-negative final offsets.
9981         (intersect_aggregates_with_edge): Pass src_idx to
9982         agg_replacements_to_vector.  Pass src_idx insstead of index to
9983         intersect_with_agg_replacements.
9985 2013-02-21  Martin Jambor  <mjambor@suse.cz>
9987         * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
9988         instead of hard-wired defaults.
9990 2013-02-21  Maciej W. Rozycki  <macro@codesourcery.com>
9992         * doc/invoke.texi (MIPS Options): Update documentation of the
9993         floating-point multiply-accumulate instruction restrictions.
9995 2013-02-21  Kostya Serebryany  <kcc@google.com>
9997         * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
9998         asan_shadow_offset on x86_64 linux.
10000 2013-02-21  Richard Biener  <rguenther@suse.de>
10002         PR tree-optimization/56415
10003         Revert
10004         2013-02-11  Richard Biener  <rguenther@suse.de>
10006         PR tree-optimization/56273
10007         * tree-vrp.c (simplify_cond_using_ranges): Disable for the
10008         first VRP run.
10010 2013-02-21  Jakub Jelinek  <jakub@redhat.com>
10012         PR bootstrap/56258
10013         * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
10014         instead of @itemx.
10016         PR inline-asm/56405
10017         * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
10018         use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
10020 2013-02-20  Jan Hubicka  <jh@suse.cz>
10022         PR tree-optimization/56265
10023         * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph when
10024         target is referenced for first time.
10026 2013-02-20  Richard Biener  <rguenther@suse.de>
10028         * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
10029         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
10030         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
10031         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
10032         not return anything.
10033         (rename_ssa_copies): Do not remove unused locals.
10034         * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
10035         * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
10036         * passes.c (execute_function_todo): Do not schedule unused locals
10037         removal if cleanup_tree_cfg did something.
10038         * tree-ssa-live.c (remove_unused_locals): Dump statistics
10039         about the number of removed locals.
10041 2013-02-20  Richard Biener  <rguenther@suse.de>
10043         PR tree-optimization/56398
10044         * tree-vect-loop-manip.c (adjust_debug_stmts): Skip
10045         SSA default defs.
10047 2013-02-20  Martin Jambor  <mjambor@suse.cz>
10049         PR tree-optimization/55334
10050         * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
10051         restricted pointers to arrays.
10053 2013-02-20  Richard Biener  <rguenther@suse.de>
10054         Jakub Jelinek  <jakub@redhat.com>
10056         PR tree-optimization/56396
10057         * tree-ssa-ccp.c (n_const_val): New static variable.
10058         (get_value): Return NULL for SSA names we don't have a lattice
10059         entry for.
10060         (ccp_initialize): Initialize n_const_val.
10061         * tree-ssa-copy.c (n_copy_of): New static variable.
10062         (init_copy_prop): Initialize n_copy_of.
10063         (get_value): Return NULL_TREE for SSA names we don't have a
10064         lattice entry for.
10066 2013-02-20  Martin Jambor  <mjambor@suse.cz>
10068         * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
10070 2013-02-20  Richard Biener  <rguenther@suse.de>
10072         * genpreds.c (write_lookup_constraint): Do not compare first
10073         letter of the constraint again.
10075 2013-02-20  Richard Biener  <rguenther@suse.de>
10077         * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
10078         and ceil_log2.
10079         (get_use_iv_cost): Terminate hashtable walk when coming across
10080         an empty entry.
10082 2013-02-20  Igor Zamyatin  <igor.zamyatin@intel.com>
10084         * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
10085         reassociation for avx2 targets.
10087 2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10089         * config/microblaze/microblaze.c: microblaze_has_clz = 0
10090         Add version check for v8.10.a to enable microblaze_has_clz
10091         * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
10092         version and TARGET_PATTERN_COMPARE check
10093         * config/microblaze/microblaze.md: New clzsi2 instruction
10095 2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10097         * config/microblaze/microblaze.md (call_value_intern): Check symbol is
10098         function before branching.
10100 2012-02-19  Andrey Belevantsev  <abel@ispras.ru>
10102         * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
10103         DUMP_INSN_RTX_UID.
10104         (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
10106 2012-02-19  Andrey Belevantsev  <abel@ispras.ru>
10108         PR middle-end/55889
10109         * sel-sched.c: Include ira.h.
10110         (implicit_clobber_conflict_p): New function.
10111         (moveup_expr): Use it.
10112         * Makefile.in (sel-sched.o): Depend on ira.h.
10114 2013-02-19  Richard Biener  <rguenther@suse.de>
10116         PR tree-optimization/56384
10117         * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
10118         (vn_hash_type): Split out from ...
10119         (vn_hash_constant_with_type): ... here.
10120         * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
10121         (vn_phi_eq): Compare types from vn_phi_s structure.
10122         (vn_phi_lookup): Populate vn_phi_s type.
10123         (vn_phi_insert): Likewise.
10125 2013-02-19  Jakub Jelinek  <jakub@redhat.com>
10127         PR tree-optimization/56350
10128         * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
10129         if haven't found reduction or nested cycle operand, rather than
10130         asserting we must find it.
10132         PR tree-optimization/56381
10133         * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
10134         to fold_build3.
10136 2013-02-18  Aldy Hernandez  <aldyh@redhat.com>
10137             Jakub Jelinek  <jakub@redhat.com>
10139         PR target/52555
10140         * genopinit.c (raw_optab_handler): Use this_fn_optabs.
10141         (swap_optab_enable): Same.
10142         (init_all_optabs): Use argument instead of global.
10143         * tree.h (struct tree_optimization_option): New field target_optabs.
10144         * expr.h (init_all_optabs): Add argument to prototype.
10145         (TREE_OPTIMIZATION_OPTABS): New.
10146         (save_optabs_if_changed): Protoize.
10147         * optabs.h: Declare this_fn_optabs.
10148         * optabs.c (save_optabs_if_changed): New.
10149         Declare this_fn_optabs.
10150         (init_optabs): Add argument to init_all_optabs() call.
10151         * function.c (invoke_set_current_function_hook): Handle per
10152         function optabs.
10153         * function.h (struct function): New field optabs.
10154         * config/mips/mips.c (mips_set_mips16_mode): Handle when
10155         optimization_current_node has changed.
10156         * target-globals.h (save_target_globals_default_opts): Protoize.
10157         * target-globals.c (save_target_globals_default_opts): New.
10159 2013-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10161         PR target/56347
10162         * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
10163         registers %fr12 and %fr12R as call used.
10165         PR target/56214
10166         * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
10167         and HImode, require all displacements to be an integer multiple of
10168         their mode size.
10169         * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
10170         only allow QImode and HImode when reload is in progress and strict is
10171         true.  Likewise for symbolic addresses.  Use base14_operand to check
10172         displacements in REG+BASE addresses.
10174 2013-02-18  Richard Biener  <rguenther@suse.de>
10176         PR tree-optimization/56366
10177         * tree-vect-loop.c (get_initial_def_for_induction): Properly
10178         handle sign-conversion of outer-loop initial induction value.
10180 2013-02-18  Richard Biener  <rguenther@suse.de>
10182         PR middle-end/56349
10183         * cfghooks.c (merge_blocks): If we merge a latch into another
10184         block adjust references to it.
10185         * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
10186         (verify_loop_structure): Verify that a recorded latch is in fact
10187         a latch.
10189 2013-02-18  Richard Biener  <rguenther@suse.de>
10191         PR tree-optimization/56321
10192         * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
10193         order SSA name release and virtual operand unlinking.
10195 2013-02-17  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10197         * config/microblaze/microblaze.md (save_stack_block): Define.
10198         (restore_stack_block): Likewise.
10200 2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10202         * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
10203         * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
10204         * config/microblaze/microblaze.c (microblaze_option_override):
10205         Bail out early for PIC modes when target does not support PIC.
10207 2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10209         * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
10210         Replace with a microblaze version.
10211         (microblaze_trampoline_init): Adapt for microblaze.
10212         * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
10213         microblaze.
10215 2013-02-16  Jakub Jelinek  <jakub@redhat.com>
10216             Dodji Seketeli  <dodji@redhat.com>
10218         PR asan/56330
10219         * asan.c (get_mem_refs_of_builtin_call): White space and style
10220         cleanup.
10221         (instrument_mem_region_access): Do not forget to always put
10222         instrumentation of the of 'base' and 'base + len' in a "if (len !=
10223         0) statement, even for cases where either 'base' or 'base + len'
10224         are not instrumented -- because they have been previously
10225         instrumented.  Simplify the logic by putting all the statements
10226         instrument 'base + len' inside a sequence, and then insert that
10227         sequence right before the current insertion point.  Then, to
10228         instrument 'base + len', just get an iterator on that statement.
10229         And do not forget to update the pointer to iterator the function
10230         received as argument.
10232 2013-02-15  Vladimir Makarov  <vmakarov@redhat.com>
10234         PR rtl-optimization/56348
10235         * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
10237 2013-02-15  Steven Bosscher  <steven@gcc.gnu.org>
10239         * graph.c (start_graph_dump): Print dumpfile base as digraph label.
10240         (clean_graph_dump_file): Pass base to start_graph_dump.
10242 2013-02-14  Richard Henderson  <rth@redhat.com>
10244         PR target/55941
10245         * lower-subreg.c (simple_move): Check dest mode instead of src mode.
10247 2013-02-14  Steven Bosscher  <steven@gcc.gnu.org>
10249         * collect2-aix.h: Define F_LOADONLY.
10251 2013-02-14  Richard Biener  <rguenther@suse.de>
10253         PR lto/50494
10254         * varasm.c (output_constant_def_1): Get the decl representing
10255         the constant as argument.
10256         (output_constant_def): Wrap output_constant_def_1.
10257         (make_decl_rtl): Use output_constant_def_1 with the decl
10258         representing the constant.
10259         (build_constant_desc): Optionally re-use a decl already
10260         representing the constant.
10261         (tree_output_constant_def): Adjust.
10263 2013-02-14  Dodji Seketeli  <dodji@redhat.com>
10265         Fix an asan crash
10266         * asan.c (instrument_builtin_call):  Really put the length of the
10267         second source argument into src1_len.
10269 2013-02-13  Jakub Jelinek  <jakub@redhat.com>
10271         * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
10272         argument.  If it is false, don't create edge from then_bb to
10273         fallthru_bb.
10274         (insert_if_then_before_iter): Pass true to it.
10275         (build_check_stmt): Pass false to it.
10276         (transform_statements): Flush hash table only on extended basic
10277         block boundaries, rather than at the beginning of every bb.
10278         Don't flush hash table on nonfreeing_call_p calls.
10279         * tree-flow.h (nonfreeing_call_p): New prototype.
10280         * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
10282 2013-02-13  David S. Miller  <davem@davemloft.net>
10284         * expmed.c (expand_shift_1): Only strip scalar integer subregs.
10286 2013-02-13  Vladimir Makarov  <vmakarov@redhat.com>
10288         PR target/56184
10289         * ira.c (max_regno_before_ira): Move from ...
10290         (ira): ... here.
10291         (fix_reg_equiv_init): Use max_regno_before_ira instead of
10292         vec_safe_length.
10294 2013-02-13  Jakub Jelinek  <jakub@redhat.com>
10296         * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
10298 2013-02-13  Richard Biener  <rguenther@suse.de>
10300         PR lto/56295
10301         * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
10302         globals in MEM_REFs.
10304 2013-02-13  Richard Biener  <rguenther@suse.de>
10306         * loop-init.c (loop_optimizer_init): Clear loop state when
10307         re-initializing preserved loops.
10308         * loop-unswitch.c (unswitch_single_loop): Return whether
10309         we unswitched the loop.  Do not verify loop state here.
10310         (unswitch_loops): When we unswitched a loop discover new
10311         loops.
10313 2013-02-13  Kostya Serebryany  <kcc@google.com>
10315         * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset on x86_64
10316         linux.
10317         * sanitizer.def: Rename __asan_init to __asan_init_v1.
10319 2013-02-12  Dodji Seketeli  <dodji@redhat.com>
10321         Avoid instrumenting duplicated memory access in the same basic block
10322         * Makefile.in (asan.o): Add new dependency on hash-table.h
10323         * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
10324         (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
10325         (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
10326         (free_mem_ref_resources, has_mem_ref_been_instrumented)
10327         (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
10328         (get_mem_ref_of_assignment): New functions.
10329         (get_mem_refs_of_builtin_call): Extract from
10330         instrument_builtin_call and tweak a little bit to make it fit with
10331         the new signature.
10332         (instrument_builtin_call): Use the new
10333         get_mem_refs_of_builtin_call.  Use gimple_call_builtin_p instead
10334         of is_gimple_builtin_call.
10335         (instrument_derefs, instrument_mem_region_access): Insert the
10336         instrumented memory reference into the hash table.
10337         (maybe_instrument_assignment): Renamed instrument_assignment into
10338         this, and change it to advance the iterator when instrumentation
10339         actually happened and return true in that case.  This makes it
10340         homogeneous with maybe_instrument_assignment, and thus give a
10341         chance to callers to be more 'regular'.
10342         (transform_statements): Clear the memory reference hash table
10343         whenever we enter a new BB, when we cross a function call, or when
10344         we are done transforming statements.  Use
10345         maybe_instrument_assignment instead of instrumentation.  No more
10346         need to special case maybe_instrument_assignment and advance the
10347         iterator after calling it; it's now handled just like
10348         maybe_instrument_call.  Update comment.
10350 2013-02-13  Richard Biener  <rguenther@suse.de>
10352         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
10353         Fix loop discovery code.
10355 2013-02-12  Vladimir Makarov  <vmakarov@redhat.com>
10357         PR inline-asm/56148
10358         * lra-constraints.c (process_alt_operands): Match early clobber
10359         operand with itself.  Check conflicts with earlyclobber only if
10360         the operand is not reloaded.  Prefer to reload conflicting operand
10361         if earlyclobber and matching operands are the same.
10363 2013-02-12  Richard Biener  <rguenther@suse.de>
10365         PR lto/56297
10366         * lto-streamer-out.c (write_symbol): Do not output symbols
10367         for hard register variables.
10369 2013-02-12  Georg-Johann Lay  <avr@gjlay.de>
10371         PR target/54222
10372         * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
10373         (umulsidi3_insn, mulsidi3_insn): New insns.
10375 2013-02-12  Christophe Lyon  <christophe.lyon@linaro.org>
10377         * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
10378         (struct tune_params): Add vec_costs field.
10379         * config/arm/arm.c (arm_builtin_vectorization_cost)
10380         (arm_add_stmt_cost): New functions.
10381         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
10382         (TARGET_VECTORIZE_ADD_STMT_COST): Define.
10383         (arm_default_vec_cost): New struct of type cpu_vec_costs.
10384         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
10385         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
10386         (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
10387         (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
10389 2013-02-12  Richard Biener  <rguenther@suse.de>
10391         PR lto/56295
10392         * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
10393         decls again if possible.
10395 2013-02-12  Richard Biener  <rguenther@suse.de>
10397         PR middle-end/56288
10398         * tree-ssa.c (verify_ssa_name): Fix check, move
10399         SSA_NAME_IN_FREE_LIST check up.
10401 2013-02-12  Jakub Jelinek  <jakub@redhat.com>
10402             Steven Bosscher   <steven@gcc.gnu.org>
10404         PR rtl-optimization/56151
10405         * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
10406         equal to op0 or op1, and last_insn pattern is CODE operation
10407         with MEM dest and one of the operands matches that MEM.
10409 2013-02-11  Sriraman Tallam  <tmsriramgoogle.com>
10411         * doc/extend.texi: Document Function Multiversioning and "default"
10412         parameter string to target attribute.
10413         * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
10414         target attribute parameter is "default".
10415         (ix86_compare_version_priority): Remove checks for target attribute.
10416         (ix86_mangle_function_version_assembler_name): Change error to sorry.
10417         Remove check for target attribute equal to NULL. Add assert.
10418         (ix86_generate_version_dispatcher_body): Change error to sorry.
10420 2013-02-11  Iain Sandoe  <iain@codesourcery.com>
10421             Jack Howarth  <howarth@bromo.med.uc.edu>
10422             Patrick Marlier  <patrick.marlier@gmail.com>
10424         PR libitm/55693
10425         * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
10426         define ENDFILE_SPEC as TM_DESTRUCTOR.
10427         * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
10429 2013-02-11  Alexander Potapenko  <glider@google.com>
10430             Jack Howarth  <howarth@bromo.med.uc.edu>
10431             Jakub Jelinek  <jakub@redhat.com>
10433         PR sanitizer/55617
10434         * config/darwin.c (cdtor_record): Rename ctor_record.
10435         (sort_cdtor_records): Rename sort_ctor_records.
10436         (finalize_dtors): New routine to sort destructors by
10437         priority before use in assemble_integer.
10438         (machopic_asm_out_destructor): Use finalize_dtors if needed.
10440 2013-02-11  Uros Bizjak  <ubizjak@gmail.com>
10442         PR rtl-optimization/56275
10443         * simplify-rtx.c (avoid_constant_pool_reference): Check that
10444         offset is non-negative and less than cmode size before
10445         calling simplify_subreg.
10447 2013-02-11  Richard Biener  <rguenther@suse.de>
10449         PR tree-optimization/56264
10450         * cfgloop.h (fix_loop_structure): Adjust prototype.
10451         * loop-init.c (fix_loop_structure): Return the number of
10452         newly discovered loops.
10453         * tree-cfgcleanup.c (repair_loop_structures): When new loops
10454         are discovered, do a full loop-closed SSA rewrite.
10456 2013-02-11  Richard Biener  <rguenther@suse.de>
10458         PR tree-optimization/56273
10459         * tree-vrp.c (simplify_cond_using_ranges): Disable for the
10460         first VRP run.
10461         (check_array_ref): Fix missing newline in dumps.
10462         (search_for_addr_array): Likewise.
10464 2013-02-09  David Edelsohn  <dje.gcc@gmail.com>
10466         * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
10468 2013-02-09  Jakub Jelinek  <jakub@redhat.com>
10470         PR target/56256
10471         * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
10473 2013-02-08  Vladimir Makarov  <vmakarov@redhat.com>
10475         PR rtl-optimization/56246
10476         * lra-constraints.c (simplify_operand_subreg): Try to reuse
10477         reload pseudo.
10478         * lra.c (lra): Clear lra_optional_reload_pseudos only when all
10479         constraints are satisfied.
10481 2013-02-08  Jeff Law  <law@redhat.com>
10483         PR debug/53948
10484         * emit-rtl.c (reg_is_parm_p): New function.
10485         * regs.h (reg_is_parm_p): New prototype.
10486         * ira-conflicts.c (ira_build_conflicts): Allow parameters in
10487         callee-clobbered registers.
10489 2013-02-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
10491         PR target/56043
10492         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
10493         If there is no implicit builtin declaration, just return NULL.
10495 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
10497         * config/i386/sse.md (FMAMODEM): New mode iterator.
10498         (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
10499         mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
10501 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
10503         * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
10504         when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
10505         * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
10507 2013-02-08  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10509         * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
10510         (microblaze*-*-elf): Likewise.
10511         * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
10512         LINK_SPEC.
10513         * config/microblaze/microblaze-c.c: Add builtin defines for
10514         _LITTLE_ENDIAN and _BIG_ENDIAN.
10515         * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
10516         add to TARGET_DEFAULT flags.
10517         Expand ASM_SPEC and LINK_SPEC.
10518         Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
10519         * config/microblaze/microblaze.md: Update extendsidi2 and
10520         movdi_internal instructions to use low-order / high-order reg
10521         print_operands.
10522         * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
10523         options and inversemask / mask of LITTLE_ENDIAN.
10524         * config/microblaze/t-microblaze: Expand multilib options to
10525         include mlittle-endian (le) and update exceptions patterns.
10527 2013-02-08  Jakub Jelinek  <jakub@redhat.com>
10529         PR rtl-optimization/56195
10530         * lra-constraints.c (get_reload_reg): Don't reuse regs
10531         if they have smaller mode than requested, if they have
10532         wider mode than requested, try to return a SUBREG.
10534         PR tree-optimization/56250
10535         * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
10536         if type is unsigned and code isn't MULT_EXPR.
10538 2013-02-08  Georg-Johann Lay  <avr@gjlay.de>
10540         PR tree-optimization/56064
10541         * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
10542         bits according to mode.
10543         * fixed-value.h (fixed_from_double_int)
10544         (const_fixed_from_double_int): Adjust comments.
10546 2013-02-08  Richard Biener  <rguenther@suse.de>
10548         PR lto/56231
10549         * lto-streamer.h (struct data_in): Remove current_file, current_line
10550         and current_col members.
10551         * lto-streamer-out.c (lto_output_location): Stream changed bits
10552         en-block for efficiency.
10553         * lto-streamer-in.c (clear_line_info): Remove.
10554         (lto_input_location): Cache current file, line and column
10555         globally via local statics.  Read changed bits en-block.
10556         (input_function): Do not call clear_line_info.
10557         (lto_read_body): Likewise.
10558         (lto_input_toplevel_asms): Likewise.
10560 2013-02-08  Michael Matz  <matz@suse.de>
10562         PR tree-optimization/52448
10563         * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
10564         (nt_call_phase): New static.
10565         (add_or_mark_expr): Only mark accesses with newer phase than any
10566         call seen.
10567         (nonfreeing_call_p): New.
10568         (nt_init_block): Update nt_call_phase, mark blocks as visited.
10569         (nt_fini_block): Keep blocks marked as visited.
10570         (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
10572 2013-02-08  Richard Biener  <rguenther@suse.de>
10574         * ira.c (ira): Free broken dominator information.
10576 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
10578         * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
10580 2013-02-08  Marek Polacek  <polacek@redhat.com>
10582         * cfgloop.c (verify_loop_structure): Add more checking of headers.
10584 2013-02-08  Richard Biener  <rguenther@suse.de>
10586         PR middle-end/56181
10587         * cfgloop.h (flow_loops_find): Adjust.
10588         (bb_loop_header_p): Declare.
10589         * cfgloop.c (bb_loop_header_p): New function split out from ...
10590         (flow_loops_find): ... here.  Adjust function signature,
10591         support incremental loop structure update.
10592         (verify_loop_structure): Cleanup.  Verify a loop is a loop.
10593         * cfgloopmanip.c (fix_loop_structure): Move ...
10594         * loop-init.c (fix_loop_structure): ... here.
10595         (apply_loop_flags): Split out from ...
10596         (loop_optimizer_init): ... here.
10597         (fix_loop_structure): Use apply_loop_flags.  Use flow_loops_find
10598         in incremental mode, only remove dead loops here.
10600 2013-02-08  Georg-Johann Lay  <avr@gjlay.de>
10602         PR target/54222
10603         * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
10604         * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
10605         (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
10606         (*round<mode>3.libgcc): New insns for fixed-modes.
10607         * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
10608         (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
10609         (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
10610         * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
10611         implementations.  Define to __builtin_avr_absFX,
10612         __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
10613         (roundFX, countlsFX): Define to __builtin_avr_roundFX,
10614         __builtin_avr_countlsFX, respectively.
10615         * config/avr/avr-c.c (target.h): Include it.
10616         (enum avr_builtin_id): New enum.
10617         (avr_resolve_overloaded_builtin): New static function.
10618         (avr_register_target_pragmas): Use it to set
10619         targetm.resolve_overloaded_builtin.
10620         * config/avr/avr.c (avr_init_builtins): Supply myriads of local
10621         tree nodes used by DEF_BUILTIN.
10622         (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
10623         (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
10624         <AVR_BUILTIN_xxBITS>: Same.
10626 2013-02-08  Richard Biener  <rguenther@suse.de>
10628         * cfgloop.c (verify_loop_structure): Properly handle
10629         a loop exiting to another loop header.
10630         * ira-int.h (ira_loops): Remove.
10631         * ira.c (ira_loops): Remove.
10632         (ira): Use loop_optimizer_init and loop_optimizer_finalize.
10633         (do_reload): Use loop_optimizer_finalize.
10634         * ira-build.c (create_loop_tree_nodes): Use get_loops and
10635         number_of_loops to access the loop tree.
10636         (more_one_region_p): Likewise.
10637         (finish_loop_tree_nodes): Likewise.
10638         (rebuild_regno_allocno_maps): Likewise.
10639         (mark_loops_for_removal): Likewise.
10640         (mark_all_loops_for_removal): Likewise.
10641         (remove_unnecessary_regions): Likewise.
10642         (ira_build): Likewise.
10643         * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
10645 2013-02-08  Richard Biener  <rguenther@suse.de>
10647         * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
10648         * ipa-pure-const.c (analyze_function): Avoid calling
10649         mark_irreducible_loops twice.
10650         * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
10652 2013-02-07  David S. Miller  <davem@davemloft.net>
10654         * dwarf2out.c (based_loc_descr): Perform leaf register remapping
10655         on 'reg'.
10656         * var-tracking.c (vt_add_function_parameter): Test the presence of
10657         HAVE_window_save properly and do not remap argument registers when
10658         we have a leaf function.
10660 2013-02-07  Uros Bizjak  <ubizjak@gmail.com>
10662         PR bootstrap/56227
10663         * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
10664         instead of "ll".
10665         * config/i386/i386.c (ix86_print_operand): Ditto.
10667 2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
10669         * lra-constraints.c (process_alt_operands): Fix recently added comment.
10671 2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
10673         PR rtl-optimization/56225
10674         * lra-constraints.c (process_alt_operands): Check that reload hard
10675         reg can hold value for strict_low_part.
10677 2013-02-07  Jakub Jelinek  <jakub@redhat.com>
10679         PR debug/56154
10680         * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
10681         dwarf2out_end_function.
10682         (in_first_function_p, maybe_at_text_label_p,
10683         first_loclabel_num_not_at_text_label): New variables.
10684         (dwarf2out_var_location): In the first function find out
10685         lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
10686         (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
10687         functions.
10689 2013-02-07  Eric Botcazou  <ebotcazou@adacore.com>
10691         PR rtl-optimization/56178
10692         * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
10693         SUBREG of a register.  Tidy up related block of code.
10694         * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
10695         note if the source is a register or a SUBREG of a register.
10697 2013-02-07  Jakub Jelinek  <jakub@redhat.com>
10699         PR target/56228
10700         * config/rs6000/rs6000.md (ptrm): New mode attr.
10701         (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
10702         call_value_indirect_aix<pttrsize>,
10703         call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
10704         m in constraints.
10706 2013-02-07  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
10708         * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
10709         if -bnortl. Convert to strcmp and strncmp.
10711 2013-02-07  Alan Modra  <amodra@gmail.com>
10713         PR target/54009
10714         * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
10715         addresses won't wrap when offsetting.
10716         (rs6000_secondary_reload): Provide secondary reloads needed for
10717         wrapping LO_SUM addresses.
10719 2013-02-06  Thomas Schwinge  <thomas@codesourcery.com>
10721         * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
10722         MACH, just __MACH__.
10724 2013-02-06  Richard Biener  <rguenther@suse.de>
10726         * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
10727         instead of calling fix_loop_structure.
10729 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
10731         PR middle-end/56217
10732         * omp-low.c (use_pointer_for_field): Return false if
10733         lower_send_shared_vars doesn't generate any copy-out code.
10735 2013-02-06  Tom de Vries  <tom@codesourcery.com>
10737         PR rtl-optimization/56131
10738         * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
10739         to get the bb of a NOTE_INSN_BASIC_BLOCK.  Handle the case that the bb
10740         of the label is NULL.  Add comment.
10742 2013-02-05  Jakub Jelinek  <jakub@redhat.com>
10744         * tree.h (struct tree_decl_with_vis): Remove thread_local field.
10746         PR sanitizer/55374
10747         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
10748         (STATIC_LIBTSAN_LIBS): Likewise.
10749         * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
10750         (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
10751         is defined, don't add anything else beyond that.
10752         (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
10753         (LINK_COMMAND_SPEC): Use them.
10755         PR tree-optimization/56205
10756         * tree-stdarg.c (check_all_va_list_escapes): Return true if
10757         there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
10758         and some va_list_escape_vars SSA_NAME appears in some PHI argument.
10760 2013-02-05  Richard Biener  <rguenther@suse.de>
10762         PR tree-optimization/53342
10763         PR tree-optimization/53185
10764         * tree-vectorizer.h (vect_check_strided_load): Remove.
10765         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
10766         not disallow peeling for vectorized strided loads.
10767         (vect_check_strided_load): Make static and simplify.
10768         (vect_analyze_data_refs): Adjust.
10769         * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
10770         correctly when vectorizing strided loads.
10772 2013-02-05  Richard Biener  <rguenther@suse.de>
10774         * doc/install.texi: Refer to ISL, not PPL.
10776 2013-02-05  Jan Hubicka  <jh@suse.cz>
10778         PR tree-optimization/55789
10779         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
10781 2013-02-05  Jan Hubicka  <jh@suse.cz>
10783         PR tree-optimization/55789
10784         * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
10785         the dead call anyway.
10787 2013-02-05  Eric Botcazou  <ebotcazou@adacore.com>
10789         PR sanitizer/55374
10790         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
10792 2013-02-04  Alexander Potapenko  <glider@google.com>
10793             Jack Howarth  <howarth@bromo.med.uc.edu>
10794             Jakub Jelinek  <jakub@redhat.com>
10796         PR sanitizer/55617
10797         * config/darwin.c (sort_ctor_records): Stabilized qsort
10798         on constructor priority by using original position.
10799         (finalize_ctors): New routine to sort constructors by
10800         priority before use in assemble_integer.
10801         (machopic_asm_out_constructor): Use finalize_ctors if needed.
10803 2013-02-04  Jakub Jelinek  <jakub@redhat.com>
10805         PR libstdc++/54314
10806         * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
10807         about visibility on artificial decls.
10808         * config/sol2.c (solaris_assemble_visibility): Likewise.
10810 2013-02-04  Kai Tietz  <ktietz@redhat.com>
10812         PR target/56186
10813         * config/i386/i386.c (function_value_ms_64): Add additional valtype
10814         argument and improve checking of return-argument types for 16-byte
10815         modes.
10816         (ix86_function_value_1): Add additional valtype argument on call
10817         of function_value_64.
10818         (return_in_memory_ms_64): Sync 16-byte sized mode handling with
10819         handling infunction_value_64 function.
10821 2013-02-04  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
10823         * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
10825 2013-02-04  Richard Biener  <rguenther@suse.de>
10827         PR tree-optimization/56188
10828         * tree-ssa-structalias.c (label_visit): Consider case with
10829         initially non-empty points-to set.
10830         (perform_var_substitution): Dump node mapping and clean up.
10832 2013-02-04  Richard Guenther  <rguenther@suse.de>
10834         PR lto/56168
10835         * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
10836         node prevail as last resort.
10837         (lto_symtab_merge_decls): Remove guard on LTRANS here.
10838         (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
10840 2013-02-04  Richard Biener  <rguenther@suse.de>
10842         PR tree-optimization/56113
10843         * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
10844         Merge into ...
10845         (equiv_class_lookup_or_add): ... this.
10846         (label_visit): Adjust and fix error in previous patch.
10847         (perform_var_substitution): Adjust.
10849 2013-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
10851         * config/sh/divtab.c: Fix formatting and comments throughout the file.
10852         * config/sh/sh4-300.md: Likewise.
10853         * config/sh/sh4a.md: Likewise.
10854         * config/sh/constraints.md: Likewise.
10855         * config/sh/sh.md: Likewise.
10856         * config/sh/netbsd-elf.h: Likewise.
10857         * config/sh/predicates.md: Likewise.
10858         * config/sh/sh-protos.h: Likewise.
10859         * config/sh/ushmedia.h: Likewise.
10860         * config/sh/linux.h: Likewise.
10861         * config/sh/sh.c: Likewise.
10862         * config/sh/superh.h: Likewise.
10863         * config/sh/elf.h: Likewise.
10864         * config/sh/sh4.md: Likewise.
10865         * config/sh/sh.h: Likewise.
10867 2013-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10869         * config/pa/constraints.md: Adjust unused letters.  Change "T"
10870         constraint to match_test floating_point_store_memory_operand().
10871         * config/pa/predicates.md (reg_plus_base_memory_operand): New.
10872         (base14_operand): New.
10873         (floating_point_store_memory_operand): New.
10874         (integer_store_memory_operand): Revise to use base14_operand and
10875         reg_plus_base_memory_operand.
10876         (move_dest_operand): Allow symbolic_memory_operands.
10877         (symbolic_memory_operand): Check for LO_SOM.
10878         (symbolic_operand): Change default case to break.
10879         * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
10880         CONST_DOUBLE values to be reloaded by putting them into memory when
10881         the destination is a floating point register.
10882         (movdf): Remove code to handle CONST_DOUBLE.
10883         (movsf): Likewise.
10884         (reload_indf_r1): New.
10885         (reload_insf_r1): New.
10886         Consistently use "Q" and "T" constraints with integer and floating
10887         point move instructions, respectively.
10888         (movdi): Remove FAIL.
10889         Change predicate for source operand unamed DImode move from
10890         general_operand to move_src_operand.
10891         (umulsidi3): Change predicate for destination operand to
10892         register_operand.
10893         Likewise for similar unamed patterns.
10894         * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
10895         * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
10896         (hppa_legitimize_address): Simplify mask calculation.
10897         (pa_emit_move_sequence): Revised handling of secondary reloads from
10898         REG+D addresses for floating point loads and stores.  Directly handle
10899         loading CONST0_RTX (mode) to a floating point register.
10900         (pa_secondary_reload): Handle reloading DF and SFmode constant values
10901         to floating point registers.  Don't restrict secondary reloads to
10902         floating point registers to integer modes.  Revise some comments and
10903         cleanup some code.
10904         (TARGET_LEGITIMATE_ADDRESS_P): Define.
10905         (pa_legitimate_address_p): New.
10906         (pa_legitimize_reload_address): New.
10907         * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
10908         (STRICT_REG_OK_FOR_BASE_P): New.
10909         (GO_IF_LEGITIMATE_ADDRESS): Delete.  Update some related comments.
10910         (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
10912 2013-02-03  David Edelsohn  <dje.gcc@gmail.com>
10913             Andrew Dixie  <andrewd@gentrack.com>
10915         * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
10916         flag set.
10918 2013-02-03  Richard Sandiford  <rdsandiford@googlemail.com>
10920         * expmed.c (extract_bit_field_1): Pass the full width of the
10921         structure to get_best_reg_extraction_insn.
10923 2013-02-01  David Edelsohn  <dje.gcc@gmail.com>
10925         PR target/54601
10926         * configure.ac (use_cxa_atexit): Add AIX.
10927         * configure: Regenerate.
10929         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
10931 2013-02-01  Jakub Jelinek  <jakub@redhat.com>
10933         PR debug/54793
10934         * final.c (need_profile_function): New variable.
10935         (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
10936         If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
10937         is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
10938         notes, targetm.asm_out.function_prologue doesn't emit anything,
10939         HAVE_prologue and profiler should be emitted before prologue,
10940         set need_profile_function instead of emitting it.
10941         (final_scan_insn): If need_profile_function, emit
10942         profile_function on the first NOTE_INSN_BASIC_BLOCK or
10943         NOTE_INSN_FUNCTION_BEG note.
10945 2013-02-01  Richard Henderson  <rth@redhat.com>
10947         * config/rs6000/rs6000.md (smulditi3): New.
10948         (umulditi3): New.
10950         * config/alpha/alpha.md (umulditi3): New.
10952 2013-02-01  David Edelsohn  <dje.gcc@gmail.com>
10954         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
10955         (ASM_OUTPUT_ALIGNED_LOCAL): New.
10957 2013-02-01  Richard Biener  <rguenther@suse.de>
10959         PR tree-optimization/56113
10960         * tree-ssa-structalias.c (label_visit): Reduce work for
10961         single-predecessor nodes.
10963 2013-02-01  Eric Botcazou  <ebotcazou@adacore.com>
10965         * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
10966         range isn't testing for zero.
10968 2013-01-31  Steven Bosscher  <steven@gcc.gnu.org>
10970         PR middle-end/56113
10971         * fwprop.c (fwprop_init): Set up loops without CFG modifications.
10973 2013-01-31  Hiroyuki Ono  <hiroyuki.ono.jc@renesas.com>
10974             Nick Clifton  <nickc@redhat.com>
10976         * config/v850/constraints.md (Q): Define as a memory constraint.
10977         * config/v850/predicates.md (label_ref_operand): New predicate.
10978         (e3v5_shift_operand): New predicate.
10979         (ior_operator): New predicate.
10980         * config/v850/t-v850: Add e3v5 multilib.
10981         * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
10982         (v850_gen_movdi): Prototype.
10983         * config/v850/v850.c: Add support for e3v5 architecture.
10984         Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
10985         TARGET_V850E_UP.
10986         (construct_save_jarl): Add e3v5 long JARL support.
10987         (v850_adjust_insn_length): New function.  Adjust length of call
10988         insns when using e3v5 instructions.
10989         (v850_gen_movdi): New function: Generate instructions to move a
10990         DImode value.
10991         * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
10992         (CPP_SPEC): Define __v850e3v5__ as appropriate.
10993         (TARGET_USE_FPU): Enable for e3v5.
10994         (CONST_OK_FOR_W): New macro.
10995         (ADJUST_INSN_LENGTH): Define.
10996         * config/v850/v850.md (UNSPEC_LOOP): Define.
10997         (attr cpu): Add v850e3v5.
10998         Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
10999         (movdi): New pattern.
11000         (movdi_internal): New pattern.
11001         (cbranchsf4): Conditionalize on TARGET_USE_FPU.
11002         (cbranchdf4): Conditionalize on TARGET_USE_FPU.
11003         (cstoresf4): Likewise.
11004         (cstoredf4): Likewise.
11005         (insv): New pattern.
11006         (rotlso3_a): New pattern.
11007         (rotlsi3_b): New pattern
11008         (rotlsi3_v850e3v5): New pattern.
11009         (doloop_begin): New pattern.
11010         (fix_loop_counter): New pattern.
11011         (doloop_end): New pattern.
11012         (branch_normal): Add e3v5 long branch support.
11013         (branch_invert): Likewise.
11014         (branch_z_normal): Likewise.
11015         (branch_z_invert): Likewise.
11016         (branch_nz_normal): Likewise.
11017         (branch_nz_invert): Likewise.
11018         (call_internal_short): Add e3v5 register-indirect JARL support.
11019         (call_internal_long): Likewise.
11020         (call_value_internal_short): Likewise.
11021         (call_value_internal_long): Likewise.
11022         * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
11023         (mloop): New option.
11024         * config.gcc: Add support for configuring v840e3v5 target.
11025         * doc/invoke.texi: Document new v850 specific command line options.
11027 2013-01-31  Paul Koning  <ni1d@arrl.net>
11029         PR debug/55059
11030         PR debug/54508
11031         * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
11032         children if parent is a class.
11033         (prune_unused_types_prune): Don't add DW_AT_declaration.
11035 2013-01-31  Richard Biener  <rguenther@suse.de>
11037         PR tree-optimization/56157
11038         * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
11039         match up operand with SLP child.
11041 2013-01-31  Jason Merrill  <jason@redhat.com>
11043         PR debug/54410
11044         * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
11045         parameters the first time.
11046         (gen_scheduled_generic_parms_dies): Check completeness here.
11048 2013-01-31  Richard Biener  <rguenther@suse.de>
11050         PR middle-end/53073
11051         * common.opt (faggressive-loop-optimizations): New flag,
11052         enabled by default.
11053         * doc/invoke.texi (faggressive-loop-optimizations): Document.
11054         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
11055         infer_loop_bounds_from_undefined by it.
11057 2013-01-31  Richard Biener  <rguenther@suse.de>
11059         PR tree-optimization/56150
11060         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
11061         visit virtual operands.
11062         (find_uses_to_rename_bb): Likewise.
11064 2013-01-31  Richard Biener  <rguenther@suse.de>
11066         PR tree-optimization/56150
11067         * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
11068         mixed store non-store stmts.
11070 2013-01-30  Jakub Jelinek  <jakub@redhat.com>
11072         PR sanitizer/55374
11073         * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
11074         LIBASAN_EARLY_SPEC is defined.
11075         (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
11076         (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
11077         before %o.
11078         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
11080         PR c++/55742
11081         * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
11082         invalid args instead of ICEing on it.
11083         (ix86_valid_target_attribute_tree): Return error_mark_node if
11084         ix86_valid_target_attribute_inner_p failed.
11085         (ix86_valid_target_attribute_p): Return false only if
11086         ix86_valid_target_attribute_tree returned error_mark_node.  Allow
11087         target("default") attribute.
11088         (sorted_attr_string): Change argument from const char * to tree,
11089         merge in all target attribute arguments rather than just one.
11090         Formatting fix.  Use XNEWVEC instead of xmalloc and XDELETEVEC
11091         instead of free.  Avoid using strcat.
11092         (ix86_mangle_function_version_assembler_name): Mangle
11093         target("default") as if no target attribute is present.  Adjust
11094         sorted_attr_string caller.  Avoid leaking memory.  Use XNEWVEC
11095         instead of xmalloc and XDELETEVEC instead of free.
11096         (ix86_function_versions): Don't return true if one of the decls
11097         doesn't have target attribute.  If they don't and one of the decls
11098         is DECL_FUNCTION_VERSIONED, report an error.  Adjust
11099         sorted_attr_string caller.  Use XDELETEVEC instead of free.
11100         (ix86_supports_function_versions): Remove.
11101         (make_name): Fix up formatting.
11102         (make_dispatcher_decl): Remove resolver_name and its initialization.
11103         Avoid leaking memory.
11104         (is_function_default_version): Return true if there is
11105         target("default") attribute rather than no target attribute at all.
11106         (make_resolver_func): Avoid leaking memory.
11107         (ix86_generate_version_dispatcher_body): Likewise.
11108         (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
11109         * target.def (supports_function_versions): Remove.
11110         * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
11111         * doc/tm.texi: Regenerated.
11113 2013-01-30  Vladimir Makarov  <vmakarov@redhat.com>
11115         PR rtl-optimization/56144
11116         * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
11117         for values with side effects.
11119 2013-01-30  Richard Biener  <rguenther@suse.de>
11121         * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
11122         (sparseset_pop): Likewise.
11123         * cfganal.c (compute_idf): Likewise.  Increase work-stack size
11124         to be able to use quick_push in the worker loop.
11126 2013-01-30  Marek Polacek  <polacek@redhat.com>
11128         * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
11130 2013-01-30  Richard Biener  <rguenther@suse.de>
11132         PR lto/56147
11133         * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
11135 2013-01-30  Georg-Johann Lay  <avr@gjlay.de>
11137         PR tree-optimization/56064
11138         * fixed-value.c (fixed_from_double_int): New function.
11139         * fixed-value.h (fixed_from_double_int): New prototype.
11140         (const_fixed_from_double_int): New static inline function.
11141         * fold-const.c (native_interpret_fixed): New static function.
11142         (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
11143         (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
11144         (native_encode_fixed): New static function.
11145         (native_encode_expr) <FIXED_CST>: Use it.
11146         (native_interpret_int): Move double_int worker code to...
11147         * double-int.c (double_int::from_buffer): ...this new static method.
11148         * double-int.h (double_int::from_buffer): Prototype it.
11150 2013-01-30  Richard Biener  <rguenther@suse.de>
11152         * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
11153         New pointer-map and obstack.
11154         (init_alias_vars): Allocate pointer-map and obstack.
11155         (delete_points_to_sets): Free them.
11156         (find_what_var_points_to): Cache result.
11157         (find_what_p_points_to): Adjust for changed interface of
11158         find_what_var_points_to.
11159         (compute_points_to_sets): Likewise.
11160         (ipa_pta_execute): Likewise.
11162 2013-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11164         * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
11165         * configure: Regenerate.
11166         * config.in: Regenerate.
11167         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
11168         #nobits/#progbits if supported.
11170 2013-01-29  Oleg Endo  <olegendo@gcc.gnu.org>
11172         PR target/56121
11173         * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
11174         bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
11175         bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
11177 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
11179         * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
11180         (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
11182 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
11184         * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
11185         * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
11187 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
11189         * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
11190         declaration.
11191         * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
11192         * config/arm/cortex-a7.md: New bypasses using
11193         arm_mac_accumulator_is_result.
11195 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
11197         * config/arm/cortex-a7.md (cortex_a7_neon_mul):  New reservation.
11198         (cortex_a7_neon_mla): Likewise.
11199         (cortex_a7_fpfmad): New reservation.
11200         (cortex_a7_fpmacs): Use ffmas and update required units.
11201         (cortex_a7_fpmuld): Update required units and latency.
11202         (cortex_a7_fpmacd): Likewise.
11203         (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
11204         (cortex_a7_neon). Likewise.
11205         (bypass) Update participating units.
11207 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
11209         * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
11210         * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
11211         from fmac to ffma.
11212         * config/arm/vfp11.md (vfp_farith): Use ffmas.
11213         (vfp_fmul): Use ffmad.
11214         * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
11215         (cortex_r4_fmacd): Use ffmad.
11216         * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
11217         * config/arm/cortex-a9.md (cortex_a9_fmacs):  Use ffmas.
11218         (cortex_a9_fmacd): Use ffmad.
11219         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
11220         (cortex_a8_vfp_macd): Use ffmad.
11221         * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
11222         (cortex_a5_fpmacd): Use ffmad.
11223         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
11224         (cortex_a15_vfp_macd): Use ffmad.
11225         * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
11227 2013-01-29  Jason Merrill  <jason@redhat.com>
11229         PR libstdc++/54314
11230         * varasm.c (default_assemble_visibility): Don't warn about
11231         visibility on artificial decls.
11233 2013-01-29  Richard Biener  <rguenther@suse.de>
11235         PR tree-optimization/56113
11236         * tree-ssa-structalias.c (equiv_class_lookup): Also return
11237         the bitmap leader.
11238         (label_visit): Free duplicate bitmaps and record the leader instead.
11239         (perform_var_substitution): Adjust.
11241 2013-01-29  Richard Biener  <rguenther@suse.de>
11243         PR tree-optimization/55270
11244         * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
11245         the CFG, schedule loops for fixup.
11247 2013-01-29  Nick Clifton  <nickc@redhat.com>
11249         * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
11250         SP_REG.
11252 2013-01-28  Leif Ekblad  <leif@rdos.net>
11254         * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
11255         * config/i386/i386.h (TARGET_RDOS): New macro.
11256         (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
11257         * config/i386/i386.c (ix86_option_override_internal): For 64bit
11258         TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
11259         * config/i386/i386.opt (mlarge-data-threshold): Initialize to
11260         DEFAULT_LARGE_SECTION_THRESHOLD.
11261         * config/i386/i386.md (R14_REG, R15_REG): New constants.
11262         * config/i386/rdos.h: New file.
11263         * config/i386/rdos64.h: New file.
11265 2013-01-28  Bernd Schmidt  <bernds@codesourcery.com>
11267         PR other/54814
11268         * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
11269         TEST_HARD_REG_BIT.
11271 2013-01-28  Jakub Jelinek  <jakub@redhat.com>
11273         PR rtl-optimization/56117
11274         * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
11275         call cselib_lookup_from_insn on the MEM before calling
11276         add_insn_mem_dependence.
11278 2013-01-28  Richard Biener  <rguenther@suse.de>
11280         * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
11281         to a stmt that didn't have one.
11282         (copy_phis_for_bb): Likewise for PHI arguments.
11283         (copy_debug_stmt): Likewise for debug stmts.
11285 2013-01-28  Richard Biener  <rguenther@suse.de>
11287         PR tree-optimization/56034
11288         * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
11289         (partition_builtin_p): Adjust.
11290         (generate_code_for_partition): Handle PKIND_REDUCTION.  Assert
11291         it is the last partition.
11292         (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
11293         up the vertex for the definition.
11294         (classify_partition): Classify whether a partition is a
11295         PKIND_REDUCTION, thus has uses outside of the loop.
11296         (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
11297         Merge all PKIND_REDUCTION partitions into the last partition.
11298         (tree_loop_distribution): Seed partitions from reductions as well.
11300 2013-01-28  Jakub Jelinek  <jakub@redhat.com>
11302         PR tree-optimization/56125
11303         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
11304         pow(x,c) into sqrt(x) * powi(x, n/2) or
11305         1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
11306         optimizing for size.
11307         Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
11308         1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
11309         integer.
11311         PR tree-optimization/56094
11312         * gimplify.c (force_gimple_operand_1): Temporarily set input_location
11313         to UNKNOWN_LOCATION while gimplifying expr.
11315 2013-01-27  Uros Bizjak  <ubizjak@gmail.com>
11317         PR target/56114
11318         * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
11319         operand 0 in movabs insn template for -masm=intel asm alternative.
11320         (*movabs<mode>_2): Ditto for operand 1.
11322 2013-01-26  David Holsgrove  <david.holsgrove@xilinx.com>
11324         PR target/54663
11325         * config.gcc (microblaze*-linux*): Add tmake_file to allow building
11326         of microblaze-c.o
11328 2013-01-26  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
11330         * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
11331         tm_file.
11333 2013-01-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
11335         * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
11336         Undef to avoid warning.
11338 2013-01-25  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
11340         * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
11341         * configure: Regenerate.
11343 2013-01-25  Jakub Jelinek  <jakub@redhat.com>
11345         PR tree-optimization/56098
11346         * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
11347         for stmts with volatile ops.
11348         (cond_store_replacement): Don't optimize if assign has volatile ops.
11349         (cond_if_else_store_replacement_1): Don't optimize if either
11350         then_assign or else_assign have volatile ops.
11351         (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
11352         volatile ops.
11354 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
11356         * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
11358 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
11360         * doc/extend.texi (Example of asm with clobbered asm reg): Fix
11361         missing ':' in asm example.
11363 2013-01-25  Tejas Belagod  <tejas.belagod@arm.com>
11365         * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
11366         entries into lane and laneq entries.
11367         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
11368         Remove AdvSIMD scalar modes.
11369         (aarch64_sq<r>dmulh_laneq<mode>): New.
11370         (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
11371         modes.
11372         * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
11373         builtin implementations to relfect changes in RTL in aarch64-simd.md.
11374         * config/aarch64/iterators.md (VCOND): New.
11375         (VCONQ): New.
11377 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
11379         PR target/54222
11380         * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
11381         Add NULL LIBNAME argument to existing definitions.
11382         (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
11383         * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
11384         * config/avr/avr.c (DEF_BUILTIN): Same.
11385         (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
11386         (avr_expand_builtin): Expand to a vanilla call if a libgcc
11387         implementation is available (DECL_ASSEMBLER_NAME is set).
11388         (avr_fold_absfx): New static function.
11389         (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
11390         AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
11391         AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
11392         AVR_BUILTIN_ABSLLK.
11393         * config/avr/stdfix.h (abshr, absr, abslr, absllr)
11394         (abshk, absk, abslk, absllk): Provide as static inline functions.
11396 2013-01-25  Marek Polacek  <polacek@redhat.com>
11398         PR tree-optimization/56035
11399         * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
11401 2012-01-24  Uros Bizjak  <ubizjak@gmail.com>
11403         * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
11404         (*movtf_internal_rex64): Add (!o,C) alternative
11405         (*movxf_internal_rex64): Ditto.
11406         (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
11408 2013-01-24  Shenghou Ma  <minux.ma@gmail.com>
11410         * doc/invoke.texi: fix typo.
11411         * doc/objc.texi: fix typo.
11413 2013-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
11415         * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
11416         for the first two alternatives.
11418 2013-01-24  Diego Novillo  <dnovillo@google.com>
11420         * Makefile.in (GGC): Remove.  Replace all instances with ggc-page.o.
11421         (ggc-zone.o): Remove.
11422         * configure.ac: Remove option --with-gc.
11423         * configure: Re-generate.
11424         * doc/install.texi: Remove documentation for --with-gc.
11425         * gengtype.c (write_enum_defn): Remove.  Update all users.
11426         (write_Types_process_field): Remove generation of gt_e_* argument.
11427         (output_type_enum): Remove.  Update all users.
11428         (write_enum_defn): Remove.  Update all users.
11429         (enum alloc_zone): Remove.  Update all users.
11430         (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
11431         * ggc-common.c (ggc_splay_alloc): Remove first argument.
11432         Update all callers.
11433         (struct ptr_data): Remove field TYPE.  Update all users.
11434         (gt_pch_note_object): Remove argument TYPE.  Update all users.
11435         * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
11436         Update all users.
11437         * ggc-none.c (ggc_alloc_typed_stat): Remove.
11438         (struct alloc_zone): Remove.
11439         (ggc_internal_alloc_zone_stat): Remove.
11440         (ggc_internal_cleared_alloc_zone_stat): Remove.
11441         * ggc-page.c (ggc_alloc_typed_stat): Remove.
11442         (ggc_pch_count_object): Remove last argument.  Update all users.
11443         (ggc_pch_alloc_object): Remove last argument.  Update all users.
11444         (struct alloc_zone): Remove.
11445         * ggc-zone.c: Remove.
11446         * ggc.h (gt_pch_note_object): Remove last argument.  Update all users.
11447         (struct alloc_zone): Remove.
11448         (ggc_alloc_typed_stat): Remove.
11449         (ggc_alloc_typed): Remove.
11450         (ggc_splay_alloc): Remove first argument.
11451         (rtl_zone): Remove.  Update all users.
11452         (tree_zone): Remove.  Update all users.
11453         (tree_id_zone): Remove.  Update all users.
11454         (ggc_internal_zone_alloc_stat): Remove.  Update all users.
11455         (ggc_internal_zone_cleared_alloc_stat): Remove.  Update all users.
11456         (ggc_internal_zone_vec_alloc_stat): Remove.  Update all users.
11457         * tree-ssanames.c: Remove references to zone allocator in comments.
11459 2013-01-24  Georg-Johann Lay  <avr@gjlay.de>
11461         * config/avr/avr.c (avr_out_fract): Make register numbers that
11462         might be outside of source operand signed.
11464 2013-01-24  Uros Bizjak  <ubizjak@gmail.com>
11466         * config/i386/constraints.md (Yf): New constraint.
11467         * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
11468         of f constraint to conditionaly disable x87 register preferences.
11469         (*movdf_internal): Ditto.
11470         (*movsf_internal): Ditto.
11472 2013-01-24  Steven Bosscher  <steven@gcc.gnu.org>
11474         PR inline-asm/55934
11475         * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
11476         that have operands with impossible constraints.
11477         Add a FIXME for a speed-up opportunity.
11478         * lra-constraints.c (process_alt_operands): Verify that a class
11479         selected from constraints on asms is valid for the operand mode.
11480         (curr_insn_transform): Remove incorrect comment.
11482 2013-01-23  David Edelsohn  <dje.gcc@gmail.com>
11484         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
11485         TOC operand is a valid symbol ref in the constant pool.
11487 2013-01-23  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
11489         * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
11491 2013-01-23  Georg-Johann Lay  <avr@gjlay.de>
11493         PR target/54222
11494         * config/avr/stdfix.h: New file.
11495         * t-avr (stdfix-gcc.h): New rule to build it.
11496         (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
11498 2013-01-23  Kostya Serebryany  <kcc@google.com>
11500         * config/darwin.h: remove dependency on
11501         CoreFoundation (asan on Mac OS).
11503 2013-01-23  Jakub Jelinek  <jakub@redhat.com>
11505         PR target/49069
11506         * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
11507         instead of cmpdi_operand for first comparison operand.
11508         Don't assert that comparison operands aren't both constants.
11510 2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
11512         * doc/install.texi (Downloading the Source): Update references to
11513         downloading separate components.
11515 2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
11517         * doc/extend.texi (__int128): Improve grammar.
11519 2013-01-22  Uros Bizjak  <ubizjak@gmail.com>
11521         PR target/56028
11522         * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
11523         alternative to (o,r).
11524         (*movdi_internal_rex64): Remove (!o,n) alternative.
11525         (DImode immediate->memory splitter): Remove.
11526         (DImode immediate->memory peephole2): Remove.
11527         (movtf): Enable for TARGET_64BIT || TARGET_SSE.
11528         (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
11529         alternative to (!o,*r).
11530         (*movtf_internal_sse): New pattern.
11531         (*movxf_internal_rex64): New pattern.
11532         (*movxf_internal): Disable for TARGET_64BIT.
11533         (*movdf_internal_rex64): Remove (!o,F) alternative.
11535 2013-01-22  Jakub Jelinek  <jakub@redhat.com>
11537         PR middle-end/56074
11538         * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
11539         isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
11540         * tree-vect-loop-manip.c (find_loop_location): Also ignore
11541         stmt locations where LOCATION_LOCUS of the stmt location is
11542         UNKNOWN_LOCATION or BUILTINS_LOCATION.
11544         PR target/55686
11545         * config/i386/i386.md (UNSPEC_STOS): New.
11546         (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
11547         *strsetqi_1): Add UNSPEC_STOS.
11549 2013-01-22  Paolo Carlini  <paolo.carlini@oracle.com>
11551         PR c++/56067
11552         * doc/invoke.texi: Remove left over -Wsynth example.
11554 2013-01-21  Jakub Jelinek  <jakub@redhat.com>
11556         PR tree-optimization/56051
11557         * fold-const.c (fold_binary_loc): Don't fold
11558         X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
11559         a narrowing conversion, or widening conversion from signed
11560         to unsigned.
11562 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
11564         PR rtl-optimization/56023
11565         * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
11566         dependent on debug instruction.
11568 2013-01-21  Martin Jambor  <mjambor@suse.cz>
11570         PR middle-end/56022
11571         * function.c (allocate_struct_function): Call
11572         invoke_set_current_function_hook earlier.
11574 2013-01-21  Jakub Jelinek  <jakub@redhat.com>
11576         * reload1.c (init_reload): Only initialize reload_obstack
11577         during the first call.
11579 2013-01-21  Marek Polacek  <polacek@redhat.com>
11581         * cfgloop.c (verify_loop_structure): Fix up grammar.
11583 2013-01-21  Yi-Hsiu Hsu  <ahsu@marvell.com>
11585         * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
11586         pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
11588 2013-01-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11590         PR target/56058
11591         * config/arm/marvell-pj4.md: Update copyright year.
11592         Fix up use of alu to alu_reg and simple_alu_imm.
11594 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
11596         * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
11598 2013-01-20  Vladimir Makarov  <vmakarov@redhat.com>
11600         PR target/55433
11601         * lra-constraints.c (curr_insn_transform): Don't reuse original
11602         insn for secondary memory move when memory mode should be different.
11604 2013-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11606         * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
11607         atomic_storedi_1): New patterns.
11609 2013-01-20  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11611         btver2 pipeline descriptions.
11612         * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
11613         descriptions.
11614         * config/i386/i386.md (btver2_decode): New type attributes.
11615         * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
11616         type attributes.
11617         * config/i386/btver2.md: New file describing btver2 pipelines.
11619 2013-01-19  Andrew Pinski  <apinski@cavium.com>
11621         PR tree-optimization/52631
11622         * tree-ssa-sccvn (visit_use): Before looking up the original
11623         statement, try looking up the simplified expression.
11625 2013-01-19  Anthony Green  <green@moxielogic.com>
11627         * config/moxie/moxie.c (moxie_expand_prologue): Set
11628         current_function_static_stack_size.
11630 2013-01-18  Jakub Jelinek  <jakub@redhat.com>
11632         PR tree-optimization/56029
11633         * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
11634         gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
11636 2013-01-18  Sharad Singhai  <singhai@google.com>
11638         PR tree-optimization/55995
11639         * dumpfile.c (dump_loc): Print location only if available.
11640         * tree-vectorizer.c (increase_alignment): Intialize vect_location.
11642 2013-01-18  Vladimir Makarov  <vmakarov@redhat.com>
11644         PR target/55433
11645         * lra-constraints.c (curr_insn_transform): Reuse original insn for
11646         secondary memory move.
11647         (inherit_reload_reg): Use rclass instead of cl for
11648         check_secondary_memory_needed_p.
11650 2013-01-18  Jakub Jelinek  <jakub@redhat.com>
11652         PR middle-end/56015
11653         * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
11654         the case where writing real complex part of target modifies op1.
11656 2013-01-18  James Greenhalgh  <james.greenhalgh@arm.com>
11658         * config/aarch64/aarch64-simd.md
11659         (aarch64_vcond_internal<mode>): Handle unordered cases.
11660         * config/aarch64/iterators.md (v_cmp_result): New.
11662 2013-01-18  Yi-Hsiu Hsu  <ahsu@marvell.com>
11663             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11665         * config/arm/marvell-pj4.md: New file.
11666         * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
11667         * config/arm/arm.md (generic_sched): Add marvell_pj4.
11668         (generic_vfp): Likewise.
11669         * config/arm/arm-cores.def: Add marvell-pj4.
11670         * config/arm/arm-tune.md: Regenerate.
11671         * config/arm/arm-tables.opt: Regenerate.
11672         * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
11673         * doc/invoke.texi: Document marvell-pj4.
11675 2013-01-18  Tejas Belagod  <tejas.belagod@arm.com>
11677         * config/aarch64/arm_neon.h: Map scalar types to standard types.
11679 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
11681         PR debug/54114
11682         PR debug/54402
11683         PR debug/49888
11684         * var-tracking.c (negative_power_of_two_p): New.
11685         (global_get_addr_cache, local_get_addr_cache): New.
11686         (get_addr_from_global_cache, get_addr_from_local_cache): New.
11687         (vt_canonicalize_addr): Rewrite using the above.  Adjust the
11688         heading comment.
11689         (vt_stack_offset_p): Remove.
11690         (vt_canon_true_dep): Always canonicalize loc's address.
11691         (clobber_overlapping_mems): Make sure we have a MEM.
11692         (local_get_addr_clear_given_value): New.
11693         (val_reset): Clear local cached entries.
11694         (compute_bb_dataflow): Create and release the local cache.
11695         Disable duplicate MEMs clobbering.
11696         (emit_notes_in_bb): Clobber MEMs likewise.
11697         (vt_emit_notes): Create and release the local cache.
11698         (vt_initialize, vt_finalize): Create and release the global
11699         cache, respectively.
11700         * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
11702 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
11704         PR libmudflap/53359
11705         * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
11706         not found in the symtab.
11708 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
11710         PR debug/56006
11711         PR rtl-optimization/55547
11712         PR rtl-optimization/53827
11713         PR debug/53671
11714         PR debug/49888
11715         * alias.c (offset_overlap_p): New, factored out of...
11716         (memrefs_conflict_p): ... this.  Use absolute sizes.  Retain
11717         the conservative special case for symbolic constants.  Don't
11718         adjust zero sizes on alignment.
11720 2013-01-18  Bernd Schmidt  <bernds@codesourcery.com>
11722         PR rtl-optimization/52573
11723         * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
11724         REG_UNUSED for the same register.
11726 2013-01-17  Richard Biener  <rguenther@suse.de>
11727             Marek Polacek  <polacek@redhat.com>
11729         PR rtl-optimization/55833
11730         * loop-unswitch.c (unswitch_loops): Move loop verification...
11731         (unswitch_single_loop): ...here.  Call mark_irreducible_loops.
11732         * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
11733         Set it to true when we're removing a loop from hierarchy tree in
11734         an irreducible region.
11735         (fix_bb_placements): Adjust caller.
11736         (fix_loop_placements): Likewise.
11738 2013-01-17  Georg-Johann Lay  <avr@gjlay.de>
11740         * config/avr/builtins.def (DEF_BUILTIN): Factor out
11741         "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
11742         Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
11743         Remove ID.  Adjust comments.
11744         * config/avr/avr-c.c (avr_builtin_name): Remove.
11745         (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
11746         * config/avr/avr.c (avr_tolower): New static function.
11747         (DEF_BUILTIN): Remove parameter ID.  Prefix ICODE by 'CODE_FOR_'.
11748         Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
11749         (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
11750         default expansion.
11752 2013-01-17  Jan Hubicka  <jh@suse.cz>
11754         PR tree-optimization/55273
11755         * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
11757 2013-01-17  Uros Bizjak  <ubizjak@gmail.com>
11759         PR target/55981
11760         * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
11761         store through atomic_store<mode>_1.
11762         (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
11764 2013-01-17  Martin Jambor  <mjambor@suse.cz>
11766         PR tree-optimizations/55264
11767         * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
11768         for virtual methods.
11769         * ipa.c (symtab_remove_unreachable_nodes): Never return true for
11770         virtual methods before inlining is over.
11771         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
11772         virtual functions.
11773         * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
11774         non-virtual.
11776 2013-01-16  Vladimir Makarov  <vmakarov@redhat.com>
11778         PR rtl-optimization/56005
11779         * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
11780         pending reads for prefetch.
11782 2013-01-16  Ian Bolton  <ian.bolton@arm.com>
11784         * config/aarch64/aarch64.md
11785         (*cstoresi_neg_uxtw): New pattern.
11786         (*cmovsi_insn_uxtw): New pattern.
11787         (*<optab>si3_uxtw): New pattern.
11788         (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
11789         (*<optab>si3_insn_uxtw): New pattern.
11790         (*bswapsi2_uxtw): New pattern.
11792 2013-01-16  Richard Biener  <rguenther@suse.de>
11794         * tree-inline.c (tree_function_versioning): Remove set but
11795         never used variable.
11797 2013-01-16  Richard Biener  <rguenther@suse.de>
11799         PR tree-optimization/55964
11800         * tree-flow.h (rename_variables_in_loop): Remove.
11801         (rename_variables_in_bb): Likewise.
11802         * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
11803         (copy_loop_before): Adjust and delete update-ssa status.
11804         * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
11805         (rename_variables_in_bb): Likewise.  Properly walk over predecessors.
11806         (rename_variables_in_loop): Remove.
11807         (slpeel_update_phis_for_duplicate_loop): Likewise.
11808         (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
11809         use available cfg machinery instead of duplicating it.
11810         Update PHI nodes and perform poor-mans SSA update here.
11811         (slpeel_tree_peel_loop_to_edge): Adjust.
11813 2013-01-16  Richard Biener  <rguenther@suse.de>
11815         PR tree-optimization/54767
11816         PR tree-optimization/53465
11817         * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
11818         (vrp_visit_phi_node): For PHI arguments coming via backedges
11819         drop all symbolical range information.
11820         (execute_vrp): Compute backedges.
11822 2013-01-16  Richard Biener  <rguenther@suse.de>
11824         * doc/install.texi: Update CLooG and ISL requirements to
11825         0.18.0 and 0.11.1.
11827 2013-01-16  Christian Bruel  <christian.bruel@st.com>
11829         PR target/55301
11830         * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
11831         (broken_move): Handle UNSPECV_SP_SWITCH_B.
11832         * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
11834 2013-01-16  DJ Delorie  <dj@redhat.com>
11836         * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
11837         (UNSPECV_SP_SWITCH_E): New.
11838         (sp_switch_1): Change to an unspec.
11839         (sp_switch_2): Change to an unspec.  Don't use post-inc when we
11840         replace $r15.
11842 2013-01-16  Uros Bizjak  <ubizjak@gmail.com>
11844         * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
11845         with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
11846         * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
11847         (expand_mem_thread_fence): Ditto.
11848         (expand_mem_signal_fence): Ditto.
11849         (expand_atomic_load): Ditto.
11850         (expand_atomic_store): Ditto.
11852 2013-01-16  Alexandre Oliva  <aoliva@redhat.com>
11854         PR rtl-optimization/55547
11855         PR rtl-optimization/53827
11856         PR debug/53671
11857         PR debug/49888
11858         * alias.c (memrefs_conflict_p): Set sizes to negative after
11859         AND adjustments.
11861 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
11863         PR target/55940
11864         * function.c (thread_prologue_and_epilogue_insns): Always
11865         add crtl->drap_reg to set_up_by_prologue.set, even if
11866         stack_realign_drap is false.
11868 2013-01-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11870         * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
11871         and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
11872         *call): Fix indention.
11874 2013-01-15  Tom de Vries  <tom@codesourcery.com>
11876         PR target/55876
11877         * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
11878         Update comment.
11880 2013-01-15  Vladimir Makarov  <vmakarov@redhat.com>
11882         PR rtl-optimization/55153
11883         * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
11885 2013-01-15  Martin Jambor  <mjambor@suse.cz>
11887         PR tree-optimization/55920
11888         * tree-sra.c (analyze_access_subtree): Do not mark non-removable
11889         accesses as grp_to_be_debug_replaced.
11891 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
11893         PR tree-optimization/55920
11894         * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
11895         there is non-useless type conversion needed from debug rhs to lhs,
11896         use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
11898 2013-01-15  Joseph Myers  <joseph@codesourcery.com>
11899             Mikael Pettersson  <mikpe@it.uu.se>
11901         PR target/43961
11902         * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
11903         Thumb.
11904         (ASM_OUTPUT_CASE_LABEL): Remove.
11905         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
11906         * final.c (shorten_branches): Update alignment of labels before
11907         jump tables if CASE_VECTOR_SHORTEN_MODE.
11909 2013-01-15  Richard Biener  <rguenther@suse.de>
11911         PR bootstrap/55961
11912         * system.h: Do not include gmp.h for building host tools.
11914 2013-01-15  Richard Biener  <rguenther@suse.de>
11916         PR middle-end/55882
11917         * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
11918         account for bitpos when computing alignment.
11920 2013-01-15  Vladimir Yakovlev  <vladimir.b.yakovlev@intel.com>
11922         * config/i386/i386-c.c (ix86_target_macros_internal): New case.
11923         (ix86_target_macros_internal): Likewise.
11925         * config/i386/i386.c (m_CORE2I7): Removed.
11926         (m_CORE_HASWELL): New macro.
11927         (m_CORE_ALL): Likewise.
11928         (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
11929         (initial_ix86_arch_features): Likewise.
11930         (processor_target_table): Initializations for Core avx2.
11931         (cpu_names): New names "core-avx2".
11932         (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
11933         PROCESSOR_CORE_HASWELL.
11934         (ix86_issue_rate): New case.
11935         (ia32_multipass_dfa_lookahead): Likewise.
11936         (ix86_sched_init_global): Likewise.
11938         * config/i386/i386.h (TARGET_HASWELL): New macro.
11939         (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
11940         (processor_type): New PROCESSOR_HASWELL.
11942 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
11944         PR tree-optimization/55955
11945         * tree-vect-loop.c (vectorizable_reduction): Give up early on
11946         *SHIFT_EXPR and *ROTATE_EXPR codes.
11948         PR tree-optimization/48766
11949         * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
11950         -ftrapv disable -fwrapv.
11952 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
11954         PR target/55974
11955         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
11956         etc. to 1 and not to __flash.
11957         Use LL suffix for __INT24_MAX__ with -mint8.
11958         Use ULL suffix for __UINT24_MAX__ with -mint8.
11960 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
11962         * config/avr/avr-arch.h
11963         (struct base_arch_s): Use typedef avr_arch_t instead.
11964         (struct arch_info_s): Use typedef avr_arch_info_t instead.
11965         (struct mcu_type_s): Use typedef avr_mcu_t instead.
11966         * config/avr/avr.c: Same.
11967         * config/avr/avr-devices.c: Same.
11968         * config/avr/driver-avr.c: Same.
11969         * config/avr/gen-avr-mmcu-texi.c: Same.
11970         * config/avr/avr-mcus.def: Adjust comment.
11972 2013-01-14  Tejas Belagod  <tejas.belagod@arm.com>
11974         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
11975         * config/aarch64/iterators.md (VALLDI): New.
11977 2013-01-14  Uros Bizjak  <ubizjak@gmail.com>
11978             Andi Kleen  <ak@linux.intel.com>
11980         PR target/55948
11981         * config/i386/sync.md (atomic_store<mode>_1): New pattern.
11982         (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
11983         memmodel flag.
11985 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
11987         * config/avr/avr-stdint.h: Remove trailing blanks.
11988         * config/avr/avr-log.h: Same.
11989         * config/avr/avr-arch.h: Same.
11990         * config/avr/avr-devices.c: Same.
11991         * config/avr/avr-dimode.md: Same.
11992         * config/avr/predicates.md: Same.
11993         * config/avr/avr-c.c: Same.  And fix typo.
11995         * config/avr/avr-protos.h: Same.  And:
11996         (function_arg_regno_p): Rename to avr_function_arg_regno_p.
11997         (init_cumulative_args): Rename to avr_init_cumulative_args.
11998         (expand_prologue): Rename to avr_expand_prologue.
11999         (expand_epilogue): Rename to avr_expand_epilogue.
12000         (adjust_insn_length): Rename to avr_adjust_insn_length.
12001         (notice_update_cc): Rename to avr_notice_update_cc.
12002         (final_prescan_insn): Rename to avr_final_prescan_insn.
12003         * config/avr/avr.c: Same.
12004         * config/avr/avr.h: Same.
12005         * config/avr/avr.md: Remove trailing blanks.
12006         (prologue): Use avr_expand_prologue.
12007         (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
12009 2013-01-14  Richard Biener  <rguenther@suse.de>
12011         * tree-cfg.c (verify_expr_location, verify_expr_location_1,
12012         verify_location, collect_subblocks): New functions.
12013         (verify_gimple_in_cfg): Verify that locations only reference
12014         BLOCKs in the functions BLOCK tree.
12016 2013-01-14  Richard Biener  <rguenther@suse.de>
12018         * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
12019         PHI argument.
12020         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
12021         unshare reference.
12022         (insert_out_of_ssa_copy_on_edge): Likewise.
12023         (rewrite_close_phi_out_of_ssa): Likewise.
12024         * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
12025         debug expressions.
12026         * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
12027         propagated constants.
12028         * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
12029         can not be shared.
12031 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
12033         * config/avr/avr-modes.def: Add GPL copyright notice.
12035 2013-01-13  Uros Bizjak  <ubizjak@gmail.com>
12037         * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
12038         MEMMODEL_MASK to determine memory model.
12039         (atomic_store<mode>): Ditto from operands[2].
12040         * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
12042 2013-01-13  Jakub Jelinek  <jakub@redhat.com>
12044         PR fortran/55935
12045         * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
12046         (fold_gimple_assign): Don't call unshare_expr here.
12047         (fold_ctor_reference): Call unshare_expr.
12049 2013-01-13  Terry Guo  <terry.guo@arm.com>
12051         * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
12052         * doc/fragments.texi: Document MULTILIB_REUSE.
12053         * gcc.c (multilib_reuse): New internal spec.
12054         (set_multilib_dir): Also search multilib from multilib_reuse.
12055         * genmultilib (tmpmultilib3): Refactor code.
12056         (tmpmultilib4): Ditto.
12057         (multilib_reuse): New multilib argument.
12059 2013-01-13  Richard Sandiford  <rdsandiford@googlemail.com>
12061         * Makefile.in: Update copyright.
12063 2013-01-12  Tom de Vries  <tom@codesourcery.com>
12065         PR middle-end/55890
12066         * calls.c (expand_call): Check if arg_nr is valid.
12068 2013-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
12070         * doc/extend.texi (X86 Built-in Functions): Add whitespace in
12071         __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
12072         documentation.  Add missing '__' in front of
12073         __builtin_ia32_packssdw256.
12075 2013-01-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12077         PR target/55719
12078         * config/s390/s390.c (s390_preferred_reload_class): Do not return
12079         NO_REGS for larl operands.
12080         (s390_reload_larl_operand): Use s390_load_address instead of
12081         emit_move_insn.
12083 2013-01-11  Richard Biener  <rguenther@suse.de>
12085         * tree-cfg.c (verify_node_sharing_1): Split out from ...
12086         (verify_node_sharing): ... here.
12087         (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
12089 2013-01-11  Eric Botcazou  <ebotcazou@adacore.com>
12091         * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
12092         Substitute TREECHECKING.
12093         * configure: Regenerate.
12094         * Makefile.in (TREECHECKING): New.
12096 2013-01-11  Richard Guenther  <rguenther@suse.de>
12098         PR tree-optimization/44061
12099         * tree-vrp.c (extract_range_basic): Compute zero as
12100         value-range for __builtin_constant_p of function parameters.
12102 2013-01-10  Richard Sandiford  <rdsandiford@googlemail.com>
12104         Update copyright years.
12106 2013-01-10  Vladimir Makarov  <vmakarov@redhat.com>
12108         PR rtl-optimization/55672
12109         * lra-eliminations.c (mark_not_eliminable): Permit addition with
12110         const to be eliminable.
12112 2013-01-10  David Edelsohn  <dje.gcc@gmail.com>
12114         * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
12115         * configure: Regenerate.
12117 2013-01-10  Richard Biener  <rguenther@suse.de>
12119         * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
12121 2013-01-10  Richard Biener  <rguenther@suse.de>
12123         PR bootstrap/55792
12124         * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
12125         locations for virtual PHI arguments.
12126         (rewrite_update_phi_arguments): Likewise.
12128 2013-01-10  Joel Sherrill  <joel.sherrill@OARcorp.com>
12130         * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
12131         on to assembler.
12133 2013-01-10  Jakub Jelinek  <jakub@redhat.com>
12135         PR tree-optimization/55921
12136         * tree-complex.c (expand_complex_asm): New function.
12137         (expand_complex_operations_1): Call it for GIMPLE_ASM.
12139 2013-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12141         PR target/55718
12142         * config/s390/s390.c (s390_symref_operand_p)
12143         (s390_loadrelative_operand_p): Merge the two functions.
12144         (s390_check_qrst_address, print_operand_address): Add parameters
12145         to s390_loadrelative_operand_p invokation.
12146         (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
12147         (s390_reload_larl_operand, s390_secondary_reload): Use
12148         s390_loadrelative_operand_p instead of s390_symref_operand_p.
12149         (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
12151 2013-01-09  Mike Stump  <mikestump@comcast.net>
12153         * dse.c (record_store): Remove unnecessary assert.
12155 2013-01-09  Jan Hubicka  <jh@suse.cz>
12157         PR tree-optimization/55569
12158         * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
12159         * cfgloop.h (scale_loop_profile): Likewise.
12161 2013-01-09  Jan Hubicka  <jh@suse.cz>
12163         PR lto/45375
12164         * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
12165         functions.
12166         * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
12168 2013-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
12170         PR middle-end/55114
12171         * expr.h (maybe_emit_group_store): Declare.
12172         * expr.c (maybe_emit_group_store): New function.
12173         * builtins.c (expand_builtin_int_roundingfn): Call it.
12174         (expand_builtin_int_roundingfn_2): Likewise.
12176 2013-01-09  Vladimir Makarov  <vmakarov@redhat.com>
12178         PR rtl-optimization/55829
12179         * lra-constraints.c (match_reload): Add code for absent output.
12180         (curr_insn_transform): Add code for reloads of matched inputs
12181         without output.
12183 2013-01-09  Uros Bizjak  <ubizjak@gmail.com>
12185         * config/i386/sse.md (*vec_interleave_highv2df): Change mode
12186         attribute of movddup insn to DF.
12187         (*vec_interleave_lowv2df): Ditto.
12188         (vec_dupv2df): Ditto.
12190 2013-01-09  Jan Hubicka  <jh@suse.cz>
12192         PR tree-optimiation/55875
12193         * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
12194         EVERY_ITERATION parameter.
12195         (number_of_iterations_exit): Check if exit is executed every iteration.
12196         (idx_infer_loop_bounds): Similarly here.
12197         (n_of_executions_at_most): Simplify
12198         to only test for cases where statement is dominated by the
12199         particular bound; handle correctly the "postdominance" test.
12200         (scev_probably_wraps_p): Use max loop iterations info
12201         as a global bound first.
12203 2013-01-09  Nguyen Duy Dat  <dat.nguyen.yn@rvc.renesas.com>
12204             Nick Clifton  <nickc@redhat.com>
12206         * config/v850/v850.md (cbranchsf4): New pattern.
12207         (cstoresf4): New pattern.
12208         (cbranchdf4): New pattern.
12209         (cstoredf4): New pattern.
12210         (movsicc): Disallow floating point comparisons.
12211         (cmpsf_le_insn): Fix order of operators.
12212         (cmpsf_lt_insn): Likewise.
12213         (cmpsf_eq_insn): Likewise.
12214         (cmpdf_le_insn): Likewise.
12215         (cmpdf_lt_insn): Likewise.
12216         (cmpdf_eq_insn): Likewise.
12217         (cmpsf_ge_insn): Use LE comparison.
12218         (cmpdf_ge_insn): Likewise.
12219         (cmpsf_gt_insn): Use LT comparison.
12220         (cmpdf_gt_insn): Likewise.
12221         (cmpsf_ne_insn): Delete pattern.
12222         (cmpdf_ne_insn): Delete pattern.
12223         * config/v850/v850.c (v850_gen_float_compare): Use
12224         gen_cmpdf_eq_insn for NE comparison.
12225         (v850_float_z_comparison_operator)
12226         (v850_float_nz_comparison_operator): Move from here ...
12227         * config/v850/predicates.md: ... to here.  Move GT and GE
12228         comparisons into v850_float_z_comparison_operator.
12229         * config/v850/v850-protos.h (v850_float_z_comparison_operator):
12230         Delete prototype.
12231         (v850_float_nz_comparison_operator): Likewise.
12233 2013-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12235         * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
12236         with calls to gen_insvsi/gen_insvdi.
12238 2013-01-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12240         * config/i386/i386.c (initial_ix86_tune_features): Set up
12241         X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
12243 2013-01-09  Steven Bosscher  <steven@gcc.gnu.org>
12244             Jakub Jelinek  <jakub@redhat.com>
12246         PR tree-optimization/48189
12247         * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
12248         If nitercst is 0, don't predict the exit edge.
12250 2013-01-08  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
12252         * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
12253         in asm_fprintf with reg_names.
12254         (aarch64_print_operand_address): Likewise.
12255         (aarch64_return_addr): Likewise.
12256         * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
12258 2013-01-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12260         * config/pa/pa.h (VAL_U6_BITS_P): Define.
12261         (INT_U6_BITS): Likewise.
12262         * config/pa/predicates.md (uint6_operand): New predicate.
12263         (shift5_operand, shift6_operand): Likewise.
12264         * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
12265         arith32_operand.
12266         (lshrdi3): Use shift6_operand.
12267         (shrpsi4, shrpdi4): New insn patterns.
12268         (extzv): Delete expander.
12269         (extzvsi, extzvdi): New expanders.  Use uint5_operand and uint6_operand
12270         predicates in unamed zero extract patterns.  Tighten common constraint.
12271         (extv): Delete expander.
12272         (extvsi, extvdi): New expanders.  Use uint5_operand and uint6_operand
12273         predicates in unamed sign extract patterns.  Tighten common constraint.
12274         (insv): Delete expander.
12275         (insvsi, insvdi): New expanders.  Use uint5_operand and uint6_operand
12276         predicates in unamed insert patterns.  Tighten common constraint.
12277         Change uint32_operand predicate to uint6_operand predicate in unamed
12278         DImode pattern to insert constant values of type 1...1xxxx.
12280 2013-01-04  Jan Hubicka  <jh@suse.cz>
12282         PR tree-optimization/55823
12283         * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
12284         issue.
12286 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
12287             Uros Bizjak  <ubizjak@gmail.com>
12289         PR rtl-optimization/55845
12290         * df-problems.c (can_move_insns_across): Stop scanning at
12291         volatile_insn_p source instruction or give up if
12292         across_from .. across_to range contains any volatile_insn_p
12293         instructions.
12295 2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
12297         * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
12298         * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
12299         Declare.
12300         * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
12301         aarch64_simd_make_constant, aarch64_expand_vector_init): New.
12303 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
12305         PR fortran/55341
12306         * asan.c (asan_clear_shadow): New function.
12307         (asan_emit_stack_protection): Use it.
12309 2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
12311         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
12312         aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
12313         with tab instead of space.
12315 2013-01-08  Nick Clifton  <nickc@redhat.com>
12317         * config/rl78/rl78.c (rl78_expand_prologue): Always select
12318         register bank 0 at the start of an interrupt handler.
12319         * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
12320         MDBH registers.
12322 2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
12324         * config/aarch64/aarch64-simd.md
12325         (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
12326         (aarch64_simd_bsl): Likewise.
12327         (aarch64_vcond_internal<mode>): Likewise.
12328         (vcond<mode><mode>): Likewise.
12329         (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
12330         * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
12332 2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
12334         * config/aarch64/aarch64-builtins.c
12335         (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
12337 2013-01-08  Martin Jambor  <mjambor@suse.cz>
12339         PR debug/55579
12340         * tree-sra.c (analyze_access_subtree): Return true also after
12341         potentially creating a debug-only replacement.
12343 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
12345         PR middle-end/55890
12346         * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
12348         PR tree-optimization/54120
12349         * tree-vrp.c (range_fits_type_p): Don't allow
12350         src_precision < precision from signed vr to unsigned_p
12351         if vr->min or vr->max is negative.
12352         (simplify_float_conversion_using_ranges): Test can_float_p
12353         against CODE_FOR_nothing.
12355 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
12356             Richard Biener  <rguenther@suse.de>
12358         PR middle-end/55851
12359         * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
12360         types instead of just INTEGER_TYPE types.
12362 2013-01-07  Mark Kettenis  <kettenis@openbsd.org>
12364         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
12365         TF_SIZE): Define.
12367 2013-01-07  Steve Ellcey  <sellcey@mips.com>
12369         PR target/42661
12370         * config/mips/mips.opt: Change mad to mmad to match documentation.
12372 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
12374         PR target/55897
12375         * doc/extend.texi (AVR Named Address Spaces): __memx goes into
12376         .progmemx.data now.
12378 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
12380         PR target/55897
12381         * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
12382         (avr_addrspace_t): Add .section_name field.
12383         * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
12384         array size.
12385         (avr_addrspace): Same.  Initialize .section_name.  Remove last
12386         NULL entry.  Put __memx into .progmemx.data.
12387         (progmem_section_prefix): Remove.
12388         (avr_asm_init_sections): No need to initialize progmem_section.
12389         (avr_asm_named_section): Use avr_addrspace[].section_name to get
12390         section name prefix.
12391         (avr_asm_select_section): Ditto.  And use get_unnamed_section to
12392         retrieve the progmem section.
12393         * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
12394         boundary to run over avr_addrspace[].
12395         (avr_register_target_pragmas): Ditto.
12397 2013-01-06  Jakub Jelinek  <jakub@redhat.com>
12399         * varasm.c (output_constant_def_contents): For asan_protect_global
12400         protected strings, adjust DECL_ALIGN if needed, before testing for
12401         anchored symbols.
12402         (place_block_symbol): Adjust size for asan protected STRING_CSTs if
12403         TREE_CONSTANT_POOL_ADDRESS_P.  Increase alignment for asan protected
12404         normal decls.
12405         (output_object_block): For asan protected decls, emit asan padding
12406         after their contents.
12407         * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
12408         (asan_finish_file): Test it here instead.
12410 2013-01-07  Nick Clifton  <nickc@redhat.com>
12411             Matthias Klose  <doko@debian.org>
12412             Doug Kwan  <dougkwan@google.com>
12413             H.J. Lu  <hongjiu.lu@intel.com>
12415         PR driver/55470
12416         * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
12418         * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
12420         * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
12422         * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
12424         * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
12426 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
12428         PR target/54461
12429         * doc/install.texi (Cross-Compiler-Specific Options): Document
12430         --with-avrlibc.
12432 2013-01-07  Tejas Belagod  <tejas.belagod@arm.com>
12434         * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
12435         vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
12436         vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
12437         vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
12438         vqmovun_high_s64): Fix source operand number and update copyright.
12440 2013-01-07  Richard Biener  <rguenther@suse.de>
12442         PR middle-end/55890
12443         * gimple.h (gimple_call_builtin_p): New overload.
12444         * gimple.c (validate_call): New function.
12445         (gimple_call_builtin_p): Likewise.
12446         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12447         Use gimple_call_builtin_p.
12448         (find_func_clobbers): Likewise.
12449         * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
12450         (strlen_optimize_stmt): Likewise.
12452 2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
12454         * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
12455         (vld1q_dup_*): Likewise.
12456         (vld1_*): Likewise.
12457         (vld1q_*): Likewise.
12458         (vld1_lane_*): Likewise.
12459         (vld1q_lane_*): Likewise.
12461 2013-01-07  Richard Biener  <rguenther@suse.de>
12463         * lto-streamer.h (LTO_minor_version): Bump to 2.
12465 2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
12467         * config/aarch64/aarch64-protos.h
12468         (aarch64_const_double_zero_rtx_p): Rename to...
12469         (aarch64_float_const_zero_rtx_p): ...this.
12470         (aarch64_float_const_representable_p): New.
12471         (aarch64_output_simd_mov_immediate): Likewise.
12472         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
12473         move immediate case.
12474         * config/aarch64/aarch64.c
12475         (aarch64_const_double_zero_rtx_p): Rename to...
12476         (aarch64_float_const_zero_rtx_p): ...this.
12477         (aarch64_print_operand): Allow printing of new constants.
12478         (aarch64_valid_floating_const): New.
12479         (aarch64_legitimate_constant_p): Check for valid floating-point
12480         constants.
12481         (aarch64_simd_valid_immediate): Likewise.
12482         (aarch64_vect_float_const_representable_p): New.
12483         (aarch64_float_const_representable_p): Likewise.
12484         (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
12485         (aarch64_output_simd_mov_immediate): New.
12486         * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
12487         (*movdf_aarch64): Likewise.
12488         * config/aarch64/constraints.md (Ufc): New.
12489         (Y): call aarch64_float_const_zero_rtx.
12490         * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
12492 2013-01-07  Richard Biener  <rguenther@suse.de>
12494         PR tree-optimization/55888
12495         PR tree-optimization/55862
12496         * tree-ssa-pre.c (phi_translate_1): Revert previous change.
12497         (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
12498         not if it is contained therein.
12500 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
12502         * config/avr/t-avr: Typo.
12504 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
12506         PR55243
12507         * config/avr/t-avr: Don't automatically rebuild
12508         $(srcdir)/config/avr/t-multilib
12509         $(srcdir)/config/avr/avr-tables.opt
12510         $(srcdir)/doc/avr-mmcu.texi
12511         (avr-mcus): New phony target to build them on request.
12512         (s-avr-mlib, s-avr-mmcu-texi): Remove.
12513         * avr/avr-mcus.def: Adjust comments.
12515 2013-01-07  Uros Bizjak  <ubizjak@gmail.com>
12517         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
12519 2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
12521         * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
12523 2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
12525         * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
12527 2013-01-05  David Edelsohn  <dje.gcc@gmail.com>
12529         * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
12530         to generate profiling.
12531         * config/rs6000/aix64.h (LIB_SPEC): Same.
12533 2013-01-04  Andrew Pinski  <apinski@cavium.com>
12535         * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
12536         New function.
12537         (TARGET_FIXED_CONDITION_CODE_REGS): Define.
12539 2013-01-04  Uros Bizjak  <ubizjak@gmail.com>
12541         * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
12542         unconditionally.
12543         (ix86_expand_move): Ditto.
12544         (ix86_zero_extend_to_Pmode): Ditto.
12545         (ix86_expand_call): Ditto.
12546         (ix86_expand_special_args_builtin): Ditto.
12547         (ix86_expand_builtin): Ditto.
12549 2013-01-04  Richard Biener  <rguenther@suse.de>
12551         PR tree-optimization/55862
12552         * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
12553         translating them through PHI nodes.
12555 2013-01-04  Martin Jambor  <mjambor@suse.cz>
12557         PR tree-optimization/55755
12558         * tree-sra.c (sra_modify_assign): Do not check that an access has no
12559         children when trying to avoid producing a VIEW_CONVERT_EXPR.
12561 2013-01-04  Marek Polacek  <polacek@redhat.com>
12563         PR middle-end/55859
12564         * opts.c (default_options_optimization): Clarify error message.
12566 2013-01-04  Richard Biener  <rguenther@suse.de>
12568         PR middle-end/55863
12569         * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
12570         reassociation.
12572 2013-01-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12574         PR target/53789
12575         * config/pa/pa.md (movsi): Revert previous change.
12576         * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
12577         references.
12579 2013-01-03  Richard Henderson  <rth@redhat.com>
12581         * config/i386/i386.c (ix86_expand_move): Always assign to op1
12582         after eliminating TLS symbols.
12584 2013-01-03  Marc Glisse  <marc.glisse@inria.fr>
12586         PR bootstrap/50167
12587         * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
12588         * graphite-poly.c (debug_gmp_value): Likewise.
12590 2013-01-03  Uros Bizjak  <ubizjak@gmail.com>
12592         PR target/55712
12593         * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
12594         selected code model, define __code_mode_small__, __code_model_medium__,
12595         __code_model_large__, __code_model_32__ or __code_model_kernel__.
12596         * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
12597         xchg temporary register with %k.  Declare temporary register as
12598         early clobbered.
12599         [__x86_64__]: For medium and large code models, preserve %rbx register.
12601 2013-01-03  Richard Biener  <rguenther@suse.de>
12603         * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
12604         (dump_subscript): Adjust.
12605         (finalize_ddr_dependent): Do not dump redundant info.
12606         (analyze_siv_subscript): Adjust.
12607         (subscript_dependence_tester): Likewise.
12608         (compute_affine_dependence): Likewise.
12610 2013-01-03  Richard Biener  <rguenther@suse.de>
12612         Revert
12613         2013-01-03  Richard Biener  <rguenther@suse.de>
12615         PR tree-optimization/55857
12616         * tree-vect-stmts.c (vectorizable_load): Do not setup
12617         re-alignment for invariant loads.
12619         2013-01-02  Richard Biener  <rguenther@suse.de>
12621         * tree-vect-stmts.c (vectorizable_load): When vectorizing an
12622         invariant load do not generate a vector load from the scalar location.
12624 2013-01-03  Richard Biener  <rguenther@suse.de>
12626         * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
12627         for not vectorizing.
12628         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
12629         not build INDIRECT_REFs, call get_name once only.
12630         (vect_create_data_ref_ptr): Likewise.  Dump base object kind
12631         based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
12633 2013-01-03  Richard Biener  <rguenther@suse.de>
12635         PR tree-optimization/55857
12636         * tree-vect-stmts.c (vectorizable_load): Do not setup
12637         re-alignment for invariant loads.
12639 2013-01-03  Richard Biener  <rguenther@suse.de>
12641         PR lto/55848
12642         * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
12643         prefer a built-in decl.
12645 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
12647         * gcc.c (process_command): Update copyright notice dates.
12648         * gcov.c (print_version): Likewise.
12649         * gcov-dump.c (print_version): Likewise.
12651         PR rtl-optimization/55838
12652         * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
12653         iv0.step, iv1.step and step.
12655 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
12656             Marc Glisse  <marc.glisse@inria.fr>
12658         PR tree-optimization/55832
12659         * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
12660         ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
12661         integer_{one,zero}_node.
12663 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
12665         PR debug/54402
12666         * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
12667         * var-tracking.c (reverse_op): Don't add reverse ops to
12668         VALUEs that have already
12669         PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
12671 2013-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
12673         * doc/contrib.texi: Note years as release manager for Mark Mitchell.
12675 2013-01-02  Teresa Johnson  <tejohnson@google.com>
12677         * dumpfile.c (dump_loc): Print filename with location.
12678         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
12679         new location_t parameter to emit complete unroll message with
12680         new dump framework.
12681         (canonicalize_loop_induction_variables): Compute loops location
12682         and pass to try_unroll_loop_completely.
12683         * loop-unroll.c (report_unroll_peel): New function.
12684         (peel_loops_completely): Use new dump format with location
12685         for main dumpfile message, and invoke report_unroll_peel on success.
12686         (decide_unrolling_and_peeling): Ditto.
12687         (decide_peel_once_rolling): Remove old dumpfile message subsumed
12688         by report_unroll_peel.
12689         (decide_peel_completely): Ditto.
12690         (decide_unroll_constant_iterations): Ditto.
12691         (decide_unroll_runtime_iterations): Ditto.
12692         (decide_peel_simple): Ditto.
12693         (decide_unroll_stupid): Ditto.
12694         * cfgloop.c (get_loop_location): New function.
12695         * cfgloop.h (get_loop_location): Declare.
12697 2013-01-02  Sriraman Tallam  <tmsriram@google.com>
12699         * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
12700         NULL.
12702 2013-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12704         PR middle-end/55198
12705         * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
12706         BLKmode objects when EXPAND_MEMORY is specified.
12708 2013-01-02  Sriraman Tallam  <tmsriram@google.com>
12710         * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
12711         in loop predicate.
12712         (fold_builtin_cpu): Do not share cpu model decls across statements.
12714 2013-01-02  Jason Merrill  <jason@redhat.com>
12716         PR c++/55804
12717         * tree.c (build_array_type_1): Revert earlier change.
12719 2013-01-02  Yufeng Zhang  <yufeng.zhang@arm.com>
12721         * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
12722         "cortex-a57".
12723         * config/aarch64/aarch64-tune.md: Re-generate.
12725 2013-01-02  Richard Biener  <rguenther@suse.de>
12727         * tree-vect-stmts.c (vectorizable_load): When vectorizing an
12728         invariant load do not generate a vector load from the scalar location.
12730 2013-01-02  Richard Biener  <rguenther@suse.de>
12732         PR bootstrap/55784
12733         * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
12734         * configure: Regenerate.
12736 2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
12738         * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
12739         (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
12740         (expand_builtin_int_roundingfn_2): Keep the original target around
12741         for the fallback case.
12743 2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
12745         * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
12746         to be clear for sign changes.
12748 2013-01-01  Jan Hubicka  <jh@suse.cz>
12750         * ipa-inline-analysis.c: Fix formatting.
12752 2013-01-01  Jakub Jelinek  <jakub@redhat.com>
12754         PR tree-optimization/55831
12755         * tree-vect-loop.c (get_initial_def_for_induction): Use
12756         gsi_after_labels instead of gsi_start_bb.
12758 Copyright (C) 2013 Free Software Foundation, Inc.
12760 Copying and distribution of this file, with or without modification,
12761 are permitted in any medium without royalty provided the copyright
12762 notice and this notice are preserved.