1 2014-12-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
7 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
8 kernel version check to avoid incrementing it after every major OS X
10 (darwin_default_min_version): Avoid static memory buffer.
12 2014-12-15 Jakub Jelinek <jakub@redhat.com>
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
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
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.
65 (vec_splat): 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.
74 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
75 (XXSPLTD_V2DI): Likewise.
77 (UDIV_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,
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>
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
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
143 2014-12-09 Uros Bizjak <ubizjak@gmail.com>
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
157 (ac_has_isl_schedule_constraints_compute_schedule):
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>
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>
191 * config/arm/arm.md (*movhi_insn): Use right formatting
194 2014-11-19 Felix Yang <felix.yang@huawei.com>
195 Shanyao Chen <chenshanyao@huawei.com>
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>
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>
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>
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>
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>
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
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>
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>
292 * config/sh/sh.c: Use signed char for signed field.
294 2014-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
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
301 2014-11-19 Uros Bizjak <ubizjak@gmail.com>
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
313 (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
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>
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
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
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
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
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>
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
473 2014-10-01 Jakub Jelinek <jakub@redhat.com>
476 * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and
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>
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
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>
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>
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.
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
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
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
604 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
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>
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>
631 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
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>
651 * fold-const.c (fold_binary_loc): Consistently avoid
652 canonicalizing X & CST away from a CST that is the mask
655 2014-05-28 Richard Biener <rguenther@suse.de>
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.
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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.
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>
800 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
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
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
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>
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.
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
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
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
945 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
946 DImode instead of wm. Use wk constraint for direct move of DFmode
948 (extendsidi2_lfiwax): 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
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
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):
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
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
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
1049 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
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>
1083 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
1085 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
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>
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
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>
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>
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
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>
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
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>
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
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>
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>
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>
1223 * ipa-cp.c (determine_versionability): Pretend that tm_clones are
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
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>
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>
1269 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
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>
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>
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>
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>
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>
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):
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>
1358 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
1359 Matthias Klose <doko@ubuntu.com>
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.
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>
1380 * config/avr/avr.c (avr_out_store_psi): Use correct constant
1383 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
1385 Backport from 2014-05-09 trunk r210267
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>
1410 * optc-gen.awk: Fix option handling for -Wunused-parameter.
1412 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
1415 * config/i386/i386.c (ix86_option_override_internal): Remove PTA_RTM
1418 2014-05-08 Charles Baylis <charles.baylis@linaro.org>
1420 Backport from mainline
1421 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
1424 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
1425 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
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>
1439 * fold-const.c (negate_expr_p): Don't negate directional rounding
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>
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
1457 (may_eliminate_iv): Convert cand_value_at result to desired
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>
1472 * tree-inline.c (declare_return_variable): Use mark_addressable.
1474 2014-04-07 Richard Biener <rguenther@suse.de>
1477 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
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
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
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
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
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.
1571 (DIVWEUO): Likewise.
1575 (DIVDEUO): Likewise.
1576 (DXEX): Add decimal floating-point builtin functions.
1579 (DDEDPDQ): Likewise.
1581 (DENBCDQ): Likewise.
1588 (CDTBCD): Add new BCD builtin functions.
1592 (BCDADD_LT): Likewise.
1593 (BCDADD_EQ): Likewise.
1594 (BCDADD_GT): Likewise.
1595 (BCDADD_OV): 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
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
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
1664 (UNSPEC_CDTBCD): Likewise.
1665 (UNSPEC_CBCDTD): Likewise.
1666 (UNSPEC_DIVE): Add support for new extended divide builtin
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.
1680 (UNSPEC_DIV_EXTEND): Add support for new extended divide
1682 (div_extend): Likewise.
1683 (div<div_extend>_<mode>"): Likewise.
1684 (FP128_64): Add support for new builtin functions to pack/unpack
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
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>
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
1736 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1739 * config/rs6000/altivec.md (UNSPEC_VBPERMQ): Add support for the
1740 vbpermq instruction.
1741 (altivec_vbpermq): Likewise.
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>
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>
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>
1781 * gimplify.c (gimple_regimplify_operands): Update the
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>
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
1806 (vsx_xxmrglw_<mode>): Likewise.
1808 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
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>
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
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
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>
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>
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>
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
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>
1919 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
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>
1936 * ipa-cp.c (propagate_constants_accross_call): Do not propagate
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>
1945 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata
1947 (darwin_objc1_section): Likewise.
1948 (darwin_file_end): Emit Image Info section when required.
1950 2014-04-05 Alan Modra <amodra@gmail.com>
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):
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>
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
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
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>
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>
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>
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.
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
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
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
2150 (easy_altivec_constant): Likewise.
2151 (output_vec_const_move): Likewise.
2152 (rs6000_expand_vector_set): Convert V1TImode set and extract to
2154 (rs6000_expand_vector_extract): Likewise.
2155 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
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
2174 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
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.
2188 (VS_scalar): Likewise.
2189 (VS_double): Likewise.
2190 (vsx_set_v1ti): New builtin function to create V1TImode from
2193 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say
2194 whether we support the ISA 2.07 128-bit integer arithmetic
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.
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
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>
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>
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>
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>
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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
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
2626 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
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
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
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>
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
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
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.
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>
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>
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
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):
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
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
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]:
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
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.
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
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
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>
3139 * doc/invoke.texi: Add documentation of mcompat-align-parm
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
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
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
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):
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
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
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
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
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
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
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
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
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>
3465 Backport from mainline
3466 2013-12-03 Peter Bergner <bergner@vnet.ibm.com>
3468 * config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix
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.
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>
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>
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
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
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.
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.
3702 (nabsdf2): 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.
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,
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
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>
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
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>
3834 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
3835 setting -mvsx-timode by default until the underlying problem is
3837 (RS6000_CPU, power7 defaults): Likewise.
3840 2013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
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
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
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
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
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
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
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.
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
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
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
3995 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion
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
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>
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
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>
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.
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
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
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.
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
4109 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
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
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.
4176 (floatunssi<mode>2_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
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
4230 (xscvdpspn): Likewise.
4236 (vpopcnt): Likewise.
4237 (vpopcntb): Likewise.
4238 (vpopcnth): Likewise.
4239 (vpopcntw): Likewise.
4240 (vpopcntd): 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.
4252 (nand_v16qi3): Likewise.
4253 (nand_v8hi3): Likewise.
4254 (nand_v4si3): Likewise.
4255 (nand_v2di3): Likewise.
4256 (nand_v4sf3): Likewise.
4257 (nand_v2df3): 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
4274 (altivec_expand_vec_perm_const): Add support for new power8 merge
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
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
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
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
4331 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
4334 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
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.
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
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.
4378 (vpkudum): Likewise.
4379 (vpksdss): Likewise.
4380 (vpkudus): Likewise.
4381 (vpksdus): 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.
4400 (vpksdss): Likewise.
4401 (vpksdus): Likewise.
4402 (vpkudum): Likewise.
4403 (vpkudus): 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.
4435 (VI_char): Likewise.
4436 (VI_scalar): Likewise.
4437 (VI_unit): 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
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.
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
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
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
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
4619 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
4621 (rs6000_debug_reg_print): Print the base register class if
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
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
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
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
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
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
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
4753 (real_value_to_target): 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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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>
5017 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
5019 2014-03-26 Martin Jambor <mjambor@suse.cz>
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
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>
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.
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.
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>
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>
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>
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>
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>
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>
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>
5252 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
5255 2014-02-14 Richard Biener <rguenther@suse.de>
5257 PR tree-optimization/60183
5258 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating
5260 (tree_ssa_phiprop): Calculate and free post-dominators.
5262 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5265 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
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
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>
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>
5312 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
5313 on failure the store back into EXPECT. Always make a new pseudo for
5316 2014-02-20 Jakub Jelinek <jakub@redhat.com>
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>
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>
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>
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>
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>
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
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>
5450 * doc/invoke.texi (-march): Clarify documentation for ARM.
5454 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
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
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>
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>
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
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>
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>
5568 * fold-const.c (fold_range_test): Return 0 if the type is not
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>
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>
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>
5600 * config/mips/mips.c (mips_print_operand): Check operand mode instead
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>
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>
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>
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
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>
5663 * config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb
5665 * config/arm/ldmstm.md: Regenerate.
5667 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
5670 * config/arm/predicates.md (arm_hard_general_register_operand):
5672 (arm_hard_register_operand): Remove.
5673 * config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand
5675 * config/arm/ldmstm.md: Regenerate.
5677 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
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>
5691 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
5694 2014-01-17 Terry Guo <terry.guo@arm.com>
5697 * config/arm/arm.md (prefetch): Set insn type attribute to load1.
5699 2014-01-16 Jakub Jelinek <jakub@redhat.com>
5702 * config/i386/i386.c (ix86_expand_builtin): If target doesn't
5703 satisfy operand 0 predicate for gathers, use a new pseudo as
5706 2014-01-16 Richard Henderson <rth@redhat.com>
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>
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>
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>
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>
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
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
5795 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
5797 2014-01-09 Richard Sandiford <rdsandiford@googlemail.com>
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
5838 (fini_object_sizes): Call release on object_sizes elements, don't
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>
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>
5874 * config/i386/i386.c (struct ptt): Add a field for processor name.
5875 (processor_target_table): Sync with processor_type. Add
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
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>
5900 * ipa-prop.c (ipa_compute_jump_functions): Bail out if not optimizing.
5901 (parm_preserved_before_stmt_p): Assume modification present when not
5904 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
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>
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
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>
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>
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
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
5977 2014-01-03 Jakub Jelinek <jakub@redhat.com>
5980 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
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>
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...
6012 (cmhi): Rename to...
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
6022 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
6024 (UCOMPARISONS): Likewise.
6025 (optab): Add missing comparisons.
6033 (V_cmp_result): Add DF, SF modes.
6034 (v_cmp_result): 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
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
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>
6082 * lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo
6083 values if necessary.
6085 2013-12-12 Jakub Jelinek <jakub@redhat.com>
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>
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>
6108 2013-12-05 Alan Modra <amodra@gmail.com>
6109 * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
6111 <recursive call for build != host>: Clear GMPINC. Don't bother
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>
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>
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
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
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>
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>
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>
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>
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.
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
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>
6279 * fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
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
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>
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>
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
6354 * config/sparc/sparc.opt (LEON, LEON3): New masks.
6355 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
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.
6408 (atomic_test_and_set): 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>
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>
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
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
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
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>
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>
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>
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
6563 (prepare_initializers_chain): Adjust.
6565 PR tree-optimization/59047
6566 * tree-predcom.c (ref_at_iteration): Handle bitfield accesses
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):
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>
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>
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>
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>
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>
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
6641 2013-11-10 Karlson2k <k2k@narod.ru>
6642 Kai Tietz <ktietz@redhat.com>
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>
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
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>
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>
6693 Backport from mainline
6694 2013-05-09 Martin Jambor <mjambor@suse.cz>
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>
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>
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>
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>
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
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>
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
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
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.
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>
6867 * config/s390/s390.c (s390_chunkify_start): Handle tablejump_p first,
6868 continue when done, for other jumps look through PARALLEL
6871 2013-09-30 Jakub Jelinek <jakub@redhat.com>
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.
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>
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>
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>
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>
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>
6952 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
6955 2013-09-13 Christian Bruel <christian.bruel@st.com>
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
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>
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>
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
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>
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>
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
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>
7118 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
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>
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>
7139 PR tree-optimization/57417
7140 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
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>
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>
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>
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>
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>
7197 * arm.c (aapcs_vfp_allocate): Decompose the argument if the
7198 suggested mode for the assignment isn't compatible with the
7201 2013-08-20 Alan Modra <amodra@gmail.com>
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
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
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>
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>
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>
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>
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
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
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
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
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>
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
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
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.
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.
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.
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.
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.
7552 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
7555 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
7557 Backport from 2013-07-10 trunk r200870.
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>
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
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>
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>
7622 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
7623 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
7626 2013-06-28 Jakub Jelinek <jakub@redhat.com>
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
7633 2013-06-27 Jakub Jelinek <jakub@redhat.com>
7636 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
7637 constraints of operand 1 and 2.
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
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>
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>
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.
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>
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>
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>
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
7740 2013-06-04 Alan Modra <amodra@gmail.com>
7741 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
7958 2013-05-21 Magnus Granberg <baldrick@free.fr>
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>
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
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
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>
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
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>
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>
8079 * varasm.c (default_elf_select_section): Move !DECL_P check..
8080 (get_named_section): ..to here before calling get_section_name.
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>
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>
8109 2012-08-17 Diego Novillo <dnovillo@google.com>
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
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.
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
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>
8153 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
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
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>
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>
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
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
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>
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.
8226 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
8228 Backport from mainline
8229 2013-04-29 Vladimir Makarov <vmakarov@redhat.com>
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>
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
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
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>
8297 * config/i386/i386.md (*zero_extendsidi2_rex64): Add "!" to m->?*y
8299 (*zero_extendsidi2): Ditto.
8301 Backport from mainline
8302 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
8305 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
8307 2013-04-29 Richard Biener <rguenther@suse.de>
8310 * tree-cfg.c (move_stmt_op): Fix condition under which to update
8312 (move_stmt_r): Remove redundant checking.
8314 2013-04-29 Christian Bruel <christian.bruel@st.com>
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>
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.
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>
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
8401 2013-04-17 David Edelsohn <dje.gcc@gmail.com>
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>
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>
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
8449 2013-04-11 Marek Polacek <polacek@redhat.com>
8451 PR tree-optimization/48184
8452 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum
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>
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
8490 2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8492 * config/s390/s390.c (s390_expand_insv): Only accept insertions
8495 2013-04-08 Marek Polacek <polacek@redhat.com>
8497 PR rtl-optimization/48182
8498 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
8501 2013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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>
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>
8553 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN
8556 2013-04-03 Richard Biener <rguenther@suse.de>
8558 PR tree-optimization/56817
8559 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
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>
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
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
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
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
8655 (insn_v<n>mnz): Replaced by ...
8656 (insn_v1mnz): ... this ...
8657 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
8659 (insn_mz_<mode>): Replaced by ...
8660 (insn_mz_v8qi): ... this ...
8661 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
8663 (insn_v<n>mz): Replaced by ...
8664 (insn_v1mz): ... this ...
8665 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
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
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):
8719 2013-03-25 Richard Biener <rguenther@suse.de>
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>
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>
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
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
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>
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
8861 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
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
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>
8880 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
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>
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>
8896 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
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>
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>
8911 * arm.c (shift_op): Validate RTL pattern on the fly.
8912 (arm_print_operand, case 'S'): Don't use shift_operator to validate
8915 2013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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>
8936 * tree.h (tree_optimization_option): Rename target_optabs to 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
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
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
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
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
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
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>
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>
9046 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
9047 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
9050 2013-02-13 Richard Biener <rguenther@suse.de>
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>
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>
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
9076 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
9079 2013-03-05 Sterling Augustine <saugustine@google.com>
9080 Cary Coutant <ccoutant@google.com>
9083 * dwarf2out.c (resolve_addr): Don't call
9084 remove_loc_list_addr_table_entries a second time for the same
9087 2013-03-05 Jakub Jelinek <jakub@redhat.com>
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
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,
9126 2013-03-05 Jakub Jelinek <jakub@redhat.com>
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.
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.
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
9149 2013-03-05 Steven Bosscher <steven@gcc.gnu.org>
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>
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
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.
9194 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
9195 load_index sbitmap even if some bit in it isn't set.
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.
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
9211 2013-03-05 Richard Biener <rguenther@suse.de>
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).
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.
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>
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>
9269 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
9270 partitions.ordered_remove.
9273 * tree-vect-stmts.c (vectorizable_conversion): Don't call
9274 vec_oprnds0.create (1) for modifier == NONE.
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
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
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
9310 2013-03-01 Xinliang David Li <davidxl@google.com>
9312 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
9315 2013-03-01 Jakub Jelinek <jakub@redhat.com>
9318 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
9319 vector even when returning true. Fix up function comment formatting.
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.
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.
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
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>
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>
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
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.
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
9407 2013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9409 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
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>
9422 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
9424 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
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>
9467 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
9468 method on dr_chain and result_chain.
9471 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
9472 pointer_set_destroy on not_executed_last_iteration.
9475 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
9478 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
9479 FOR_EACH_DEFINED_FUNCTION when freeing state.
9482 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
9484 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
9488 * ipa-cp.c (decide_whether_version_node): Call vec_free on
9489 known_aggs[i].items and release known_aggs vector.
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>
9504 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
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>
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.
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>
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>
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.
9562 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
9563 * config/c6x/c6x.h (dbx_register_map): Update declaration.
9566 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
9567 of prologue/epilogue functions.
9570 * config/tilegx/tilegx.c (tilegx_expand_prologue):
9571 Remove unused variable cfa_offset.
9572 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
9575 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
9576 type promotion to unsigned.
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.
9585 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
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
9594 2013-02-26 Richard Biener <rguenther@suse.de>
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,
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>
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
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>
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
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>
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>
9921 * lra-constraints.c (process_alt_operands): Reload operand
9922 conflicting with earlier clobber only if no more other conflicting
9925 2013-02-22 Jakub Jelinek <jakub@redhat.com>
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>
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
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
9962 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
9965 2013-02-20 Aldy Hernandez <aldyh@redhat.com>
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
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
10010 2013-02-21 Jakub Jelinek <jakub@redhat.com>
10013 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
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
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
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
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
10079 (get_use_iv_cost): Terminate hashtable walk when coming across
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
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
10136 2013-02-18 Aldy Hernandez <aldyh@redhat.com>
10137 Jakub Jelinek <jakub@redhat.com>
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
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>
10162 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
10163 registers %fr12 and %fr12R as call used.
10166 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
10167 and HImode, require all displacements to be an integer multiple of
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
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
10215 2013-02-16 Jakub Jelinek <jakub@redhat.com>
10216 Dodji Seketeli <dodji@redhat.com>
10219 * asan.c (get_mem_refs_of_builtin_call): White space and style
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>
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>
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>
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
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>
10289 * ira.c (max_regno_before_ira): Move from ...
10291 (fix_reg_equiv_init): Use max_regno_before_ira instead of
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>
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
10313 2013-02-13 Kostya Serebryany <kcc@google.com>
10315 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset on x86_64
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
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>
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>
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>
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>
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>
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
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>
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
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>
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>
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
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
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>
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
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>
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
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>
10663 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
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>
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
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>
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
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>
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.
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>
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>
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>
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>
10813 * config/i386/i386.c (function_value_ms_64): Add additional valtype
10814 argument and improve checking of return-argument types for 16-byte
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>
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):
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.
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
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
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
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>
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>
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.
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
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
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>
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>
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>
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,
11078 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
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>
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>
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
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
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>
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
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
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>
11268 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
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
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>
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>
11325 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
11328 2013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
11330 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
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
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
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.
11377 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
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.
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>
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>
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>
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.
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>
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
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>
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>
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
11614 * config/i386/i386.md (btver2_decode): New type attributes.
11615 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
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>
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>
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
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>
11711 PR rtl-optimization/55547
11712 PR rtl-optimization/53827
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
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>
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
11773 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
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
11827 2013-01-16 Christian Bruel <christian.bruel@st.com>
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
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
11858 * alias.c (memrefs_conflict_p): Set sizes to negative after
11861 2013-01-15 Jakub Jelinek <jakub@redhat.com>
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>
11877 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
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>
11902 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
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>
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>
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>
11981 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
11982 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
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
12020 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
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
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
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>
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>
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
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>
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
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>
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>
12164 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
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
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):
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
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
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
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):
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>
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
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>
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,
12367 2013-01-07 Steve Ellcey <sellcey@mips.com>
12370 * config/mips/mips.opt: Change mad to mmad to match documentation.
12372 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
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>
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
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
12402 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
12403 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
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>
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>
12429 * doc/install.texi (Cross-Compiler-Specific Options): Document
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
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>
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):
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
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
12572 2013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12575 * config/pa/pa.md (movsi): Revert previous change.
12576 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
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>
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>
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
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>
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>
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>
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
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
12712 (fold_builtin_cpu): Do not share cpu model decls across statements.
12714 2013-01-02 Jason Merrill <jason@redhat.com>
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
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>
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.