1 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
4 recog state after aarch64_prev_real_insn call.
6 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8 * config.gcc (aarch64*-*-*): Define TARGET_FIX_ERR_A53_835769_DEFAULT
10 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
11 * configure: Regenerate.
12 * config/aarch64/aarch64.c (aarch64_override_options): Handle
13 TARGET_FIX_ERR_A53_835769_DEFAULT.
14 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init value
16 * doc/install.texi: Document --enable-fix-cortex-a53-835769 option.
18 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
21 * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Define.
22 (FINAL_PRESCAN_INSN): Likewise.
23 * config/aarch64/aarch64.h (is_mem_p): New function.
24 (has_memory_op): Likewise.
25 (aarch64_prev_real_insn): Likewise.
26 (is_madd_op): Likewise.
27 (dep_between_memop_and_curr): Likewise.
28 (aarch64_madd_needs_nop): Likewise.
29 (aarch64_final_prescan_insn): Likewise.
30 * doc/invoke.texi (Document new option).
32 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
34 * stor-layout.c (self_referential_size): Do not promote arguments.
36 2014-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38 Backport from mainline r215880
39 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
42 Issue a warning message when vec_lvsl or vec_lvsr is used with a
45 Backport from mainline r215882
46 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
48 * altivec.md (altivec_lvsl): New define_expand.
49 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
50 (altivec_lvsr): New define_expand.
51 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
52 * rs6000.c (rs6000_expand_builtin): Change to use
53 altivec_lvs[lr]_direct; remove commented-out code.
55 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
57 Backport from mainline
58 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
60 PR rtl-optimization/57003
61 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
62 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
63 killing regs_invalidated_by_call.
65 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
67 Backport from mainline
68 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
71 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
72 atomic_fetch_<fetchop_name>si_hard,
73 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
74 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
75 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
76 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
78 2014-10-02 Martin Jambor <mjambor@suse.cz>
80 PR tree-optimization/63375
81 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
84 2014-10-01 Jakub Jelinek <jakub@redhat.com>
87 * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and
91 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
92 argument to avx2_permv2ti.
94 2014-10-01 Uros Bizjak <ubizjak@gmail.com>
96 Backport from mainline
97 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
99 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
100 (fmod<mode>3): Ditto.
101 (fpremxf4_i387): Ditto.
102 (reminderxf3): Ditto.
103 (reminder<mode>3): Ditto.
104 (fprem1xf4_i387): Ditto.
106 2014-09-30 Jakub Jelinek <jakub@redhat.com>
109 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
110 or invert_jump_1 if jump isn't any_condjump_p.
112 2014-09-29 Charles Baylis <charles.baylis@linaro.org>
114 Backport from mainline r212303
116 * config/arm/arm-protos.h (arm_legitimate_address_p,
117 arm_is_constant_pool_ref): Add prototypes.
118 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
119 (arm_is_constant_pool_ref) New function.
120 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
121 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
122 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
123 operand and remove pool_range and neg_pool_range attributes.
124 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
125 pool_range and neg_pool_range attributes.
126 * config/arm/constraints.md (Uh): New constraint. (Uq): Don't allow
127 constant pool references.
129 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
131 * config/pa/pa.c (pa_output_function_epilogue): Only update
132 last_address when a nonnote insn is found.
134 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
136 Backport from mainline
137 2014-09-25 Nick Clifton <nickc@redhat.com>
138 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
141 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask,
142 atomic_test_and_set_soft_imask): Fix typo in instruction sequence.
144 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
146 Backport from mainline r215559
147 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
150 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
151 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
153 2014-09-25 Jakub Jelinek <jakub@redhat.com>
155 PR tree-optimization/63341
156 * tree-vectorizer.h (vect_create_data_ref_ptr,
157 vect_create_addr_base_for_vector_ref): Add another tree argument
158 defaulting to NULL_TREE.
159 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
160 argument, pass it down to vect_create_addr_base_for_vector_ref.
161 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
162 add that to base_offset too if non-NULL.
163 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
164 for dr_explicit_realign_optimized set it to vector byte size
165 - 1 instead of setting offset, pass byte_offset down to
166 vect_create_data_ref_ptr.
168 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
170 Back port from trunk:
171 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
173 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
174 refine the constraints used on 32/64-bit floating point moves.
179 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
180 (BOOL_REGS_OP1): Likewise.
181 (BOOL_REGS_OP2): Likewise.
182 (BOOL_REGS_UNARY): Likewise.
183 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
184 32/64-bit floating point moves. Do not use wa, instead use ww/ws
185 for moves involving VSX registers. Do not use constraints that
186 target VSX registers for decimal types.
187 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
188 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
190 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
192 Back port from trunk:
193 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
195 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
196 for base_reg_operand to be common between LO_SUM and PLUS.
197 (fusion_gpr_mem_combo): New predicate to match a fused address
198 that combines the addis and memory offset address.
200 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
202 (emit_fusion_gpr_load): Likewise.
204 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
205 signature to pass each argument separately, rather than
206 using an operands array. Rewrite the insns found by peephole2 to
207 be a single insn, rather than hoping the insns will still be
208 together when the peephole pass is done. Drop being called via a
210 (emit_fusion_gpr_load): Change calling signature to be called from
211 the fusion_gpr_load_<mode> insns with a combined memory address
212 instead of the peephole pass passing the addis and offset
215 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
217 (power8 fusion peephole): Drop support for doing power8 via a
218 normal peephole that was created by the peephole2 pass.
219 (power8 fusion peephole2): Create a new insn with the fused
220 address, so that the fused operation is kept together after
221 register allocation is done.
222 (fusion_gpr_load_<mode>): Likewise.
224 2014-09-17 Jakub Jelinek <jakub@redhat.com>
227 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
228 if there are only debug stmts after the noreturn call, instead
229 remove the debug stmts.
231 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
233 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
234 V2DF, V4SF, DF, and DI modes.
235 (vsx_fmav2df2): Likewise.
236 (vsx_float_fix_<mode>2): Likewise.
237 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
239 2014-09-10 Alan Modra <amodra@gmail.com>
242 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
245 2014-09-09 Richard Biener <rguenther@suse.de>
247 Backport from mainline
248 2014-06-11 Richard Biener <rguenther@suse.de>
250 PR tree-optimization/61452
251 * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
252 expr and has_constants in case we found a leader.
253 (simplify_binary_expression): Always valueize operands first.
254 (simplify_unary_expression): Likewise.
256 2014-09-09 Richard Biener <rguenther@suse.de>
258 Backport from mainline
259 2014-05-05 Richard Biener <rguenther@suse.de>
262 * fold-const.c (fold_binary_loc): Consistently avoid
263 canonicalizing X & CST away from a CST that is the mask
266 2014-05-28 Richard Biener <rguenther@suse.de>
269 * fold-const.c (fold_comparison): When folding
270 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
271 the sign of the remaining constant operand stays the same.
273 2014-08-11 Richard Biener <rguenther@suse.de>
275 PR tree-optimization/62075
276 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
277 handle uses in patterns.
279 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
281 Backport from mainline.
282 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
284 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
288 2014-09-08 Jakub Jelinek <jakub@redhat.com>
290 PR tree-optimization/60196
291 PR tree-optimization/63189
292 Backported from mainline
293 2013-09-17 Cong Hou <congh@google.com>
295 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
296 when checking the dot production pattern. The type of rhs operand
297 of multiply is now checked correctly.
299 2014-09-08 Jakub Jelinek <jakub@redhat.com>
301 Backported from mainline
302 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
305 * haifa-sched.c (advance_one_cycle): Fix dump.
306 (schedule_block): Don't advance cycle if we are already at the
307 beginning of the cycle.
309 2014-09-03 Martin Jambor <mjambor@suse.cz>
312 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
313 pass-trough jump functions correctly.
315 2014-09-03 Martin Jambor <mjambor@suse.cz>
318 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
319 created replacements in ascending order of offsets.
320 (known_aggs_to_agg_replacement_list): Likewise.
322 2014-09-01 Marek Polacek <polacek@redhat.com>
324 Backport from mainline
325 2014-08-21 Marek Polacek <polacek@redhat.com>
328 * expr.c (is_aligning_offset): Remove logical not.
330 2014-09-01 Marek Polacek <polacek@redhat.com>
332 Backport from mainline
333 2014-08-19 Marek Polacek <polacek@redhat.com>
336 * cgraphunit.c (handle_alias_pairs): Fix condition.
338 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
340 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
341 prefix to function labels when generating fast indirect calls.
343 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
345 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
347 2014-08-26 Marek Polacek <polacek@redhat.com>
349 Backport from mainline
350 2014-08-26 Marek Polacek <polacek@redhat.com>
353 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
354 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
356 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
358 Backport from mainline
359 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
362 * config/sh/sh.opt (musermode): Allow negative form.
363 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
364 targets that don't support it.
365 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
366 Document -mno-usermode option.
368 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
371 * config/pa/pa.c (pa_output_function_epilogue): Don't set
372 last_address when the current function is a thunk.
373 (pa_asm_output_mi_thunk): When we don't have named sections or they
374 are not being used, check that thunk can reach the stub table with a
377 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
379 Backport fro mainline
380 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
383 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
384 documentation to state it is only for VSX operations.
386 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
387 constraint only active if VSX.
389 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
390 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
393 2014-08-15 Tom de Vries <tom@codesourcery.com>
395 Backport from mainline:
396 2014-08-14 Tom de Vries <tom@codesourcery.com>
398 PR rtl-optimization/62004
399 PR rtl-optimization/62030
400 * ifcvt.c (rtx_interchangeable_p): New function.
401 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
403 2014-08-05 Richard Biener <rguenther@suse.de>
405 * emit-rtl.h (mem_attrs_eq_p): Declare.
406 * emit-rtl.c (mem_attrs_eq_p): Export.
408 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
411 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
414 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
415 size accounting for thunks.
416 (pa_asm_output_mi_thunk): Use final_start_function() and
417 final_end_function() to output function start and end directives.
419 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
421 Backport from mainline:
422 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
424 * doc/invoke.texi (SH options): Document missing processor variant
425 options. Remove references to Hitachi. Undocument deprecated mspace
428 2014-08-13 Felix Yang <fei.yang0953@gmail.com>
430 PR tree-optimization/62073
431 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
434 2014-08-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
436 Backport from mainline
437 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
440 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
441 bitfields, that is when size doesn't match the size of type or the
442 size of the constructor.
444 2014-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
446 Backport patch from mainline
447 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
449 * config/rs6000/constraints.md (wh constraint): New constraint,
450 for FP registers if direct move is available.
451 (wi constraint): New constraint, for VSX/FP registers that can
452 handle 64-bit integers.
453 (wj constraint): New constraint for VSX/FP registers that can
454 handle 64-bit integers for direct moves.
455 (wk constraint): New constraint for VSX/FP registers that can
456 handle 64-bit doubles for direct moves.
457 (wy constraint): Make documentation match implementation.
459 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
460 scalar_in_vmx_p field to simplify tests of whether SFmode or
461 DFmode can go in the Altivec registers.
462 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
463 (rs6000_setup_reg_addr_masks): Likewise.
464 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
465 field, and wh/wi/wj/wk constraints.
466 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
467 the wh/wi/wj/wk constraints.
468 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
469 upper registers, prefer VSX registers unless the operation is a
470 memory operation with REG+OFFSET addressing.
472 * config/rs6000/vsx.md (VSr mode attribute): Add support for
473 DImode. Change SFmode to use ww constraint instead of d to allow
474 SF registers in the upper registers.
477 (VSr5): Fix thinko in comment.
478 (VSa): New mode attribute that is an alternative to wa, that
479 returns the VSX register class that a mode can go in, but may not
480 be the preferred register class.
481 (VS_64dm): New mode attribute for appropriate register classes for
482 referencing 64-bit elements of vectors for direct moves and normal
484 (VS_64reg): Likewise.
485 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
486 register allocator to only registers the data type can handle.
487 (vsx_le_perm_load_<mode>): Likewise.
488 (vsx_le_perm_store_<mode>): Likewise.
489 (vsx_xxpermdi2_le_<mode>): Likewise.
490 (vsx_xxpermdi4_le_<mode>): Likewise.
491 (vsx_lxvd2x2_le_<mode>): Likewise.
492 (vsx_lxvd2x4_le_<mode>): Likewise.
493 (vsx_stxvd2x2_le_<mode>): Likewise.
494 (vsx_add<mode>3): Likewise.
495 (vsx_sub<mode>3): Likewise.
496 (vsx_mul<mode>3): Likewise.
497 (vsx_div<mode>3): Likewise.
498 (vsx_tdiv<mode>3_internal): Likewise.
499 (vsx_fre<mode>2): Likewise.
500 (vsx_neg<mode>2): Likewise.
501 (vsx_abs<mode>2): Likewise.
502 (vsx_nabs<mode>2): Likewise.
503 (vsx_smax<mode>3): Likewise.
504 (vsx_smin<mode>3): Likewise.
505 (vsx_sqrt<mode>2): Likewise.
506 (vsx_rsqrte<mode>2): Likewise.
507 (vsx_tsqrt<mode>2_internal): Likewise.
508 (vsx_fms<mode>4): Likewise.
509 (vsx_nfma<mode>4): Likewise.
510 (vsx_eq<mode>): Likewise.
511 (vsx_gt<mode>): Likewise.
512 (vsx_ge<mode>): Likewise.
513 (vsx_eq<mode>_p): Likewise.
514 (vsx_gt<mode>_p): Likewise.
515 (vsx_ge<mode>_p): Likewise.
516 (vsx_xxsel<mode>): Likewise.
517 (vsx_xxsel<mode>_uns): Likewise.
518 (vsx_copysign<mode>3): Likewise.
519 (vsx_float<VSi><mode>2): Likewise.
520 (vsx_floatuns<VSi><mode>2): Likewise.
521 (vsx_fix_trunc<mode><VSi>2): Likewise.
522 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
523 (vsx_x<VSv>r<VSs>i): Likewise.
524 (vsx_x<VSv>r<VSs>ic): Likewise.
525 (vsx_btrunc<mode>2): Likewise.
526 (vsx_b2trunc<mode>2): Likewise.
527 (vsx_floor<mode>2): Likewise.
528 (vsx_ceil<mode>2): Likewise.
529 (vsx_<VS_spdp_insn>): Likewise.
530 (vsx_xscvspdp): Likewise.
531 (vsx_xvcvspuxds): Likewise.
532 (vsx_float_fix_<mode>2): Likewise.
533 (vsx_set_<mode>): Likewise.
534 (vsx_extract_<mode>_internal1): Likewise.
535 (vsx_extract_<mode>_internal2): Likewise.
536 (vsx_extract_<mode>_load): Likewise.
537 (vsx_extract_<mode>_store): Likewise.
538 (vsx_splat_<mode>): Likewise.
539 (vsx_xxspltw_<mode>): Likewise.
540 (vsx_xxspltw_<mode>_direct): Likewise.
541 (vsx_xxmrghw_<mode>): Likewise.
542 (vsx_xxmrglw_<mode>): Likewise.
543 (vsx_xxsldwi_<mode>): Likewise.
544 (vsx_xscvdpspn): Tighten constraints to only use register classes
546 (vsx_xscvspdpn): Likewise.
547 (vsx_xscvdpspn_scalar): Likewise.
549 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
550 wj, and wk constraints.
551 (GPR_REG_CLASS_P): New helper macro for register classes targeting
552 general purpose registers.
554 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
556 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
557 DImode instead of wm. Use wk constraint for direct move of DFmode
559 (extendsidi2_lfiwax): Likewise.
562 (movdi_internal64): Likewise.
564 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
565 wk constraints. Make the wy constraint documentation match them
568 2014-08-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
570 Backport from mainline
571 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
573 PR tree-optimization/61375
574 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Cancel optimization if
575 symbolic number cannot be represented in an unsigned HOST_WIDE_INT.
576 (execute_optimize_bswap): Cancel optimization if CHAR_BIT != 8.
578 2014-08-01 Richard Biener <rguenther@suse.de>
580 PR tree-optimization/61964
581 * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): New
582 function merged from trunk.
583 (gimple_equal_p): Handle non-SSA LHS solely by structural
586 2014-07-25 Uros Bizjak <ubizjak@gmail.com>
588 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
590 2014-07-24 Kyle McMartin <kyle@redhat.com>
592 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
594 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
596 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
598 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
599 function. Issue -Wpsabi warning if future GCC releases will use
600 different field alignment rules for this type.
601 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
602 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
603 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
605 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
607 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): Issue
608 -Wpsabi note when encountering a type where future GCC releases
609 will apply different alignment requirements.
611 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
613 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
614 does not fit fully into floating-point registers, and there is still
615 space in the register parameter area, issue -Wpsabi note that the ABI
616 will change in a future GCC release.
618 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
620 * config/arm/t-rtems-eabi: Add
621 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
622 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
623 mbig-endian/mthumb/march=armv7-r, and
624 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
627 2014-07-21 Peter Bergner <bergner@vnet.ibm.com>
629 * config/rs6000/sysv4.h (LIBASAN_EARLY_SPEC): Define.
630 (LIBTSAN_EARLY_SPEC): Likewise.
631 (STATIC_LIBASAN_LIBS): Likewise.
632 (STATIC_LIBTSAN_LIBS): Likewise.
634 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
636 * toplev.c (output_stack_usage): Adjust the location of the warning.
638 2014-07-19 Daniel Cederman <cederman@gaisler.com>
640 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
641 (*membar_storeload): Disable for LEON3.
643 2014-07-17 Richard Biener <rguenther@suse.de>
645 PR rtl-optimization/61801
646 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and
647 ASM_INPUT don't set reg_pending_barrier if it appears in a
650 2014-07-16 Jakub Jelinek <jakub@redhat.com>
652 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
653 on the FUNCTION_DECL.
655 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
657 * doc/install.texi: Remove links to defunct package providers for
660 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
663 * function.c (allocate_struct_function): Revert r188667 change.
665 2014-07-04 Jakub Jelinek <jakub@redhat.com>
667 PR tree-optimization/61684
668 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
669 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
671 2014-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
673 Backport from Mainline
674 2014-06-20 Jakub Jelinek <jakub@redhat.com>
675 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
677 PR tree-optimization/61306
678 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
679 expression instead of its size.
680 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
681 false to prevent optimization when the result is unpredictable due to
682 arithmetic right shift of signed type with highest byte is set.
683 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
684 (find_bswap_1): Likewise. Return NULL to prevent optimization when the
685 result is unpredictable due to sign extension.
686 (find_bswap): Adapt to change in struct symbolic_number.
688 2014-06-27 Uros Bizjak <ubizjak@gmail.com>
690 Backport from mainline
691 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
694 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
696 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
699 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
700 extraction other than index 3.
702 2014-06-24 Jakub Jelinek <jakub@redhat.com>
705 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
706 model family 6 CPU with has_longmode never use a CPU without
709 2014-06-20 Chung-Lin Tang <cltang@codesourcery.com>
711 Backport from mainline
713 2014-06-20 Julian Brown <julian@codesourcery.com>
714 Chung-Lin Tang <cltang@codesourcery.com>
716 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
717 TARGET_THUMB1_ONLY. Add comments.
719 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
721 Backport from mainline
722 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
725 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
726 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
727 and corresponding splitters. Zero extend general register
728 or memory input operand to XMM temporary. Enable for
729 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
730 (floatunssi<mode>2): Update expander predicate.
732 2014-06-18 Richard Henderson <rth@redhat.com>
735 * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM.
737 2014-06-17 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
739 Revert on gcc-4_8-branch.
740 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
741 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
743 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
745 Backport from mainline
748 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
749 variable 'size'; calculate 'size' right in the front; use
750 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
751 pcum->aapcs_stack_words.
753 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
755 Backport from mainline
757 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
759 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
760 (BU_MISC_2): Rename to ...
761 (BU_LDBL128_2): ... this.
762 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
763 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
764 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
766 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
767 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
768 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
769 (unpacktf_1): Likewise.
770 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
771 (__builtin_longdouble_dw1): Likewise.
772 * doc/sourcebuild.texi (longdouble128): Document.
774 2014-06-13 Jason Merrill <jason@redhat.com>
777 * common.opt (-fno-gnu-unique): Add.
778 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
780 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
782 Backport from 2014-05-09 trunk r210272
784 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
785 unsigned int initializers for regno_in, regno_out.
787 Backport from 2014-05-14 trunk r210418
788 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
789 shifted values to avoid build warning.
791 Backport from 2014-06-12 trunk r211491
794 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
795 loading from address spaces.
797 2014-06-12 Alan Modra <amodra@gmail.com>
800 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
801 * doc/tm.texi: Regenerate.
802 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
803 Use throughout in place of REG_PARM_STACK_SPACE.
804 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
805 "incoming" param. Pass to rs6000_function_parms_need_stack.
806 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
807 prototype_p when incoming. Use function decl when incoming
808 to handle K&R style functions.
809 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
810 (INCOMING_REG_PARM_STACK_SPACE): Define.
812 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
815 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
818 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
819 iterators, VSX_D that handles 64-bit types, and VSX_LE that
820 handles swapping the two 64-bit double words on little endian
821 systems. Include V1TImode and optionally TImode in VSX_LE so that
822 these types are properly swapped. Change all of the insns and
823 splits that do the 64-bit swaps to use VSX_LE.
824 (vsx_le_perm_load_<mode>): Likewise.
825 (vsx_le_perm_store_<mode>): Likewise.
826 (splitters for little endian memory operations): Likewise.
827 (vsx_xxpermdi2_le_<mode>): Likewise.
828 (vsx_lxvd2x2_le_<mode>): Likewise.
829 (vsx_stxvd2x2_le_<mode>): Likewise.
831 2014-06-05 Martin Jambor <mjambor@suse.cz>
834 * ipa-cp.c (determine_versionability): Pretend that tm_clones are
837 2014-06-04 Richard Biener <rguenther@suse.de>
839 PR tree-optimization/61383
840 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
843 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
845 Backport from mainline
846 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
848 PR rtl-optimization/60866
849 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
850 Default it to -1. Pass it down to init_simplejump_data.
851 (init_simplejump_data): New parameter old_seqno. Pass it down
852 to get_seqno_for_a_jump.
853 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
854 initializing new jump seqno as a last resort. Add comment.
855 (sel_redirect_edge_and_branch): Save old seqno of the conditional
856 jump and pass it down to sel_init_new_insn.
857 (sel_redirect_edge_and_branch_force): Likewise.
859 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
861 Backport from mainline
862 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
864 PR rtl-optimization/60901
865 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
866 bb predecessor belongs to the same scheduling region. Adjust comment.
868 2014-06-03 Uros Bizjak <ubizjak@gmail.com>
870 Backport from mainline
871 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
874 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
875 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
877 2014-05-28 Guozhi Wei <carrot@google.com>
880 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
882 (vqdmulhq_n_s16): Likewise.
884 2014-05-28 Eric Botcazou <ebotcazou@adacore.com>
886 Backport from mainline
887 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
889 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
890 predicate to detect a negative quotient.
892 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
895 * doc/extend.texi (Local Labels): Note that label differences are
896 not supported for AVR.
898 2014-05-26 Michael Tautschnig <mt@debian.org>
901 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
902 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
904 2014-05-23 Alan Modra <amodra@gmail.com>
907 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
908 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
909 Use "Y" constraint rather than "m".
911 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
913 Backport from mainline
914 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
916 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
918 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
921 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
923 2013-05-22 Richard Biener <rguenther@suse.de>
925 * BASE-VER: Set to 4.8.4.
926 * DEV-PHASE: Set to prerelease.
928 2014-05-22 Release Manager
930 * GCC 4.8.3 released.
932 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
934 Backport from mainline
935 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
938 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
939 (__TM_simple_begin): Use it.
940 (__TM_begin): Likewise.
942 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
944 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
946 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
947 * config/sparc/sparc.md (fptype_ut699): New attribute.
948 (in_branch_delay): Return false if -mfix-ut699 is specified and
949 fptype_ut699 is set to single.
950 (truncdfsf2): Add fptype_ut699 attribute.
951 (fix_truncdfsi2): Likewise.
952 (floatsisf2): Change fptype attribute.
953 (fix_truncsfsi2): Likewise.
954 (negtf2_notv9): Delete.
955 (negtf2_v9): Likewise.
956 (negtf2_hq): New instruction.
957 (negtf2): New instruction and splitter.
958 (negdf2_notv9): Rewrite.
959 (abstf2_notv9): Delete.
960 (abstf2_hq_v9): Likewise.
961 (abstf2_v9): Likewise.
962 (abstf2_hq): New instruction.
963 (abstf2): New instruction and splitter.
964 (absdf2_notv9): Rewrite.
966 2014-05-14 Matthias Klose <doko@ubuntu.com>
969 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
970 Matthias Klose <doko@ubuntu.com>
973 * optc-gen.awk: Fix option handling for -Wunused-parameter.
975 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
977 * doc/sourcebuild.texi: (dfp_hw): Document.
978 (p8vector_hw): Likewise.
979 (powerpc_eabi_ok): Likewise.
980 (powerpc_elfv2): Likewise.
981 (powerpc_htm_ok): Likewise.
982 (ppc_recip_hw): Likewise.
985 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
987 Backport from mainline
988 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
991 * config/avr/avr.c (avr_out_store_psi): Use correct constant
994 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
996 Backport from 2014-05-09 trunk r210267
999 * config/avr/avr.md (cc): Add new attribute set_vzn.
1000 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
1001 Set cc insn attribute to set_vzn instead of set_zn for alternatives
1002 with INC, DEC or NEG.
1003 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
1004 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
1005 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
1007 2014-05-09 Richard Sandiford <rdsandiford@googlemail.com>
1009 * builtins.c (expand_builtin_setjmp_receiver): Emit a use of
1010 the hard frame pointer. Synchronize commentary with mainline.
1011 * cse.c (cse_insn): Only check for volatile asms.
1012 * cselib.c (cselib_process_insn): Likewise.
1013 * dse.c (scan_insn): Likewise.
1014 * stmt.c (expand_nl_goto_receiver): Emit a use and a clobber of
1015 the hard frame pointer.
1017 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
1018 Matthias Klose <doko@ubuntu.com>
1021 * optc-gen.awk: Fix option handling for -Wunused-parameter.
1023 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
1026 * config/i386/i386.c (ix86_option_override_internal): Remove PTA_RTM
1029 2014-05-08 Charles Baylis <charles.baylis@linaro.org>
1031 Backport from mainline
1032 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
1035 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
1036 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
1039 2014-05-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1041 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
1042 Do not define target_cpu_default2 to generic.
1044 2014-05-06 Richard Biener <rguenther@suse.de>
1046 Backport from mainline
1047 2014-04-14 Richard Biener <rguenther@suse.de>
1050 * fold-const.c (negate_expr_p): Don't negate directional rounding
1052 (fold_negate_expr): Likewise.
1054 2014-05-06 Richard Biener <rguenther@suse.de>
1056 Backport from mainline
1057 2014-04-17 Richard Biener <rguenther@suse.de>
1060 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
1061 boolean results for comparisons.
1063 2014-04-07 Richard Biener <rguenther@suse.de>
1065 PR tree-optimization/60766
1066 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an
1068 (may_eliminate_iv): Convert cand_value_at result to desired
1071 2014-04-23 Richard Biener <rguenther@suse.de>
1073 PR tree-optimization/60903
1074 * tree-ssa-loop-im.c (execute_sm_if_changed): Properly apply
1075 IRREDUCIBLE_LOOP loop flags to newly created BBs and edges.
1077 2014-05-05 Richard Biener <rguenther@suse.de>
1079 Backport from mainline
1080 2014-04-23 Richard Biener <rguenther@suse.de>
1083 * tree-inline.c (declare_return_variable): Use mark_addressable.
1085 2014-04-07 Richard Biener <rguenther@suse.de>
1088 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
1090 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
1092 2014-04-14 Richard Biener <rguenther@suse.de>
1094 PR tree-optimization/59817
1095 PR tree-optimization/60453
1096 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
1097 recursion to catch all CHRECs in the scalar evolution and restrict
1098 the predicate for the remains appropriately.
1100 2014-04-17 Richard Biener <rguenther@suse.de>
1102 PR tree-optimization/60836
1103 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
1104 initial PHI args to be gimple values.
1106 2014-05-05 Jakub Jelinek <jakub@redhat.com>
1108 Backported from mainline
1109 2014-04-25 Jakub Jelinek <jakub@redhat.com>
1111 PR tree-optimization/60960
1112 * tree-vect-generic.c (expand_vector_operation): Only call
1113 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
1115 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
1117 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
1118 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
1119 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
1120 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
1121 Use RS6000_BTM_HARD_FLOAT.
1122 (BU_MISC_2): Likewise.
1123 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
1124 RS6000_BTM_HARD_FLOAT.
1125 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
1127 (rs6000_invalid_builtin): Add hard floating builtin support.
1128 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
1129 hard float builtins.
1130 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
1132 2014-05-03 Joey Ye <joey.ye@arm.com>
1134 Backport from mainline r209463
1135 2014-04-17 Joey Ye <joey.ye@arm.com>
1137 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
1139 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
1141 Back port from mainline
1143 * config/sh/sh.c: Include stdlib headers before everything else.
1145 2014-05-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1147 PR tree-optimization/60930
1148 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
1149 creating a multiply candidate by folding two constant
1150 multiplicands when the result overflows.
1152 2014-05-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1154 * config/aarch64/aarch64.h (TARGET_SIMD): Take AARCH64_ISA_SIMD
1156 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
1158 2014-04-30 Michael Meissner <meissner@linux.vnet.ibm.com>
1160 Back port from mainline
1161 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
1163 * doc/extend.texi (PowerPC Built-in Functions): Document new
1164 powerpc extended divide, bcd, pack/unpack 128-bit, builtin
1166 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
1168 * config/rs6000/predicates.md (const_0_to_3_operand): New
1169 predicate to match 0..3 integer constants.
1171 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
1172 to support adding miscellaneous builtin functions.
1173 (BU_DFP_MISC_2): Likewise.
1174 (BU_P7_MISC_1): Likewise.
1175 (BU_P7_MISC_2): Likewise.
1176 (BU_P8V_MISC_3): Likewise.
1177 (BU_MISC_1): Likewise.
1178 (BU_MISC_2): Likewise.
1179 (DIVWE): Add extended divide builtin functions.
1182 (DIVWEUO): Likewise.
1186 (DIVDEUO): Likewise.
1187 (DXEX): Add decimal floating-point builtin functions.
1190 (DDEDPDQ): Likewise.
1192 (DENBCDQ): Likewise.
1199 (CDTBCD): Add new BCD builtin functions.
1203 (BCDADD_LT): Likewise.
1204 (BCDADD_EQ): Likewise.
1205 (BCDADD_GT): Likewise.
1206 (BCDADD_OV): Likewise.
1208 (BCDSUB_LT): Likewise.
1209 (BCDSUB_EQ): Likewise.
1210 (BCDSUB_GT): Likewise.
1211 (BCDSUB_OV): Likewise.
1212 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
1213 (UNPACK_TD): Likewise.
1214 (PACK_TF): Likewise.
1215 (UNPACK_TF): Likewise.
1216 (UNPACK_TF_0): Likewise.
1217 (UNPACK_TF_1): Likewise.
1218 (PACK_V1TI): Likewise.
1219 (UNPACK_V1TI): Likewise.
1221 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
1222 support for decimal floating point builtin functions.
1223 (rs6000_expand_ternop_builtin): Add checks for the new builtin
1224 functions that take constant arguments.
1225 (rs6000_invalid_builtin): Add decimal floating point builtin
1227 (rs6000_init_builtins): Setup long double, _Decimal64, and
1228 _Decimal128 types for new builtin functions.
1229 (builtin_function_type): Set the unsigned flags appropriately for
1230 the new builtin functions.
1231 (rs6000_opt_masks): Add support for decimal floating point builtin
1234 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
1235 floating point builtin functions.
1236 (RS6000_BTM_COMMON): Likewise.
1237 (RS6000_BTI_long_double): Likewise.
1238 (RS6000_BTI_dfloat64): Likewise.
1239 (RS6000_BTI_dfloat128): Likewise.
1240 (long_double_type_internal_node): Likewise.
1241 (dfloat64_type_internal_node): Likewise.
1242 (dfloat128_type_internal_node): Likewise.
1244 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
1245 2.07 bcd arithmetic instructions.
1246 (UNSPEC_BCDSUB): Likewise.
1247 (UNSPEC_BCD_OVERFLOW): Likewise.
1248 (UNSPEC_BCD_ADD_SUB): Likewise.
1249 (bcd_add_sub): Likewise.
1250 (BCD_TEST): Likewise.
1251 (bcd<bcd_add_sub>): Likewise.
1252 (bcd<bcd_add_sub>_test): Likewise.
1253 (bcd<bcd_add_sub>_test2): Likewise.
1254 (bcd<bcd_add_sub>_<code>): Likewise.
1255 (peephole2 for combined bcd ops): Likewise.
1257 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
1258 decimal floating point builtin functions.
1259 (UNSPEC_DENBCD): Likewise.
1260 (UNSPEC_DXEX): Likewise.
1261 (UNSPEC_DIEX): Likewise.
1262 (UNSPEC_DSCLI): Likewise.
1263 (UNSPEC_DSCRI): Likewise.
1264 (D64_D128): Likewise.
1265 (dfp_suffix): Likewise.
1266 (dfp_ddedpd_<mode>): Likewise.
1267 (dfp_denbcd_<mode>): Likewise.
1268 (dfp_dxex_<mode>): Likewise.
1269 (dfp_diex_<mode>): Likewise.
1270 (dfp_dscli_<mode>): Likewise.
1271 (dfp_dscri_<mode>): Likewise.
1273 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
1275 (UNSPEC_CDTBCD): Likewise.
1276 (UNSPEC_CBCDTD): Likewise.
1277 (UNSPEC_DIVE): Add support for new extended divide builtin
1279 (UNSPEC_DIVEO): Likewise.
1280 (UNSPEC_DIVEU): Likewise.
1281 (UNSPEC_DIVEUO): Likewise.
1282 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
1283 pack/unpack 128-bit types.
1284 (UNSPEC_PACK_128BIT): Likewise.
1285 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
1286 (udiv<mode>3): Use idiv_ldiv mode attribute.
1287 (div<mode>3): Likewise.
1288 (addg6s): Add new BCD builtin functions.
1291 (UNSPEC_DIV_EXTEND): Add support for new extended divide
1293 (div_extend): Likewise.
1294 (div<div_extend>_<mode>"): Likewise.
1295 (FP128_64): Add support for new builtin functions to pack/unpack
1297 (unpack<mode>): Likewise.
1298 (unpacktf_0): Likewise.
1299 (unpacktf_1): Likewise.
1300 (unpack<mode>_dm): Likewise.
1301 (unpack<mode>_nodm): Likewise.
1302 (pack<mode>): Likewise.
1303 (unpackv1ti): Likewise.
1304 (packv1ti): Likewise.
1306 2014-04-29 Pat Haugen <pthaugen@us.ibm.com>
1308 Backport from mainline
1309 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
1311 * config/rs6000/rs6000.md (addti3, subti3): New.
1313 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
1315 Backport from mainline
1316 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
1318 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
1319 (loadsync_<mode>): Change mode.
1320 (load_quadpti, store_quadpti): New.
1321 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
1322 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
1324 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
1326 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
1327 * configure: Regenerate.
1328 * config/sparc/sparc.opt (muser-mode): New option.
1329 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
1331 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
1332 * doc/invoke.texi (SPARC options): Document -muser-mode.
1334 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
1337 * config/sparc/sparc.md (ashlsi3_extend): Delete.
1339 2014-04-22 Michael Meissner <meissner@linux.vnet.ibm.com>
1341 Back port from main line:
1342 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
1344 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
1347 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1350 * config/rs6000/altivec.md (UNSPEC_VBPERMQ): Add support for the
1351 vbpermq instruction.
1352 (altivec_vbpermq): Likewise.
1355 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
1356 enable use of xxsldwi and xxpermdi builtin functions.
1357 (vec_xxpermdi): Likewise.
1359 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
1360 Document use of vec_xxsldwi and vec_xxpermdi builtins.
1362 2014-04-23 Uros Bizjak <ubizjak@gmail.com>
1364 Backport from mainline
1365 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
1368 * config/i386/i386.c (ix86_expand_builtin)
1369 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
1370 register for target RTX.
1371 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
1373 2014-04-23 Richard Biener <rguenther@suse.de>
1375 Backport from mainline
1376 2014-04-02 Richard Biener <rguenther@suse.de>
1379 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
1380 MODE_INTs. Properly use negv_optab.
1381 (expand_abs): Likewise.
1383 2014-04-03 Richard Biener <rguenther@suse.de>
1385 PR tree-optimization/60740
1386 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
1387 over all GIMPLE_COND operands.
1389 2014-04-23 Richard Biener <rguenther@suse.de>
1392 * gimplify.c (gimple_regimplify_operands): Update the
1395 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1397 Back port from the trunk, subversion id 209546.
1399 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1402 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
1403 If mode is DDmode and TARGET_E500_DOUBLE allow move.
1405 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
1406 more debug information for E500 if -mdebug=reg.
1408 2014-04-18 Richard Henderson <rth@redhat.com>
1410 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
1411 to GET_MODE_SIZE, not a reg_class_t.
1413 2014-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1415 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
1417 (vsx_xxmrglw_<mode>): Likewise.
1419 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1422 Revert the following patch
1424 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1426 Back port mainline subversion id 209025.
1427 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
1430 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
1431 software floating point or no floating point registers, do not
1432 allow any type in the FPRs. Eliminate a test for SPE SIMD types
1433 in GPRs that occurs after we tested for GPRs that would never be
1436 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
1437 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
1438 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
1439 specifically allow DDmode, since that does not use the SPE SIMD
1442 2014-04-10 Vladimir Makarov <vmakarov@redhat.com>
1444 PR rtl-optimization/60769
1445 * lra-constraints.c (simplify_operand_subreg): Force reload of
1446 paradoxical subreg if it is not in the class contents.
1448 2014-04-10 Jakub Jelinek <jakub@redhat.com>
1450 Backport from mainline
1451 2014-03-12 Jakub Jelinek <jakub@redhat.com>
1452 Marc Glisse <marc.glisse@inria.fr>
1454 PR tree-optimization/60502
1455 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
1456 instead of build_low_bits_mask.
1458 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
1460 * tree.c (build_all_ones_cst): New function.
1461 * tree.h (build_all_ones_cst): Declare it.
1463 2013-05-10 Marc Glisse <marc.glisse@inria.fr>
1465 * tree.c (build_minus_one_cst): New function.
1466 * tree.h (build_minus_one_cst): Declare new function.
1468 2014-04-10 Jakub Jelinek <jakub@redhat.com>
1470 Backport from mainline
1471 2014-03-28 Jakub Jelinek <jakub@redhat.com>
1474 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
1475 also if addr has VOIDmode.
1477 2014-03-17 Jakub Jelinek <jakub@redhat.com>
1480 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
1481 note creation for the 2010-08-31 changes.
1483 2014-03-06 Jakub Jelinek <jakub@redhat.com>
1484 Meador Inge <meadori@codesourcery.com>
1487 * config/arm/arm.c (arm_tls_symbol_p): Remove.
1488 (arm_legitimize_address): Call legitimize_tls_address for any
1489 arm_tls_referenced_p expression, handle constant addend. Call it
1490 before testing for !TARGET_ARM.
1491 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
1493 2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1495 Backport from mainline r208750
1496 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1498 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
1499 pattern for vector nor instead of subtract from splat(-1).
1500 (altivec_expand_vec_perm_const_le): Likewise.
1502 Backport from mainline r209235
1503 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1505 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
1506 instead of vnor to exploit possible fusion opportunity in the
1508 (altivec_expand_vec_perm_const_le): Likewise.
1510 2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1512 Revert following patch
1513 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
1515 Backport from mainline
1516 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
1518 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
1519 (loadsync_<mode>): Change mode.
1520 (load_quadpti, store_quadpti): New.
1521 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
1522 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
1524 2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1526 Backport from mainline r202642
1527 2013-09-17 Alan Modra <amodra@gmail.com>
1530 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
1533 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
1535 Backport from mainline
1536 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
1538 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
1539 (loadsync_<mode>): Change mode.
1540 (load_quadpti, store_quadpti): New.
1541 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
1542 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
1544 2014-04-07 Martin Jambor <mjambor@suse.cz>
1547 * ipa-cp.c (propagate_constants_accross_call): Do not propagate
1550 2014-04-07 Dominique d'Humieres <dominiq@lps.ens.fr>
1552 Backport from mainline
1553 2013-09-14 Iain Sandoe <iains@gcc.gnu.org>
1556 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata
1558 (darwin_objc1_section): Likewise.
1559 (darwin_file_end): Emit Image Info section when required.
1561 2014-04-05 Alan Modra <amodra@gmail.com>
1564 2014-01-28 Alan Modra <amodra@gmail.com>
1565 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
1566 * configure.ac <recursive call for build != host>: Define
1567 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
1568 and LD_FOR_BUILD too.
1569 * configure: Regenerate.
1571 2014-04-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1573 Backport from mainline r208895:
1574 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1576 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
1577 if it would clobber the stack pointer, even temporarily.
1579 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1581 Back port from main line:
1582 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
1584 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
1587 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1589 Back port mainline subversion id 209025.
1590 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
1593 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
1594 software floating point or no floating point registers, do not
1595 allow any type in the FPRs. Eliminate a test for SPE SIMD types
1596 in GPRs that occurs after we tested for GPRs that would never be
1599 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
1600 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
1601 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
1602 specifically allow DDmode, since that does not use the SPE SIMD
1605 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1607 Backport from mainline r205308
1608 2013-11-23 David Edelsohn <dje.gcc@gmail.com>
1610 * config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro.
1611 (rs6000_xcoff_select_section): Place decls with stricter alignment
1612 into named sections.
1613 (rs6000_xcoff_unique_section): Allow unique sections for
1614 uninitialized data with strict alignment.
1616 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1618 Backport from mainline
1619 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1621 * gcc/configure: Regenerate.
1623 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1625 Back port from trunk
1626 2013-04-25 Alan Modra <amodra@gmail.com>
1629 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
1630 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
1631 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
1632 Repeat for many other rotate/shift and mask patterns using subregs.
1633 Name lshiftrt insns.
1634 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
1635 on WORDS_BIG_ENDIAN.
1637 2013-06-07 Alan Modra <amodra@gmail.com>
1639 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1640 override user -mfp-in-toc.
1641 (offsettable_ok_by_alignment): Consider just the current access
1642 rather than the whole object, unless BLKmode. Handle
1643 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
1644 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
1645 for -mcmodel=medium.
1646 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
1647 override user -mfp-in-toc or -msum-in-toc. Default to
1648 -mno-fp-in-toc for -mcmodel=medium.
1650 2013-06-18 Alan Modra <amodra@gmail.com>
1652 * config/rs6000/rs6000.h (enum data_align): New.
1653 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
1654 (DATA_ABI_ALIGNMENT): Define.
1655 (CONSTANT_ALIGNMENT): Correct comment.
1656 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
1657 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
1659 2013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1661 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
1662 Require GOT register as additional operand in UNSPEC.
1663 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
1664 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
1665 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
1666 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
1667 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
1668 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
1669 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
1671 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
1673 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1674 force flag_ira_loop_pressure if set via command line.
1676 2014-02-06 Alan Modra <amodra@gmail.com>
1679 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
1680 change SDmode to DDmode when lra_in_progress.
1682 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1685 Back port from trunk
1686 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1688 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
1692 (VEC_base): Likewise.
1693 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
1694 registers, we need to swap double words in little endian mode.
1696 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
1697 to be a container mode for 128-bit integer operations added in ISA
1698 2.07. Unlike TImode and PTImode, the preferred register set is
1699 the Altivec/VMX registers for the 128-bit operations.
1701 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
1703 (rs6000_split_128bit_ok_p): Likewise.
1705 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
1706 macros for creating ISA 2.07 normal and overloaded builtin
1707 functions with 3 arguments.
1708 (BU_P8V_OVERLOAD_3): Likewise.
1709 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
1710 for use as overloaded functions.
1711 (VPERM_1TI_UNS): Likewise.
1712 (VSEL_1TI): Likewise.
1713 (VSEL_1TI_UNS): Likewise.
1714 (ST_INTERNAL_1ti): Likewise.
1715 (LD_INTERNAL_1ti): Likewise.
1716 (XXSEL_1TI): Likewise.
1717 (XXSEL_1TI_UNS): Likewise.
1718 (VPERM_1TI): Likewise.
1719 (VPERM_1TI_UNS): Likewise.
1720 (XXPERMDI_1TI): Likewise.
1721 (SET_1TI): Likewise.
1722 (LXVD2X_V1TI): Likewise.
1723 (STXVD2X_V1TI): Likewise.
1724 (VEC_INIT_V1TI): Likewise.
1725 (VEC_SET_V1TI): Likewise.
1726 (VEC_EXT_V1TI): Likewise.
1727 (EQV_V1TI): Likewise.
1728 (NAND_V1TI): Likewise.
1729 (ORC_V1TI): Likewise.
1730 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
1731 added in ISA 2.07. Add both normal 'altivec' builtins, and the
1733 (VADDUQM): Likewise.
1734 (VSUBCUQ): Likewise.
1735 (VADDEUQM): Likewise.
1736 (VADDECUQ): Likewise.
1737 (VSUBEUQM): Likewise.
1738 (VSUBECUQ): Likewise.
1740 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
1741 __int128_t and __uint128_t types.
1742 (__uint128_type): Likewise.
1743 (altivec_categorize_keyword): Add support for vector __int128_t,
1744 vector __uint128_t, vector __int128, and vector unsigned __int128
1745 as a container type for TImode operations that need to be done in
1746 VSX/Altivec registers.
1747 (rs6000_macro_to_expand): Likewise.
1748 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
1749 to support 128-bit integer instructions vaddcuq, vadduqm,
1750 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
1751 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
1753 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
1754 for V1TImode, and set up preferences to use VSX/Altivec
1755 registers. Setup VSX reload handlers.
1756 (rs6000_debug_reg_global): Likewise.
1757 (rs6000_init_hard_regno_mode_ok): Likewise.
1758 (rs6000_preferred_simd_mode): Likewise.
1759 (vspltis_constant): Do not allow V1TImode as easy altivec
1761 (easy_altivec_constant): Likewise.
1762 (output_vec_const_move): Likewise.
1763 (rs6000_expand_vector_set): Convert V1TImode set and extract to
1765 (rs6000_expand_vector_extract): Likewise.
1766 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
1768 (rs6000_const_vec): Add support for V1TImode.
1769 (rs6000_emit_le_vsx_load): Swap double words when loading or
1770 storing TImode/V1TImode.
1771 (rs6000_emit_le_vsx_store): Likewise.
1772 (rs6000_emit_le_vsx_move): Likewise.
1773 (rs6000_emit_move): Add support for V1TImode.
1774 (altivec_expand_ld_builtin): Likewise.
1775 (altivec_expand_st_builtin): Likewise.
1776 (altivec_expand_vec_init_builtin): Likewise.
1777 (altivec_expand_builtin): Likewise.
1778 (rs6000_init_builtins): Add support for V1TImode type. Add
1779 support for ISA 2.07 128-bit integer builtins. Define type names
1780 for the VSX/Altivec vector types.
1781 (altivec_init_builtins): Add support for overloaded vector
1782 functions with V1TImode type.
1783 (rs6000_preferred_reload_class): Prefer Altivec registers for
1785 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
1787 (rs6000_split_128bit_ok_p): Likewise.
1788 (rs6000_handle_altivec_attribute): Create V1TImode from vector
1789 __int128_t and vector __uint128_t.
1791 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
1792 and mode attributes.
1799 (VS_scalar): Likewise.
1800 (VS_double): Likewise.
1801 (vsx_set_v1ti): New builtin function to create V1TImode from
1804 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say
1805 whether we support the ISA 2.07 128-bit integer arithmetic
1807 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
1808 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
1809 and TImode types for use with the builtin functions.
1810 (V1TI_type_node): Likewise.
1811 (unsigned_V1TI_type_node): Likewise.
1812 (intTI_type_internal_node): Likewise.
1813 (uintTI_type_internal_node): Likewise.
1815 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA
1816 2.07 128-bit builtin functions.
1817 (UNSPEC_VADDEUQM): Likewise.
1818 (UNSPEC_VADDECUQ): Likewise.
1819 (UNSPEC_VSUBCUQ): Likewise.
1820 (UNSPEC_VSUBEUQM): Likewise.
1821 (UNSPEC_VSUBECUQ): Likewise.
1822 (VM): Add V1TImode to vector mode iterators.
1824 (VI_unit): Likewise.
1825 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
1826 (altivec_vaddcuq): Likewise.
1827 (altivec_vsubuqm): Likewise.
1828 (altivec_vsubcuq): Likewise.
1829 (altivec_vaddeuqm): Likewise.
1830 (altivec_vaddecuq): Likewise.
1831 (altivec_vsubeuqm): Likewise.
1832 (altivec_vsubecuq): Likewise.
1834 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
1836 (BOOL_128): Likewise.
1837 (BOOL_REGS_OUTPUT): Likewise.
1838 (BOOL_REGS_OP1): Likewise.
1839 (BOOL_REGS_OP2): Likewise.
1840 (BOOL_REGS_UNARY): Likewise.
1841 (BOOL_REGS_AND_CR0): Likewise.
1843 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
1844 128-bit integer builtin support.
1845 (vec_vadduqm): Likewise.
1846 (vec_vaddecuq): Likewise.
1847 (vec_vaddeuqm): Likewise.
1848 (vec_vsubecuq): Likewise.
1849 (vec_vsubeuqm): Likewise.
1850 (vec_vsubcuq): Likewise.
1851 (vec_vsubuqm): Likewise.
1853 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
1854 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
1855 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
1856 128-bit integer add/subtract to ISA 2.07.
1858 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1860 Apply mainline r207798
1861 2014-02-26 Alan Modra <amodra@gmail.com>
1864 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
1865 find_replacement on parts of insn rtl that might be reloaded.
1867 Backport from mainline r208287
1868 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1870 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
1871 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
1872 constraint on constants to permit them being loaded into
1873 GENERAL_REGS or BASE_REGS.
1875 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1877 Backport from mainline r207699.
1878 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1881 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
1882 for VSX/Altivec vectors that land in GPR registers.
1884 Backport from mainline r207808.
1885 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
1888 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
1889 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
1890 into 64-bit and 32-bit moves. On 64-bit moves, add support for
1891 using direct move instructions on ISA 2.07. Also adjust
1892 instruction length for 64-bit.
1893 (mov<mode>_64bit, TFmode/TDmode): Likewise.
1894 (mov<mode>_32bit, TFmode/TDmode): Likewise.
1896 Backport from mainline r207868.
1897 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1900 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
1901 Split 64-bit moves into 2 patterns. Do not allow the use of
1902 direct move for TDmode in little endian, since the decimal value
1903 has little endian bytes within a word, but the 64-bit pieces are
1904 ordered in a big endian fashion, and normal subreg's of TDmode are
1906 (mov<mode>_64bit_dm): Likewise.
1907 (movtd_64bit_nodm): Likewise.
1909 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1911 Backport from mainline r207658
1912 2014-02-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1914 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
1915 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
1916 -mcall-openbsd, or -mcall-linux.
1917 (CC1_ENDIAN_BIG_SPEC): Remove.
1918 (CC1_ENDIAN_LITTLE_SPEC): Remove.
1919 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
1920 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
1921 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
1922 and %cc1_endian_default.
1923 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
1925 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1927 Little Endian Vector API Support
1928 Backport from mainline r206443
1929 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1931 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
1932 two duplicate entries.
1934 Backport from mainline r206494
1935 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1937 * doc/invoke.texi: Add -maltivec={be,le} options, and document
1938 default element-order behavior for -maltivec.
1939 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
1940 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
1941 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
1942 when targeting big endian, at least for now.
1943 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
1945 Backport from mainline r206541
1946 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1948 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
1950 Backport from mainline r206590
1951 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1953 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1954 Implement -maltivec=be for vec_insert and vec_extract.
1956 Backport from mainline r206641
1957 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
1959 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
1960 and vmulosh rather than call gen_vec_widen_smult_*.
1961 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
1962 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
1963 (vec_widen_smult_even_v16qi): Likewise.
1964 (vec_widen_umult_even_v8hi): Likewise.
1965 (vec_widen_smult_even_v8hi): Likewise.
1966 (vec_widen_umult_odd_v16qi): Likewise.
1967 (vec_widen_smult_odd_v16qi): Likewise.
1968 (vec_widen_umult_odd_v8hi): Likewise.
1969 (vec_widen_smult_odd_v8hi): Likewise.
1970 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
1971 vmuloub rather than call gen_vec_widen_umult_*.
1972 (vec_widen_umult_lo_v16qi): Likewise.
1973 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
1974 vmulosb rather than call gen_vec_widen_smult_*.
1975 (vec_widen_smult_lo_v16qi): Likewise.
1976 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
1977 rather than call gen_vec_widen_umult_*.
1978 (vec_widen_umult_lo_v8hi): Likewise.
1979 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
1980 rather than call gen_vec_widen_smult_*.
1981 (vec_widen_smult_lo_v8hi): Likewise.
1983 Backport from mainline r207062
1984 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1986 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
1987 correction for little endian...
1988 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
1991 Backport from mainline r207262
1992 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1994 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
1995 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
1996 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
1997 -maltivec=be with LE targets.
1998 (vsx_mergeh_<mode>): Likewise.
1999 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New
2001 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
2002 (altivec_vmrghb): Replace with define_expand and new
2003 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE
2005 (altivec_vmrghb_direct): New define_insn.
2006 (altivec_vmrghh): Replace with define_expand and new
2007 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE
2009 (altivec_vmrghh_direct): New define_insn.
2010 (altivec_vmrghw): Replace with define_expand and new
2011 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE
2013 (altivec_vmrghw_direct): New define_insn.
2014 (*altivec_vmrghsf): Adjust for endianness.
2015 (altivec_vmrglb): Replace with define_expand and new
2016 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE
2018 (altivec_vmrglb_direct): New define_insn.
2019 (altivec_vmrglh): Replace with define_expand and new
2020 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE
2022 (altivec_vmrglh_direct): New define_insn.
2023 (altivec_vmrglw): Replace with define_expand and new
2024 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE
2026 (altivec_vmrglw_direct): New define_insn.
2027 (*altivec_vmrglsf): Adjust for endianness.
2028 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
2029 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
2030 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
2031 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
2032 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
2033 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
2034 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
2035 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
2037 Backport from mainline r207318
2038 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2040 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
2041 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
2042 remove element index adjustment for endian (now handled in vsx.md
2044 (altivec_expand_vec_perm_const): Use
2045 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
2046 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
2047 (vsx_xxspltw_<mode>): Adjust element index for little endian.
2048 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
2049 define_expand and a new define_insn *altivec_vspltb_internal;
2050 adjust for -maltivec=be on a little endian target.
2051 (altivec_vspltb_direct): New.
2052 (altivec_vsplth): Divide into a define_expand and a new
2053 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
2054 little endian target.
2055 (altivec_vsplth_direct): New.
2056 (altivec_vspltw): Divide into a define_expand and a new
2057 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
2058 little endian target.
2059 (altivec_vspltw_direct): New.
2060 (altivec_vspltsf): Divide into a define_expand and a new
2061 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
2062 a little endian target.
2064 Backport from mainline r207326
2065 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2067 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
2068 unused variable "field".
2069 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
2070 (vsx_mergeh_<mode>): Likewise.
2071 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
2072 (altivec_vmrghh): Likewise.
2073 (altivec_vmrghw): Likewise.
2074 (altivec_vmrglb): Likewise.
2075 (altivec_vmrglh): Likewise.
2076 (altivec_vmrglw): Likewise.
2077 (altivec_vspltb): Add missing uses.
2078 (altivec_vsplth): Likewise.
2079 (altivec_vspltw): Likewise.
2080 (altivec_vspltsf): Likewise.
2082 Backport from mainline r207414
2083 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2085 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
2086 (altivec_vsumsws): Add handling for -maltivec=be with a little
2088 (altivec_vsumsws_direct): New.
2089 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
2090 gen_altivec_vsumsws.
2092 Backport from mainline r207415
2093 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2095 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
2096 for vector types other than V16QImode.
2097 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
2098 define_expand, and call altivec_expand_vec_perm_le when producing
2099 code with little endian element order.
2100 (*altivec_vperm_<mode>_internal): New insn having previous
2101 behavior of altivec_vperm_<mode>.
2102 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
2103 altivec_expand_vec_perm_le when producing code with little endian
2105 (*altivec_vperm_<mode>_uns_internal): New insn having previous
2106 behavior of altivec_vperm_<mode>_uns.
2108 Backport from mainline r207520
2109 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2111 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
2112 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
2113 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
2114 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
2115 gen_altivec_vpkuwum.
2116 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
2118 (altivec_vpks<VI_char>ss): Likewise.
2119 (altivec_vpks<VI_char>us): Likewise.
2120 (altivec_vpku<VI_char>us): Likewise.
2121 (altivec_vpku<VI_char>um): Likewise.
2122 (altivec_vpku<VI_char>um_direct): New (copy of
2123 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
2125 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
2126 target is little endian and -maltivec=be is not specified.
2127 (*altivec_vupkhs<VU_char>_direct): New (copy of
2128 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal
2130 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
2131 target is little endian and -maltivec=be is not specified.
2132 (*altivec_vupkls<VU_char>_direct): New (copy of
2133 altivec_vupkls<VU_char> that always emits vupkls*, for internal
2135 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
2136 little endian and -maltivec=be is not specified.
2137 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
2138 little endian and -maltivec=be is not specified.
2140 Backport from mainline r207521
2141 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2143 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
2144 generation for -maltivec=be.
2145 (altivec_vsumsws): Simplify redundant test.
2147 Backport from mainline r207525
2148 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2150 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
2151 CODE_FOR_altivec_vpku[hw]um to
2152 CODE_FOR_altivec_vpku[hw]um_direct.
2153 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
2154 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
2155 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
2156 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
2158 Backport from mainline r207814.
2159 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2161 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
2164 Backport from mainline r207815.
2165 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2167 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian
2169 (p8_vmrgow): Likewise.
2171 Backport from mainline r207919.
2172 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2174 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
2177 Backport from mainline 208019
2178 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2180 * config/rs6000/altivec.md (altivec_lvxl): Rename as
2181 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of
2183 (altivec_lvxl_<mode>): New define_expand incorporating
2184 -maltivec=be semantics where needed.
2185 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
2186 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
2187 semantics where needed.
2188 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
2189 (altivec_stvx_<mode>): New define_expand incorporating
2190 -maltivec=be semantics where needed.
2191 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
2192 VM2 iterator instead of V4SI.
2193 (altivec_stvxl_<mode>): New define_expand incorporating
2194 -maltivec=be semantics where needed.
2195 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
2196 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
2197 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI,
2198 STVX_V2DF, STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI,
2199 STVXL_V2DF, STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI,
2201 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
2202 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
2203 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
2204 ALTIVEC_BUILTIN_STVXL.
2205 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New
2207 (altivec_expand_stvx_be): Likewise.
2208 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
2209 (altivec_expand_lvx_be): Likewise.
2210 (altivec_expand_stvx_be): Likewise.
2211 (altivec_expand_builtin): Add cases for
2212 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
2213 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
2214 (altivec_init_builtins): Add definitions for
2215 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
2216 __builtin_altivec_stvx_<mode>, and
2217 __builtin_altivec_stvxl_<mode>.
2219 Backport from mainline 208021
2220 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2222 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
2224 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
2225 gen_altivec_vsumsws.
2227 Backport from mainline 208049
2228 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2230 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
2231 define_insn with define_expand and new define_insn
2232 *altivec_lve<VI_char>x_internal.
2233 (altivec_stve<VI_char>x): Replace define_insn with define_expand
2234 and new define_insn *altivec_stve<VI_char>x_internal.
2235 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
2237 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
2239 (altivec_expand_stvex_be): New function.
2241 Backport from mainline
2242 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2243 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
2246 Backport from mainline
2247 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2248 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
2249 to use canonical form for nor<mode>3.
2251 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2253 Backport from mainline
2254 2014-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
2256 * config/rs6000/rs6000.opt (-mlra): Add switch to enable the LRA
2259 * config/rs6000/rs6000.c (TARGET_LRA_P): Add support for -mlra to
2260 enable the LRA register allocator. Back port the changes from the
2261 trunk to enable LRA.
2262 (rs6000_legitimate_offset_address_p): Likewise.
2263 (legitimate_lo_sum_address_p): Likewise.
2264 (use_toc_relative_ref): Likewise.
2265 (rs6000_legitimate_address_p): Likewise.
2266 (rs6000_emit_move): Likewise.
2267 (rs6000_secondary_memory_needed_mode): Likewise.
2268 (rs6000_alloc_sdmode_stack_slot): Likewise.
2269 (rs6000_lra_p): Likewise.
2271 * config/rs6000/sync.md (load_lockedti): Copy TI/PTI variables by
2272 64-bit parts to force the register allocator to allocate even/odd
2273 register pairs for the quad word atomic instructions.
2274 (store_conditionalti): Likewise.
2276 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2278 Back port from mainline
2279 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2282 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2283 -mquad-memory-atomic. Update -mquad-memory documentation to say
2284 it is only used for non-atomic loads/stores.
2286 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
2287 -mquad-memory or -mquad-memory-atomic switches.
2289 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
2290 -mquad-memory-atomic to ISA 2.07 support.
2292 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
2293 to separate support of normal quad word memory operations (ldq,
2294 stq) from the atomic quad word memory operations.
2296 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
2297 support to separate non-atomic quad word operations from atomic
2298 quad word operations. Disable non-atomic quad word operations in
2299 little endian mode so that we don't have to swap words after the
2300 load and before the store.
2301 (quad_load_store_p): Add comment about atomic quad word support.
2302 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
2303 options printed with -mdebug=reg.
2305 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
2306 -mquad-memory-atomic as the test for whether we have quad word
2307 atomic instructions.
2308 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic,
2309 -mquad-memory, or -mp8-vector are used, allow byte/half-word
2312 * config/rs6000/sync.md (load_lockedti): Insure that the address
2313 is a proper indexed or indirect address for the lqarx instruction.
2314 On little endian systems, swap the hi/lo registers after the lqarx
2316 (load_lockedpti): Use indexed_or_indirect_operand predicate to
2317 insure the address is valid for the lqarx instruction.
2318 (store_conditionalti): Insure that the address is a proper indexed
2319 or indirect address for the stqcrx. instruction. On little endian
2320 systems, swap the hi/lo registers before doing the stqcrx.
2322 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
2323 insure the address is valid for the stqcrx. instruction.
2325 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
2326 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
2327 type of quad memory support is available.
2329 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2331 Apply mainline r202190, powerpc64le multilibs and multiarch dir
2332 2013-09-03 Alan Modra <amodra@gmail.com>
2334 * config.gcc (powerpc*-*-linux*): Add support for little-endian
2335 multilibs to big-endian target and vice versa.
2336 * config/rs6000/t-linux64: Use := assignment on all vars.
2337 (MULTILIB_EXTRA_OPTS): Remove fPIC.
2338 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
2339 * config/rs6000/t-linux64le: New file.
2340 * config/rs6000/t-linux64bele: New file.
2341 * config/rs6000/t-linux64lebe: New file.
2343 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2345 Back port from mainline
2346 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
2349 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
2350 endian support, remove tests for WORDS_BIG_ENDIAN.
2351 (p8_mfvsrd_3_<mode>): Likewise.
2352 (reload_gpr_from_vsx<mode>): Likewise.
2353 (reload_gpr_from_vsxsf): Likewise.
2354 (p8_mfvsrd_4_disf): Likewise.
2356 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2358 Backport from mainline
2359 2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2362 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
2363 (rs6000_emit_swdiv_low_precision): Remove.
2364 (rs6000_emit_swdiv): Rewrite to handle between one and four
2365 iterations of Newton-Raphson generally; modify required number of
2366 iterations for some cases.
2367 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
2369 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2371 Backport from mainline
2372 2013-08-19 Peter Bergner <bergner@vnet.ibm.com>
2373 Jakub Jelinek <jakub@redhat.com>
2375 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
2376 (BUILT_IN_FABSD64): Likewise.
2377 (BUILT_IN_FABSD128): Likewise.
2378 * builtins.c (expand_builtin): Add support for
2379 new DFP ABS builtins.
2380 (fold_builtin_1): Likewise.
2381 * config/rs6000/dfp.md
2382 (*abstd2_fpr): Handle non-overlapping destination
2383 and source operands.
2384 (*nabstd2_fpr): Likewise.
2386 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2388 Apply mainline r205060.
2389 2013-11-20 Alan Modra <amodra@gmail.com>
2390 * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
2391 * config/rs6000/rs6000.c (rs6000_option_override_internal): Default
2392 to strict alignment on older processors when little-endian.
2393 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
2396 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2398 POWER ELFv2 ABI Support
2399 Backport from mainline r204842:
2401 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2403 * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document.
2405 Backport from mainline r204809:
2407 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2409 * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define.
2411 Backport from mainline r204808:
2413 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2414 Alan Modra <amodra@gmail.com>
2416 * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2.
2417 (RS6000_SAVE_TOC): Remove.
2418 (RS6000_TOC_SAVE_SLOT): New macro.
2419 * config/rs6000/rs6000.c (rs6000_parm_offset): New function.
2420 (rs6000_parm_start): Use it.
2421 (rs6000_function_arg_advance_1): Likewise.
2422 (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT.
2423 (rs6000_emit_epilogue): Likewise.
2424 (rs6000_call_aix): Likewise.
2425 (rs6000_output_function_prologue): Do not save/restore r11
2426 around calling _mcount for ABI_ELFv2.
2428 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2429 Alan Modra <amodra@gmail.com>
2431 * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space):
2433 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove.
2434 (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space.
2435 * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function.
2436 (rs6000_function_parms_need_stack): Likewise.
2437 (rs6000_reg_parm_stack_space): Likewise.
2438 (rs6000_function_arg): Do not replace BLKmode by Pmode when
2439 returning a register argument.
2441 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2442 Michael Gschwind <mkg@us.ibm.com>
2444 * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro.
2445 (ALTIVEC_ARG_MAX_RETURN): Likewise.
2446 (FUNCTION_VALUE_REGNO_P): Use them.
2447 * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define.
2448 (rs6000_return_in_msb): New function.
2449 (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates.
2450 Handle aggregates of up to 16 bytes for ELFv2.
2451 (rs6000_function_value): Handle ELFv2 homogeneous aggregates.
2453 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2454 Michael Gschwind <mkg@us.ibm.com>
2456 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
2457 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
2458 (rs6000_discover_homogeneous_aggregate): Likewise.
2459 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
2460 (rs6000_function_arg_advance_1): Likewise.
2461 (rs6000_function_arg): Likewise.
2462 (rs6000_arg_partial_bytes): Likewise.
2463 (rs6000_psave_function_arg): Handle BLKmode arguments.
2465 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2466 Michael Gschwind <mkg@us.ibm.com>
2468 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
2469 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
2470 (rs6000_discover_homogeneous_aggregate): Likewise.
2471 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
2472 (rs6000_function_arg_advance_1): Likewise.
2473 (rs6000_function_arg): Likewise.
2474 (rs6000_arg_partial_bytes): Likewise.
2475 (rs6000_psave_function_arg): Handle BLKmode arguments.
2477 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2479 * config/rs6000/rs6000.c (machine_function): New member
2481 (rs6000_emit_prologue): Set r2_setup_needed if necessary.
2482 (rs6000_output_mi_thunk): Set r2_setup_needed.
2483 (rs6000_output_function_prologue): Output global entry point
2484 prologue and local entry point marker if needed for ABI_ELFv2.
2485 Output -mprofile-kernel code here.
2486 (output_function_profiler): Do not output -mprofile-kernel
2487 code here; moved to rs6000_output_function_prologue.
2488 (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2.
2490 (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2.
2491 (rs6000_output_function_entry): Likewise.
2492 (rs6000_assemble_integer): Likewise.
2493 (rs6000_elf_encode_section_info): Likewise.
2494 (rs6000_elf_declare_function_name): Do not create dot symbols
2495 or .opd section for ABI_ELFv2.
2497 (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines.
2498 (rs6000_trampoline_init): Likewise.
2499 (rs6000_elf_file_end): Call file_end_indicate_exec_stack
2502 (rs6000_call_aix): Handle ELFv2 indirect calls. Do not check
2503 for function descriptors in ABI_ELFv2.
2505 * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support
2506 on ABI_AIX only, not ABI_ELFv2.
2507 ("*call_value_indirect_aix<mode>"): Likewise.
2508 ("*call_indirect_elfv2<mode>"): New pattern.
2509 ("*call_value_indirect_elfv2<mode>"): Likewise.
2511 * config/rs6000/predicates.md ("symbol_ref_operand"): Do not
2512 check for function descriptors in ABI_ELFv2.
2513 ("current_file_function_operand"): Likewise.
2515 * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]:
2517 (FUNC_NAME): Define ELFv2 variant.
2518 (JUMP_TARGET): Likewise.
2519 (FUNC_START): Likewise.
2520 (HIDDEN_FUNC): Likewise.
2521 (FUNC_END): Likeiwse.
2523 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2525 * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1
2526 and --with-abi=elfv2.
2527 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi".
2528 * config/rs6000/rs6000.opt (mabi=elfv1): New option.
2529 (mabi=elfv2): Likewise.
2530 * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2.
2531 * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI
2533 (ELFv2_ABI_CHECK): New macro.
2534 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
2535 rs6000_current_abi to ABI_AIX or ABI_ELFv2.
2536 (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version.
2537 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
2538 _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate.
2540 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2.
2541 (debug_stack_info): Likewise.
2542 (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX.
2543 (rs6000_legitimize_tls_address): Likewise.
2544 (rs6000_conditional_register_usage): Likewise.
2545 (rs6000_emit_move): Likewise.
2546 (init_cumulative_args): Likewise.
2547 (rs6000_function_arg_advance_1): Likewise.
2548 (rs6000_function_arg): Likewise.
2549 (rs6000_arg_partial_bytes): Likewise.
2550 (rs6000_output_function_entry): Likewise.
2551 (rs6000_assemble_integer): Likewise.
2552 (rs6000_savres_strategy): Likewise.
2553 (rs6000_stack_info): Likewise.
2554 (rs6000_function_ok_for_sibcall): Likewise.
2555 (rs6000_emit_load_toc_table): Likewise.
2556 (rs6000_savres_routine_name): Likewise.
2557 (ptr_regno_for_savres): Likewise.
2558 (rs6000_emit_prologue): Likewise.
2559 (rs6000_emit_epilogue): Likewise.
2560 (rs6000_output_function_epilogue): Likewise.
2561 (output_profile_hook): Likewise.
2562 (output_function_profiler): Likewise.
2563 (rs6000_trampoline_size): Likewise.
2564 (rs6000_trampoline_init): Likewise.
2565 (rs6000_elf_output_toc_section_asm_op): Likewise.
2566 (rs6000_elf_encode_section_info): Likewise.
2567 (rs6000_elf_reloc_rw_mask): Likewise.
2568 (rs6000_elf_declare_function_name): Likewise.
2569 (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX,
2570 except that rs6000_compat_align_parm is always assumed false.
2571 (rs6000_gimplify_va_arg): Likewise.
2572 (rs6000_call_aix): Update comment.
2573 (rs6000_sibcall_aix): Likewise.
2574 * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"):
2575 Treat ABI_ELFv2 the same as ABI_AIX.
2576 ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
2577 ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise.
2578 ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
2579 ("load_toc_aix_si"): Likewise.
2580 ("load_toc_aix_di"): Likewise.
2582 ("call_value"): Likewise.
2583 ("*call_local_aix<mode>"): Likewise.
2584 ("*call_value_local_aix<mode>"): Likewise.
2585 ("*call_nonlocal_aix<mode>"): Likewise.
2586 ("*call_value_nonlocal_aix<mode>"): Likewise.
2587 ("*call_indirect_aix<mode>"): Likewise.
2588 ("*call_value_indirect_aix<mode>"): Likewise.
2589 ("sibcall"): Likewise.
2590 ("sibcall_value"): Likewise.
2591 ("*sibcall_aix<mode>"): Likewise.
2592 ("*sibcall_value_aix<mode>"): Likewise.
2593 * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise.
2594 ("current_file_function_operand"): Likewise.
2596 Backport from mainline r204807:
2598 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2600 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic
2601 by making use of the fact that for vector / floating point arguments
2602 passed both in VRs/FPRs and in the fixed parameter area, the partial
2603 bytes mechanism is in fact not used.
2605 Backport from mainline r204806:
2607 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2609 * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function.
2610 (rs6000_finish_function_arg): Likewise.
2611 (rs6000_function_arg): Use rs6000_psave_function_arg and
2612 rs6000_finish_function_arg to handle both vector and floating
2613 point arguments that are also passed in GPRs / the stack.
2615 Backport from mainline r204805:
2617 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2619 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument.
2620 (USE_ALTIVEC_FOR_ARG_P): Likewise.
2621 (rs6000_darwin64_record_arg_advance_recurse): Update uses.
2622 (rs6000_function_arg_advance_1):Likewise.
2623 (rs6000_darwin64_record_arg_recurse): Likewise.
2624 (rs6000_function_arg): Likewise.
2625 (rs6000_arg_partial_bytes): Likewise.
2627 Backport from mainline r204804:
2629 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2631 * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace
2632 "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN.
2633 (rs6000_savres_strategy): Likewise.
2634 (rs6000_return_addr): Likewise.
2635 (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by
2636 testing for ABI_V4 (since ABI_DARWIN is impossible here).
2637 (rs6000_emit_prologue): Likewise.
2638 (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test.
2639 (rs6000_elf_declare_function_name): Remove duplicated test.
2640 * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test
2641 for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test).
2642 ("load_toc_v4_PIC_1_normal"): Likewise.
2643 ("load_toc_v4_PIC_1_476"): Likewise.
2644 ("load_toc_v4_PIC_1b"): Likewise.
2645 ("load_toc_v4_PIC_1b_normal"): Likewise.
2646 ("load_toc_v4_PIC_1b_476"): Likewise.
2647 ("load_toc_v4_PIC_2"): Likewise.
2648 ("load_toc_v4_PIC_3b"): Likewise.
2649 ("load_toc_v4_PIC_3c"): Likewise.
2650 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test.
2651 (RS6000_SAVE_AREA): Likewise.
2652 (FP_ARG_MAX_REG): Likewise.
2653 (RETURN_ADDRESS_OFFSET): Likewise.
2654 * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead
2656 (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
2657 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
2659 Backport from mainline r204803:
2661 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2663 * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ...
2664 (rs6000_call_aix): ... this. Handle both direct and indirect calls.
2665 Create call insn directly instead of via various gen_... routines.
2666 Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE.
2667 (rs6000_sibcall_aix): New function.
2668 * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove.
2669 (TOC_SAVE_OFFSET_64BIT): Likewise.
2670 (AIX_FUNC_DESC_TOC_32BIT): Likewise.
2671 (AIX_FUNC_DESC_TOC_64BIT): Likewise.
2672 (AIX_FUNC_DESC_SC_32BIT): Likewise.
2673 (AIX_FUNC_DESC_SC_64BIT): Likewise.
2674 ("call" expander): Call rs6000_call_aix.
2675 ("call_value" expander): Likewise.
2676 ("call_indirect_aix<ptrsize>"): Replace this pattern ...
2677 ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
2678 ("*call_indirect_aix<mode>"): ... by this insn pattern.
2679 ("call_value_indirect_aix<ptrsize>"): Replace this pattern ...
2680 ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
2681 ("*call_value_indirect_aix<mode>"): ... by this insn pattern.
2682 ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ...
2683 ("*call_nonlocal_aix<mode>"): ... this pattern.
2684 ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace
2685 ("*call_value_nonlocal_aix<mode>"): ... by this pattern.
2686 ("*call_local_aix<mode>"): New insn pattern.
2687 ("*call_value_local_aix<mode>"): Likewise.
2688 ("sibcall" expander): Call rs6000_sibcall_aix.
2689 ("sibcall_value" expander): Likewise. Move earlier in file.
2690 ("*sibcall_nonlocal_aix<mode>"): Replace by ...
2691 ("*sibcall_aix<mode>"): ... this pattern.
2692 ("*sibcall_value_nonlocal_aix<mode>"): Replace by ...
2693 ("*sibcall_value_aix<mode>"): ... this pattern.
2694 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove.
2695 (rs6000_call_aix): Add prototype.
2696 (rs6000_sibcall_aix): Likewise.
2698 Backport from mainline r204799:
2700 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2702 * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a
2703 RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn.
2704 Instead, add USEs of all modified call-saved CR fields to the
2705 insn storing the result to the stack slot, and provide an
2706 appropriate REG_FRAME_RELATED_EXPR for that insn.
2707 * config/rs6000/rs6000.md ("*crsave"): New insn pattern.
2708 * config/rs6000/predicates.md ("crsave_operation"): New predicate.
2710 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2712 ELFv2 ABI Call Support
2713 Backport from mainline r204798:
2715 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2716 Alan Modra <amodra@gmail.com>
2718 * function.c (assign_parms): Use all.reg_parm_stack_space instead
2719 of re-evaluating REG_PARM_STACK_SPACE target macro.
2720 (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE. Use it
2721 instead of evaluating target macro REG_PARM_STACK_SPACE every time.
2722 (assign_parm_find_entry_rtl): Update call.
2723 * calls.c (initialize_argument_information): Update call.
2724 (emit_library_call_value_1): Likewise.
2725 * expr.h (locate_and_pad_parm): Update prototype.
2727 Backport from mainline r204797:
2729 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2731 * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL
2734 Backport from mainline r197003:
2736 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
2738 * calls.c (expand_call): Add missing guard to code handling return
2739 of non-BLKmode structures in MSB.
2740 * function.c (expand_function_end): Likewise.
2742 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2744 Backport from mainline r201750.
2745 Note: Default setting of -mcompat-align-parm inverted!
2747 2013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2750 * doc/invoke.texi: Add documentation of mcompat-align-parm
2752 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
2753 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
2754 and Linux, correct BLKmode alignment when 128-bit alignment is
2755 required and compatibility flag is not set.
2756 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified
2757 alignment for zero-size arguments when compatibility flag is not
2760 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2762 Little Endian Vector Support
2763 Backport from mainline r205333
2764 2013-11-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2766 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct
2769 Backport from mainline r205241
2770 2013-11-21 Bill Schmidt <wschmidt@vnet.ibm.com>
2772 * config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous
2773 little endian change.
2774 (vec_pack_sfix_trunc_v2df): Likewise.
2775 (vec_pack_ufix_trunc_v2df): Likewise.
2776 * config/rs6000/rs6000.c (rs6000_expand_interleave): Correct
2777 double checking of endianness.
2779 Backport from mainline r205146
2780 2013-11-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2782 * config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian.
2783 (vsx_extract_<mode>): Likewise.
2784 (*vsx_extract_<mode>_one_le): New LE variant on
2785 *vsx_extract_<mode>_zero.
2786 (vsx_extract_v4sf): Adjust for little endian.
2788 Backport from mainline r205080
2789 2013-11-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2791 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust
2792 V16QI vector splat case for little endian.
2794 Backport from mainline r205045:
2796 2013-11-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2798 * config/rs6000/vector.md ("mov<mode>"): Do not call
2799 rs6000_emit_le_vsx_move to move into or out of GPRs.
2800 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
2801 source and destination are not GPR hard regs.
2803 Backport from mainline r204920
2804 2011-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2806 * config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg
2807 parameter and use it in REG_FRAME_RELATED_EXPR note.
2808 (emit_frame_save): Call rs6000_frame_related with extra NULL_RTX
2810 (rs6000_emit_prologue): Likewise, but for little endian VSX
2811 stores, pass the source register of the store instead.
2813 Backport from mainline r204862
2814 2013-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2816 * config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X):
2818 (altivec_vperm_<mode>): Revert earlier little endian change.
2819 (*altivec_vperm_<mode>_internal): Remove.
2820 (altivec_vperm_<mode>_uns): Revert earlier little endian change.
2821 (*altivec_vperm_<mode>_uns_internal): Remove.
2822 * config/rs6000/vector.md (vec_realign_load_<mode>): Revise
2825 Backport from mainline r204441
2826 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2828 * config/rs6000/rs6000.c (rs6000_option_override_internal):
2829 Remove restriction against use of VSX instructions when generating
2830 code for little endian mode.
2832 Backport from mainline r204440
2833 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2835 * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh
2836 for both big and little endian.
2837 (mulv8hi3): Swap input operands for merge high and merge low
2838 instructions for little endian.
2840 Backport from mainline r204439
2841 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2843 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change
2844 define_insn to define_expand that uses even patterns for big
2845 endian and odd patterns for little endian.
2846 (vec_widen_smult_even_v16qi): Likewise.
2847 (vec_widen_umult_even_v8hi): Likewise.
2848 (vec_widen_smult_even_v8hi): Likewise.
2849 (vec_widen_umult_odd_v16qi): Likewise.
2850 (vec_widen_smult_odd_v16qi): Likewise.
2851 (vec_widen_umult_odd_v8hi): Likewise.
2852 (vec_widen_smult_odd_v8hi): Likewise.
2853 (altivec_vmuleub): New define_insn.
2854 (altivec_vmuloub): Likewise.
2855 (altivec_vmulesb): Likewise.
2856 (altivec_vmulosb): Likewise.
2857 (altivec_vmuleuh): Likewise.
2858 (altivec_vmulouh): Likewise.
2859 (altivec_vmulesh): Likewise.
2860 (altivec_vmulosh): Likewise.
2862 Backport from mainline r204395
2863 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2865 * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
2867 (vec_pack_ufix_trunc_v2df): Likewise.
2869 Backport from mainline r204363
2870 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2872 * config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap
2873 arguments to merge instruction for little endian.
2874 (vec_widen_umult_lo_v16qi): Likewise.
2875 (vec_widen_smult_hi_v16qi): Likewise.
2876 (vec_widen_smult_lo_v16qi): Likewise.
2877 (vec_widen_umult_hi_v8hi): Likewise.
2878 (vec_widen_umult_lo_v8hi): Likewise.
2879 (vec_widen_smult_hi_v8hi): Likewise.
2880 (vec_widen_smult_lo_v8hi): Likewise.
2882 Backport from mainline r204350
2883 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2885 * config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D):
2886 Replace the define_insn_and_split with a define_insn and two
2887 define_splits, with the split after reload re-permuting the source
2888 register to its original value.
2889 (*vsx_le_perm_store_<mode> for VSX_W): Likewise.
2890 (*vsx_le_perm_store_v8hi): Likewise.
2891 (*vsx_le_perm_store_v16qi): Likewise.
2893 Backport from mainline r204321
2894 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2896 * config/rs6000/vector.md (vec_pack_trunc_v2df): Adjust for
2899 Backport from mainline r204321
2900 2013-11-02 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
2902 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for
2905 Backport from mainline r203980
2906 2013-10-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2908 * config/rs6000/altivec.md (mulv8hi3): Adjust for little endian.
2910 Backport from mainline r203930
2911 2013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com>
2913 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
2914 meaning of merge-high and merge-low masks for little endian; avoid
2915 use of vector-pack masks for little endian for mismatched modes.
2917 Backport from mainline r203877
2918 2013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2920 * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
2922 (vec_unpacku_hi_v8hi): Likewise.
2923 (vec_unpacku_lo_v16qi): Likewise.
2924 (vec_unpacku_lo_v8hi): Likewise.
2926 Backport from mainline r203863
2927 2013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2929 * config/rs6000/rs6000.c (vspltis_constant): Make sure we check
2930 all elements for both endian flavors.
2932 Backport from mainline r203714
2933 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2935 * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
2937 (vec_unpacks_lo_v4sf): Likewise.
2938 (vec_unpacks_float_hi_v4si): Likewise.
2939 (vec_unpacks_float_lo_v4si): Likewise.
2940 (vec_unpacku_float_hi_v4si): Likewise.
2941 (vec_unpacku_float_lo_v4si): Likewise.
2943 Backport from mainline r203713
2944 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2946 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
2947 (vsx_concat_v2sf): Likewise.
2949 Backport from mainline r203458
2950 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2952 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
2953 handle vector float as well.
2954 (*vsx_le_perm_load_v4si): Likewise.
2955 (*vsx_le_perm_store_v2di): Likewise.
2956 (*vsx_le_perm_store_v4si): Likewise.
2958 Backport from mainline r203457
2959 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2961 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
2962 directly to circumvent subtract from splat{31} workaround.
2963 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
2965 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
2966 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
2967 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
2968 (altivec_vperm_<mode>): Convert to define_insn_and_split to
2969 separate big and little endian logic.
2970 (*altivec_vperm_<mode>_internal): New define_insn.
2971 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
2972 separate big and little endian logic.
2973 (*altivec_vperm_<mode>_uns_internal): New define_insn.
2974 (vec_permv16qi): Add little endian logic.
2976 Backport from mainline r203247
2977 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2979 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
2980 (altivec_expand_vec_perm_const): Call it.
2982 Backport from mainline r203246
2983 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2985 * config/rs6000/vector.md (mov<mode>): Emit permuted move
2986 sequences for LE VSX loads and stores at expand time.
2987 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
2989 * config/rs6000/rs6000.c (rs6000_const_vec): New.
2990 (rs6000_gen_le_vsx_permute): New.
2991 (rs6000_gen_le_vsx_load): New.
2992 (rs6000_gen_le_vsx_store): New.
2993 (rs6000_gen_le_vsx_move): New.
2994 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
2995 (*vsx_le_perm_load_v4si): New.
2996 (*vsx_le_perm_load_v8hi): New.
2997 (*vsx_le_perm_load_v16qi): New.
2998 (*vsx_le_perm_store_v2di): New.
2999 (*vsx_le_perm_store_v4si): New.
3000 (*vsx_le_perm_store_v8hi): New.
3001 (*vsx_le_perm_store_v16qi): New.
3002 (*vsx_xxpermdi2_le_<mode>): New.
3003 (*vsx_xxpermdi4_le_<mode>): New.
3004 (*vsx_xxpermdi8_le_V8HI): New.
3005 (*vsx_xxpermdi16_le_V16QI): New.
3006 (*vsx_lxvd2x2_le_<mode>): New.
3007 (*vsx_lxvd2x4_le_<mode>): New.
3008 (*vsx_lxvd2x8_le_V8HI): New.
3009 (*vsx_lxvd2x16_le_V16QI): New.
3010 (*vsx_stxvd2x2_le_<mode>): New.
3011 (*vsx_stxvd2x4_le_<mode>): New.
3012 (*vsx_stxvd2x8_le_V8HI): New.
3013 (*vsx_stxvd2x16_le_V16QI): New.
3015 Backport from mainline r201235
3016 2013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
3017 Anton Blanchard <anton@au1.ibm.com>
3019 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
3020 (altivec_vpks<VI_char>ss): Likewise.
3021 (altivec_vpks<VI_char>us): Likewise.
3022 (altivec_vpku<VI_char>us): Likewise.
3023 (altivec_vpku<VI_char>um): Likewise.
3025 Backport from mainline r201208
3026 2013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
3027 Anton Blanchard <anton@au1.ibm.com>
3029 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
3030 operands to vperm for little endian.
3031 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
3032 of lvsl to create the control mask for a vperm for little endian.
3034 Backport from mainline r201195
3035 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3036 Anton Blanchard <anton@au1.ibm.com>
3038 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
3039 two operands for little-endian.
3041 Backport from mainline r201193
3042 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3043 Anton Blanchard <anton@au1.ibm.com>
3045 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
3046 selection of field for vector splat in little endian mode.
3048 Backport from mainline r201149
3049 2013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
3050 Anton Blanchard <anton@au1.ibm.com>
3052 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
3053 endianness when selecting field to splat.
3055 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3057 Backport from mainline r205123:
3059 2013-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3061 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not
3062 allow subregs of TDmode in FPRs of smaller size in little-endian.
3063 (rs6000_split_multireg_move): When splitting an access to TDmode
3064 in FPRs, do not use simplify_gen_subreg.
3066 Backport from mainline r204927:
3068 2013-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3070 * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
3071 sdmode_stack_slot also in little-endian mode.
3073 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3076 Backport from mainline
3077 2013-12-03 Peter Bergner <bergner@vnet.ibm.com>
3079 * config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix
3081 (_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise.
3083 Backport from mainline r205233.
3084 2013-11-21 Peter Bergner <bergner@vnet.ibm.com>
3086 * doc/extend.texi: Document htm builtins.
3088 Backport from mainline
3089 2013-07-17 Iain Sandoe <iain@codesourcery.com>
3091 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
3093 Backport from mainline
3094 2013-07-16 Peter Bergner <bergner@vnet.ibm.com>
3096 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
3097 enable extra ISA flags with TARGET_HTM.
3099 2013-07-16 Jakub Jelinek <jakub@redhat.com>
3100 Peter Bergner <bergner@vnet.ibm.com>
3102 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
3103 registers in the comment.
3104 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
3105 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
3106 rather than FIRST_PSEUDO_REGISTERS.
3108 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
3109 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
3110 * config/rs6000/rs6000.opt: Add -mhtm option.
3111 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
3112 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
3113 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3114 __HTM__ if the HTM instructions are available.
3115 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand)
3116 (htm_spr_reg_operand): New define_predicates.
3117 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
3118 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
3120 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2)
3121 (BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
3122 HTM builtin functions.
3123 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
3124 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
3125 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
3126 (rs6000_builtin_mask_calculate): Likewise.
3127 (rs6000_option_override_internal): Likewise.
3128 (bdesc_htm): Add new HTM builtin support.
3129 (htm_spr_num): New function.
3130 (htm_spr_regno): Likewise.
3131 (rs6000_htm_spr_icode): Likewise.
3132 (htm_expand_builtin): Likewise.
3133 (htm_init_builtins): Likewise.
3134 (rs6000_expand_builtin): Add support for HTM builtin functions.
3135 (rs6000_init_builtins): Likewise.
3136 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm option.
3137 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
3138 (TARGET_HTM, MASK_HTM): Define macros.
3139 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
3140 (FIXED_REGISTERS): Likewise.
3141 (CALL_USED_REGISTERS): Likewise.
3142 (CALL_REALLY_USED_REGISTERS): Likewise.
3143 (REG_ALLOC_ORDER): Likewise.
3144 (enum reg_class): Likewise.
3145 (REG_CLASS_NAMES): Likewise.
3146 (REG_CLASS_CONTENTS): Likewise.
3147 (REGISTER_NAMES): Likewise.
3148 (ADDITIONAL_REGISTER_NAMES): Likewise.
3149 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT)
3150 (RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
3151 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
3152 * config/rs6000/htm.md: New file.
3153 * config/rs6000/htmintrin.h: New file.
3154 * config/rs6000/htmxlintrin.h: New file.
3156 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3160 2013-11-23 Alan Modra <amodra@gmail.com>
3161 * config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.
3163 Backport from mainline
3164 2013-11-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3167 * config/rs6000/rs6000.md (movdi_internal32): Eliminate
3168 constraints that would allow DImode into the traditional Altivec
3169 registers, but cause undesirable code generation when loading 0 as
3171 (movdi_internal64): Likewise.
3172 (cmp<mode>_fpr): Do not use %x for CR register output.
3173 (extendsfdf2_fpr): Fix constraints when -mallow-upper-df and
3174 -mallow-upper-sf debug switches are used.
3176 Backport from mainline
3177 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
3179 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
3180 fields to the reg_addr array that describes the valid addressing
3181 mode for any register, general purpose registers, floating point
3182 registers, and Altivec registers.
3183 (FIRST_RELOAD_REG_CLASS): Likewise.
3184 (LAST_RELOAD_REG_CLASS): Likewise.
3185 (struct reload_reg_map_type): Likewise.
3186 (reload_reg_map_type): Likewise.
3187 (RELOAD_REG_VALID): Likewise.
3188 (RELOAD_REG_MULTIPLE): Likewise.
3189 (RELOAD_REG_INDEXED): Likewise.
3190 (RELOAD_REG_OFFSET): Likewise.
3191 (RELOAD_REG_PRE_INCDEC): Likewise.
3192 (RELOAD_REG_PRE_MODIFY): Likewise.
3193 (reg_addr): Likewise.
3194 (mode_supports_pre_incdec_p): New helper functions to say whether
3195 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
3196 (mode_supports_pre_modify_p): Likewise.
3197 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
3198 print the valid address mode bits for each mode.
3199 (rs6000_debug_print_mode): Likewise.
3200 (rs6000_debug_reg_global): Likewise.
3201 (rs6000_setup_reg_addr_masks): New function to set up the address
3202 mask bits for each type.
3203 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
3204 Call rs6000_setup_reg_addr_masks to set up the address mask bits.
3205 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
3206 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
3207 PRE_MODIFY are supported.
3208 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
3209 registers, instead of {src,dest}_av_p.
3210 (rs6000_print_options_internal): Tweak the debug output slightly.
3212 Backport from mainline
3213 2013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
3215 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
3216 ceildf2, btruncdf2, instead of vsx_* name.
3218 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
3219 iterators to only do V2DF and V4SF here. Move the DF code to
3220 rs6000.md where it is combined with SF mode. Replace <VSv> with
3221 just 'v' since only vector operations are handled with these insns
3222 after moving the DF support to rs6000.md.
3223 (vsx_sub<mode>3): Likewise.
3224 (vsx_mul<mode>3): Likewise.
3225 (vsx_div<mode>3): Likewise.
3226 (vsx_fre<mode>2): Likewise.
3227 (vsx_neg<mode>2): Likewise.
3228 (vsx_abs<mode>2): Likewise.
3229 (vsx_nabs<mode>2): Likewise.
3230 (vsx_smax<mode>3): Likewise.
3231 (vsx_smin<mode>3): Likewise.
3232 (vsx_sqrt<mode>2): Likewise.
3233 (vsx_rsqrte<mode>2): Likewise.
3234 (vsx_fms<mode>4): Likewise.
3235 (vsx_nfma<mode>4): Likewise.
3236 (vsx_copysign<mode>3): Likewise.
3237 (vsx_btrunc<mode>2): Likewise.
3238 (vsx_floor<mode>2): Likewise.
3239 (vsx_ceil<mode>2): Likewise.
3240 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
3241 (vsx_sminsf3): Likewise.
3242 (vsx_fmadf4): Likewise.
3243 (vsx_fmsdf4): Likewise.
3244 (vsx_nfmadf4): Likewise.
3245 (vsx_nfmsdf4): Likewise.
3246 (vsx_cmpdf_internal1): Likewise.
3248 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
3249 simpler to select whether a target has SPE or traditional floating
3250 point support in iterators.
3251 (TARGET_DF_SPE): Likewise.
3252 (TARGET_SF_FPR): Likewise.
3253 (TARGET_DF_FPR): Likewise.
3254 (TARGET_SF_INSN): Macros to say whether floating point support
3255 exists for a given operation for expanders.
3256 (TARGET_DF_INSN): Likewise.
3258 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
3259 combining of SF/DF mode operations, using both traditional and VSX
3267 (abs<mode>2): Combine SF/DF modes using traditional floating point
3268 instructions. Add support for using the upper DF registers with
3269 VSX support, and SF registers with power8-vector support. Update
3270 expanders for operations supported by both the SPE and traditional
3271 floating point units.
3272 (abs<mode>2_fpr): Likewise.
3273 (nabs<mode>2): Likewise.
3274 (nabs<mode>2_fpr): Likewise.
3275 (neg<mode>2): Likewise.
3276 (neg<mode>2_fpr): Likewise.
3277 (add<mode>3): Likewise.
3278 (add<mode>3_fpr): Likewise.
3279 (sub<mode>3): Likewise.
3280 (sub<mode>3_fpr): Likewise.
3281 (mul<mode>3): Likewise.
3282 (mul<mode>3_fpr): Likewise.
3283 (div<mode>3): Likewise.
3284 (div<mode>3_fpr): Likewise.
3285 (sqrt<mode>3): Likewise.
3286 (sqrt<mode>3_fpr): Likewise.
3287 (fre<Fs>): Likewise.
3288 (rsqrt<mode>2): Likewise.
3289 (cmp<mode>_fpr): Likewise.
3290 (smax<mode>3): Likewise.
3291 (smin<mode>3): Likewise.
3292 (smax<mode>3_vsx): Likewise.
3293 (smin<mode>3_vsx): Likewise.
3294 (negsf2): Delete SF operations that are merged with DF.
3301 (fmasf4_fpr): Likewise.
3302 (fmssf4_fpr): Likewise.
3303 (nfmasf4_fpr): Likewise.
3304 (nfmssf4_fpr): Likewise.
3305 (sqrtsf2): Likewise.
3306 (rsqrtsf_internal1): Likewise.
3307 (smaxsf3): Likewise.
3308 (sminsf3): Likewise.
3309 (cmpsf_internal1): Likewise.
3310 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
3311 (negdf2): Delete DF operations that are merged with SF.
3313 (nabsdf2): Likewise.
3319 (rsqrtdf_internal1): Likewise.
3320 (fmadf4_fpr): Likewise.
3321 (fmsdf4_fpr): Likewise.
3322 (nfmadf4_fpr): Likewise.
3323 (nfmsdf4_fpr): Likewise.
3324 (sqrtdf2): Likewise.
3325 (smaxdf3): Likewise.
3326 (smindf3): Likewise.
3327 (cmpdf_internal1): Likewise.
3328 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
3329 (btrunc<mode>2): Delete separate expander, and combine with the
3330 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
3331 (btrunc<mode>2_fpr): Likewise.
3332 (ceil<mode>2): Likewise.
3333 (ceil<mode>2_fpr): Likewise.
3334 (floor<mode>2): Likewise.
3335 (floor<mode>2_fpr): Likewise.
3336 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
3337 Add support for using the upper registers with VSX and
3338 power8-vector. Move insns to be closer to the define_expands. On
3339 VSX systems, prefer the traditional form of FMA over the VSX
3340 version, since the traditional form allows the target not to
3341 overlap with the inputs.
3342 (fms<mode>4_fpr): Likewise.
3343 (nfma<mode>4_fpr): Likewise.
3344 (nfms<mode>4_fpr): Likewise.
3346 Backport from mainline
3347 2013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3349 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
3350 DFmode, DImode, and SFmode in the upper VSX registers based on the
3351 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
3352 if -mpower8-vector. Combine -mvsx-timode handling with the rest
3353 of the VSX register handling.
3355 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
3357 (zero_extendsidi2_lfiwzx): Add support for loading into the
3358 Altivec registers with -mpower8-vector. Use wu/wv constraints to
3359 only do VSX memory options on Altivec registers.
3360 (extendsidi2_lfiwax): Likewise.
3361 (extendsfdf2_fpr): Likewise.
3362 (mov<mode>_hardfloat, SF/SD modes): Likewise.
3363 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
3364 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
3365 (movdi_internal64): Likewise.
3367 Backport from mainline
3368 2013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3370 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
3371 reload helper function arrays into a single array reg_addr.
3372 (reload_fpr_gpr): Likewise.
3373 (reload_gpr_vsx): Likewise.
3374 (reload_vsx_gpr): Likewise.
3375 (struct rs6000_reg_addr): Likewise.
3376 (reg_addr): Likewise.
3377 (rs6000_debug_reg_global): Change rs6000_vector_reload,
3378 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
3379 (rs6000_init_hard_regno_mode_ok): Likewise.
3380 (rs6000_secondary_reload_direct_move): Likewise.
3381 (rs6000_secondary_reload): Likewise.
3383 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
3384 constraints: wu, ww, and wy. Repurpose wv constraint added during
3385 power8 changes. Put wg constraint in alphabetical order.
3387 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
3388 for future work to add ISA 2.07 VSX single precision support.
3389 (-mvsx-scalar-double): Change default from -1 to 1, update
3390 documentation comment.
3391 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
3392 (-mupper-regs-df): New debug switch to control whether DF values
3393 can go in the traditional Altivec registers.
3394 (-mupper-regs-sf): New debug switch to control whether SF values
3395 can go in the traditional Altivec registers.
3397 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
3399 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
3400 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
3401 Add new constraints, wu/ww/wy. Repurpose wv constraint.
3402 (rs6000_debug_legitimate_address_p): Print if we are running
3403 before, during, or after reload.
3404 (rs6000_secondary_reload): Add a comment.
3405 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
3407 * config/rs6000/constraints.md (wa constraint): Sort w<x>
3408 constraints. Update documentation string.
3409 (wd constraint): Likewise.
3410 (wf constraint): Likewise.
3411 (wg constraint): Likewise.
3412 (wn constraint): Likewise.
3413 (ws constraint): Likewise.
3414 (wt constraint): Likewise.
3415 (wx constraint): Likewise.
3416 (wz constraint): Likewise.
3417 (wu constraint): New constraint for ISA 2.07 SFmode scalar
3419 (ww constraint): Likewise.
3420 (wy constraint): Likewise.
3421 (wv constraint): Repurpose ISA 2.07 constraint that did not use in
3422 the previous submissions.
3423 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
3425 Backport from mainline
3426 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
3429 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
3430 restrict TImode addresses to single indirect registers if both
3431 -mquad-memory and -mvsx-timode are used.
3432 (rs6000_output_move_128bit): Use quad_load_store_p to determine if
3433 we should emit load/store quad. Remove using %y for quad memory
3436 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
3437 constraints to allow load/store quad on machines where TImode is
3438 not allowed in VSX registers. Use 'n' instead of 'F' constraint
3439 for TImode to load integer constants.
3441 Backport from mainline
3442 2013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3445 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
3446 setting -mvsx-timode by default until the underlying problem is
3448 (RS6000_CPU, power7 defaults): Likewise.
3451 2013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
3454 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
3455 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
3457 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
3458 array instead of each individual operand as a separate argument.
3459 (emit_fusion_gpr_load): Likewise.
3460 (expand_fusion_gpr_load): Add new function declaration.
3462 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
3463 signature to have the operands passed as an array, instead of as
3464 separate arguments. Allow ZERO_EXTEND to be in the memory
3465 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
3466 depend on the register live/dead flags when peepholes are run.
3467 (expand_fusion_gpr_load): New function to be called from the
3468 peephole2 pass, to change the register that addis sets to be the
3470 (emit_fusion_gpr_load): Change the calling signature to have the
3471 operands passed as an array, instead of as separate arguments.
3472 Allow ZERO_EXTEND to be in the memory address, and also
3473 SIGN_EXTEND if -mpower8-fusion-sign.
3475 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
3477 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
3478 adjust the register addis loads up in the peephole2 pass. Do not
3479 depend on the register live/dead state when the peephole pass is
3483 2013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3485 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
3486 expanders to rs6000.md.
3487 (ior<mode>3): Likewise.
3488 (and<mode>3): Likewise.
3489 (one_cmpl<mode>2): Likewise.
3490 (nor<mode>3): Likewise.
3491 (andc<mode>3): Likewise.
3492 (eqv<mode>3): Likewise.
3493 (nand<mode>3): Likewise.
3494 (orc<mode>3): Likewise.
3496 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
3499 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
3500 to split multi-word logical operations.
3501 (rs6000_split_logical_di): Likewise.
3502 (rs6000_split_logical): Likewise.
3504 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
3505 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
3506 and allow TImode operations in 32-bit.
3507 (vsx_and<mode>3_64bit): Likewise.
3508 (vsx_ior<mode>3_32bit): Likewise.
3509 (vsx_ior<mode>3_64bit): Likewise.
3510 (vsx_xor<mode>3_32bit): Likewise.
3511 (vsx_xor<mode>3_64bit): Likewise.
3512 (vsx_one_cmpl<mode>2_32bit): Likewise.
3513 (vsx_one_cmpl<mode>2_64bit): Likewise.
3514 (vsx_nor<mode>3_32bit): Likewise.
3515 (vsx_nor<mode>3_64bit): Likewise.
3516 (vsx_andc<mode>3_32bit): Likewise.
3517 (vsx_andc<mode>3_64bit): Likewise.
3518 (vsx_eqv<mode>3_32bit): Likewise.
3519 (vsx_eqv<mode>3_64bit): Likewise.
3520 (vsx_nand<mode>3_32bit): Likewise.
3521 (vsx_nand<mode>3_64bit): Likewise.
3522 (vsx_orc<mode>3_32bit): Likewise.
3523 (vsx_orc<mode>3_64bit): Likewise.
3525 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
3526 logical types in GPRs.
3528 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
3529 logical insns to rs6000.md, and allow TImode operations in
3531 (altivec_ior<mode>3): Likewise.
3532 (altivec_xor<mode>3): Likewise.
3533 (altivec_one_cmpl<mode>2): Likewise.
3534 (altivec_nor<mode>3): Likewise.
3535 (altivec_andc<mode>3): Likewise.
3537 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
3538 attributes for moving the 128-bit logical operations into
3540 (BOOL_REGS_OUTPUT): Likewise.
3541 (BOOL_REGS_OP1): Likewise.
3542 (BOOL_REGS_OP2): Likewise.
3543 (BOOL_REGS_UNARY): Likewise.
3544 (BOOL_REGS_AND_CR0): Likewise.
3545 (one_cmpl<mode>2): Add support for DI logical operations on
3546 32-bit, splitting the operations to 32-bit.
3550 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
3551 changes to combine the 32/64-bit code, allow logical operations on
3552 TI mode in 32-bit, and to use similar match_operator patterns like
3553 scalar mode uses. Combine the Altivec and VSX code for logical
3554 operations, and move it here.
3555 (ior<mode>3, 128-bit types): Likewise.
3556 (xor<mode>3, 128-bit types): Likewise.
3557 (one_cmpl<mode>3, 128-bit types): Likewise.
3558 (nor<mode>3, 128-bit types): Likewise.
3559 (andc<mode>3, 128-bit types): Likewise.
3560 (eqv<mode>3, 128-bit types): Likewise.
3561 (nand<mode>3, 128-bit types): Likewise.
3562 (orc<mode>3, 128-bit types): Likewise.
3563 (and<mode>3_internal): Likewise.
3564 (bool<mode>3_internal): Likewise.
3565 (boolc<mode>3_internal1): Likewise.
3566 (boolc<mode>3_internal2): Likewise.
3567 (boolcc<mode>3_internal1): Likewise.
3568 (boolcc<mode>3_internal2): Likewise.
3569 (eqv<mode>3_internal1): Likewise.
3570 (eqv<mode>3_internal2): Likewise.
3571 (one_cmpl1<mode>3_internal): Likewise.
3573 Back port from mainline:
3574 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3575 Pat Haugen <pthaugen@us.ibm.com>
3576 Peter Bergner <bergner@vnet.ibm.com>
3578 * lib/target-supports.exp (check_p8vector_hw_available) Add power8
3580 (check_effective_target_powerpc_p8vector_ok): Likewise.
3581 (is-effective-target): Likewise.
3582 (check_vect_support_and_set_flags): Likewise.
3584 Backport from mainline
3585 2013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
3587 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
3588 to support power8 load fusion.
3589 (fusion_gpr_mem_load): Likewise.
3591 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
3593 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
3594 declarations for power8 load fusion.
3595 (emit_fusion_gpr_load): Likewise.
3597 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
3598 tuning for power8, turn on fusion mode by default. Turn on sign
3599 extending fusion mode if normal fusion mode is on, and we are at
3601 (fusion_gpr_load_p): New function, return true if we can fuse an
3602 addis instruction with a dependent load to a GPR.
3603 (emit_fusion_gpr_load): Emit the instructions for power8 load
3606 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion
3608 (VSX load fusion peepholes): New peepholes to fuse together an
3609 addi instruction with a VSX load instruction.
3611 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
3612 peepholes to fuse an addis instruction with a load to a GPR base
3613 register. If we are supporting sign extending fusions, convert
3614 sign extending loads to zero extending loads and add an explicit
3617 Backport from mainline
3618 2013-07-18 Pat Haugen <pthaugen@us.ibm.com>
3620 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
3621 interaction for new Power8 flags and VSX.
3623 Back port from the trunk
3624 2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
3627 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
3628 to tie with any other modes. Eliminate Altivec vector mode tests,
3629 since these are a subset of ALTIVEC or VSX vector modes. Simplify
3630 code, to return 0 if testing MODE2 for a condition, if we've
3631 already tested MODE1 for the same condition.
3633 Backport from mainline
3634 2013-06-28 Pat Haugen <pthaugen@us.ibm.com>
3636 * config/rs6000/rs6000.md (define_insn ""): Fix insn type.
3638 Back port from the trunk
3639 2013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3640 Pat Haugen <pthaugen@us.ibm.com>
3641 Peter Bergner <bergner@vnet.ibm.com>
3643 * config/rs6000/power8.md: New.
3644 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
3645 setting for power8 entry.
3646 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
3647 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
3648 test for Power4/Power5 only.
3649 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
3651 (force_new_group): Adjust comment.
3652 * config/rs6000/rs6000.md: Include power8.md.
3654 Back port from the trunk
3655 2013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
3658 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
3659 rs6000_output_move_128bit to handle emitting quad memory
3660 operations. Set attribute length to 8 bytes.
3662 Back port from the trunk
3663 2013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
3665 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
3666 test for clearing quad memory on 32-bit later.
3668 Back port from the trunk
3670 2013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3671 Pat Haugen <pthaugen@us.ibm.com>
3672 Peter Bergner <bergner@vnet.ibm.com>
3674 * config/rs6000/rs6000.c (emit_load_locked): Add support for
3675 power8 byte, half-word, and quad-word atomic instructions.
3676 (emit_store_conditional): Likewise.
3677 (rs6000_expand_atomic_compare_and_swap): Likewise.
3678 (rs6000_expand_atomic_op): Likewise.
3680 * config/rs6000/sync.md (larx): Add new modes for power8.
3682 (AINT): New mode iterator to include TImode as well as normal
3683 integer modes on power8.
3684 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
3685 that VSX registers are not considered. Use AINT mode iterator
3686 instead of INT1 to allow inclusion of quad word atomic operations
3688 (load_locked<mode>): Likewise.
3689 (store_conditional<mode>): Likewise.
3690 (atomic_compare_and_swap<mode>): Likewise.
3691 (atomic_exchange<mode>): Likewise.
3692 (atomic_nand<mode>): Likewise.
3693 (atomic_fetch_<fetchop_name><mode>): Likewise.
3694 (atomic_nand_fetch<mode>): Likewise.
3695 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
3697 (ATOMIC): On power8, add QImode, HImode modes.
3698 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
3699 modes that promote to SImode.
3700 (load_lockedti): Convert TImode arguments to PTImode, so that we
3701 get a guaranteed even/odd register pair.
3702 (load_lockedpti): Likewise.
3703 (store_conditionalti): Likewise.
3704 (store_conditionalpti): Likewise.
3706 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
3707 atomic load/store instructions.
3710 Back port from the trunk
3712 2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
3713 Pat Haugen <pthaugen@us.ibm.com>
3714 Peter Bergner <bergner@vnet.ibm.com>
3716 * config/rs6000/vector.md (GPR move splitter): Do not split moves
3717 of vectors in GPRS if they are direct moves or quad word load or
3720 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
3722 (direct_move_p): Likewise.
3723 (quad_load_store_p): Likewise.
3725 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
3726 classes into bins based on the physical register type.
3727 (reg_class_to_reg_type): Likewise.
3728 (IS_STD_REG_TYPE): Likewise.
3729 (IS_FP_VECT_REG_TYPE): Likewise.
3730 (reload_fpr_gpr): Arrays to determine what insn to use if we can
3731 use direct move instructions.
3732 (reload_gpr_vsx): Likewise.
3733 (reload_vsx_gpr): Likewise.
3734 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
3735 information that is a simplification of register classes. Also
3736 precalculate direct move reload helpers.
3737 (direct_move_p): New function to return true if the operation can
3738 be done as a direct move instruciton.
3739 (quad_load_store_p): New function to return true if the operation
3740 is a quad memory operation.
3741 (rs6000_legitimize_address): If quad memory, only allow register
3742 indirect for TImode addresses.
3743 (rs6000_legitimate_address_p): Likewise.
3744 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
3745 (rs6000_reload_register_type): Likewise.
3746 (register_to_reg_type): Return register type.
3747 (rs6000_secondary_reload_simple_move): New helper function for
3748 secondary reload and secondary memory needed to identify anything
3749 that is a simple move, and does not need reloading.
3750 (rs6000_secondary_reload_direct_move): New helper function for
3751 secondary reload to identify cases that can be done with several
3752 instructions via the direct move instructions.
3753 (rs6000_secondary_reload_move): New helper function for secondary
3754 reload to identify moves between register types that can be done.
3755 (rs6000_secondary_reload): Add support for quad memory operations
3756 and for direct move.
3757 (rs6000_secondary_memory_needed): Likewise.
3758 (rs6000_debug_secondary_memory_needed): Change argument names.
3759 (rs6000_output_move_128bit): New function to return the move to
3760 use for 128-bit moves, including knowing about the various
3761 limitations of quad memory operations.
3763 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
3764 memory operations. call rs6000_output_move_128bit for the actual
3765 instruciton(s) to generate.
3766 (vsx_movti_64bit): Likewise.
3768 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
3769 (UNSPEC_P8V_MTVSRWZ): Likewise.
3770 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
3771 (UNSPEC_P8V_MTVSRD): Likewise.
3772 (UNSPEC_P8V_XXPERMDI): Likewise.
3773 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
3774 (UNSPEC_FUSION_GPR): Likewise.
3775 (FMOVE128_GPR): New iterator for direct move.
3776 (f32_lv): New mode attribute for load/store of SFmode/SDmode
3780 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
3781 loads and direct move instructions.
3782 (zero_extendsidi2_lfiwzx): Likewise.
3783 (extendsidi2_lfiwax): Likewise.
3784 (extendsidi2_nocell): Likewise.
3785 (floatsi<mode>2_lfiwax): Likewise.
3787 (floatunssi<mode>2_lfiwzx): Likewise.
3789 (fix_trunc<mode>_stfiwx): Likewise.
3790 (fixuns_trunc<mode>_stfiwx): Likewise.
3791 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
3792 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
3793 (parity<mode>2_cmpb): Set length/type attr.
3794 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
3795 for 'mr.' to fast_compare.
3796 (bpermd_<mode>): Change type attr to popcnt.
3797 (p8_fmrgow_<mode>): New insns for power8 direct move support.
3798 (p8_mtvsrwz_1): Likewise.
3799 (p8_mtvsrwz_2): Likewise.
3800 (reload_fpr_from_gpr<mode>): Likewise.
3801 (p8_mtvsrd_1): Likewise.
3802 (p8_mtvsrd_2): Likewise.
3803 (p8_xxpermdi_<mode>): Likewise.
3804 (reload_vsx_from_gpr<mode>): Likewise.
3805 (reload_vsx_from_gprsf): Likewise.
3806 (p8_mfvsrd_3_<mode>): LIkewise.
3807 (reload_gpr_from_vsx<mode>): Likewise.
3808 (reload_gpr_from_vsxsf): Likewise.
3809 (p8_mfvsrd_4_disf): Likewise.
3810 (multi-word GPR splits): Do not split direct moves or quad memory
3813 Backport from the trunk
3815 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3816 Pat Haugen <pthaugen@us.ibm.com>
3817 Peter Bergner <bergner@vnet.ibm.com>
3819 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
3820 Document new power8 builtins.
3822 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
3823 condition code register, to allow 128-bit logical operations to be
3824 done in the VSX or GPR registers.
3825 (nor<mode>3): Use the canonical form for nor.
3826 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
3827 vclz*, and vpopcnt* vector instructions.
3828 (nand<mode>3): Likewise.
3829 (orc<mode>3): Likewise.
3830 (clz<mode>2): LIkewise.
3831 (popcount<mode>2): Likewise.
3833 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
3834 that only the GPRs are recognized.
3836 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3837 support for new power8 builtins.
3839 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
3841 (xscvdpspn): Likewise.
3847 (vpopcnt): Likewise.
3848 (vpopcntb): Likewise.
3849 (vpopcnth): Likewise.
3850 (vpopcntw): Likewise.
3851 (vpopcntd): Likewise.
3856 (eqv_v16qi3): Likewise.
3857 (eqv_v8hi3): Likewise.
3858 (eqv_v4si3): Likewise.
3859 (eqv_v2di3): Likewise.
3860 (eqv_v4sf3): Likewise.
3861 (eqv_v2df3): Likewise.
3863 (nand_v16qi3): Likewise.
3864 (nand_v8hi3): Likewise.
3865 (nand_v4si3): Likewise.
3866 (nand_v2di3): Likewise.
3867 (nand_v4sf3): Likewise.
3868 (nand_v2df3): Likewise.
3870 (orc_v16qi3): Likewise.
3871 (orc_v8hi3): Likewise.
3872 (orc_v4si3): Likewise.
3873 (orc_v2di3): Likewise.
3874 (orc_v4sf3): Likewise.
3875 (orc_v2df3): Likewise.
3877 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
3878 allow power8 quad mode in 64-bit.
3879 (rs6000_builtin_vectorized_function): Add support to vectorize
3880 ISA 2.07 count leading zeros, population count builtins.
3881 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
3882 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
3883 (builtin_function_type): Add vgbbd builtin function which takes an
3885 (altivec_expand_vec_perm_const): Add support for new power8 merge
3888 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
3889 that does not include TImdoe for use with 32-bit.
3890 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
3892 (UNSPEC_VSX_CVDPSPN): Likewise.
3893 (vsx_xscvdpspn): Likewise.
3894 (vsx_xscvspdpn): Likewise.
3895 (vsx_xscvdpspn_scalar): Likewise.
3896 (vsx_xscvspdpn_directmove): Likewise.
3897 (vsx_and<mode>3): Split logical operations into 32-bit and
3898 64-bit. Add support to do logical operations on TImode as well as
3899 VSX vector types. Allow logical operations to be done in either
3900 VSX registers or in general purpose registers in 64-bit mode. Add
3901 splitters if GPRs were used. For AND, add clobber of CCmode to
3902 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
3904 (vsx_and<mode>3_32bit): Likewise.
3905 (vsx_and<mode>3_64bit): Likewise.
3906 (vsx_ior<mode>3): Likewise.
3907 (vsx_ior<mode>3_32bit): Likewise.
3908 (vsx_ior<mode>3_64bit): Likewise.
3909 (vsx_xor<mode>3): Likewise.
3910 (vsx_xor<mode>3_32bit): Likewise.
3911 (vsx_xor<mode>3_64bit): Likewise.
3912 (vsx_one_cmpl<mode>2): Likewise.
3913 (vsx_one_cmpl<mode>2_32bit): Likewise.
3914 (vsx_one_cmpl<mode>2_64bit): Likewise.
3915 (vsx_nor<mode>3): Likewise.
3916 (vsx_nor<mode>3_32bit): Likewise.
3917 (vsx_nor<mode>3_64bit): Likewise.
3918 (vsx_andc<mode>3): Likewise.
3919 (vsx_andc<mode>3_32bit): Likewise.
3920 (vsx_andc<mode>3_64bit): Likewise.
3921 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
3922 and xxlorc instructions.
3923 (vsx_eqv<mode>3_64bit): Likewise.
3924 (vsx_nand<mode>3_32bit): Likewise.
3925 (vsx_nand<mode>3_64bit): Likewise.
3926 (vsx_orc<mode>3_32bit): Likewise.
3927 (vsx_orc<mode>3_64bit): Likewise.
3929 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
3931 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
3933 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
3934 (p8_vmrgow): Likewise.
3935 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
3936 GPRs to be split under VSX.
3937 (p8v_clz<mode>2): Add power8 count leading zero support.
3938 (p8v_popcount<mode>2): Add power8 population count support.
3939 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
3942 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
3945 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
3947 (vec_nand): Likewise.
3948 (vec_vclz): Likewise.
3949 (vec_vclzb): Likewise.
3950 (vec_vclzd): Likewise.
3951 (vec_vclzh): Likewise.
3952 (vec_vclzw): Likewise.
3953 (vec_vgbbd): Likewise.
3954 (vec_vmrgew): Likewise.
3955 (vec_vmrgow): Likewise.
3956 (vec_vpopcnt): Likewise.
3957 (vec_vpopcntb): Likewise.
3958 (vec_vpopcntd): Likewise.
3959 (vec_vpopcnth): Likewise.
3960 (vec_vpopcntw): Likewise.
3964 2013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
3965 Pat Haugen <pthaugen@us.ibm.com>
3966 Peter Bergner <bergner@vnet.ibm.com>
3968 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
3972 (vrotl<mode>3): Likewise.
3973 (vashl<mode>3): Likewise.
3974 (vlshr<mode>3): Likewise.
3975 (vashr<mode>3): Likewise.
3977 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3978 support for power8 V2DI builtins.
3980 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
3981 power8 V2DI builtins.
3982 (vupkhsw): Likewise.
3983 (vupklsw): Likewise.
3984 (vaddudm): Likewise.
3989 (vpkudum): Likewise.
3990 (vpksdss): Likewise.
3991 (vpkudus): Likewise.
3992 (vpksdus): Likewise.
3997 (vsubudm): Likewise.
3998 (vcmpequd): Likewise.
3999 (vcmpgtsd): Likewise.
4000 (vcmpgtud): Likewise.
4001 (vcmpequd_p): Likewise.
4002 (vcmpgtsd_p): Likewise.
4003 (vcmpgtud_p): Likewise.
4004 (vupkhsw): Likewise.
4005 (vupklsw): Likewise.
4006 (vaddudm): Likewise.
4011 (vpksdss): Likewise.
4012 (vpksdus): Likewise.
4013 (vpkudum): Likewise.
4014 (vpkudus): Likewise.
4019 (vsubudm): Likewise.
4021 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4022 support for power8 V2DI instructions.
4024 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
4025 power8 V2DI instructions. Combine pack and unpack insns to use an
4026 iterator for each mode. Check whether a particular mode supports
4027 Altivec instructions instead of just checking TARGET_ALTIVEC.
4028 (UNSPEC_VPKUWUM): Likewise.
4029 (UNSPEC_VPKSHSS): Likewise.
4030 (UNSPEC_VPKSWSS): Likewise.
4031 (UNSPEC_VPKUHUS): Likewise.
4032 (UNSPEC_VPKSHUS): Likewise.
4033 (UNSPEC_VPKUWUS): Likewise.
4034 (UNSPEC_VPKSWUS): Likewise.
4035 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
4036 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
4037 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
4038 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
4039 (UNSPEC_VUPKHSB): Likewise.
4040 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
4041 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
4042 (UNSPEC_VUPKHSH): Likewise.
4043 (UNSPEC_VUPKLSB): Likewise.
4044 (UNSPEC_VUPKLSH): Likewise.
4046 (VI_char): Likewise.
4047 (VI_scalar): Likewise.
4048 (VI_unit): Likewise.
4050 (VP_small): Likewise.
4051 (VP_small_lc): Likewise.
4052 (VU_char): Likewise.
4053 (add<mode>3): Likewise.
4054 (altivec_vaddcuw): Likewise.
4055 (altivec_vaddu<VI_char>s): Likewise.
4056 (altivec_vadds<VI_char>s): Likewise.
4057 (sub<mode>3): Likewise.
4058 (altivec_vsubcuw): Likewise.
4059 (altivec_vsubu<VI_char>s): Likewise.
4060 (altivec_vsubs<VI_char>s): Likewise.
4061 (altivec_vavgs<VI_char>): Likewise.
4062 (altivec_vcmpbfp): Likewise.
4063 (altivec_eq<mode>): Likewise.
4064 (altivec_gt<mode>): Likewise.
4065 (altivec_gtu<mode>): Likewise.
4066 (umax<mode>3): Likewise.
4067 (smax<mode>3): Likewise.
4068 (umin<mode>3): Likewise.
4069 (smin<mode>3): Likewise.
4070 (altivec_vpkuhum): Likewise.
4071 (altivec_vpkuwum): Likewise.
4072 (altivec_vpkshss): Likewise.
4073 (altivec_vpkswss): Likewise.
4074 (altivec_vpkuhus): Likewise.
4075 (altivec_vpkshus): Likewise.
4076 (altivec_vpkuwus): Likewise.
4077 (altivec_vpkswus): Likewise.
4078 (altivec_vpks<VI_char>ss): Likewise.
4079 (altivec_vpks<VI_char>us): Likewise.
4080 (altivec_vpku<VI_char>us): Likewise.
4081 (altivec_vpku<VI_char>um): Likewise.
4082 (altivec_vrl<VI_char>): Likewise.
4083 (altivec_vsl<VI_char>): Likewise.
4084 (altivec_vsr<VI_char>): Likewise.
4085 (altivec_vsra<VI_char>): Likewise.
4086 (altivec_vsldoi_<mode>): Likewise.
4087 (altivec_vupkhsb): Likewise.
4088 (altivec_vupkhs<VU_char>): Likewise.
4089 (altivec_vupkls<VU_char>): Likewise.
4090 (altivec_vupkhsh): Likewise.
4091 (altivec_vupklsb): Likewise.
4092 (altivec_vupklsh): Likewise.
4093 (altivec_vcmpequ<VI_char>_p): Likewise.
4094 (altivec_vcmpgts<VI_char>_p): Likewise.
4095 (altivec_vcmpgtu<VI_char>_p): Likewise.
4096 (abs<mode>2): Likewise.
4097 (vec_unpacks_hi_v16qi): Likewise.
4098 (vec_unpacks_hi_v8hi): Likewise.
4099 (vec_unpacks_lo_v16qi): Likewise.
4100 (vec_unpacks_hi_<VP_small_lc>): Likewise.
4101 (vec_unpacks_lo_v8hi): Likewise.
4102 (vec_unpacks_lo_<VP_small_lc>): Likewise.
4103 (vec_pack_trunc_v8h): Likewise.
4104 (vec_pack_trunc_v4si): Likewise.
4105 (vec_pack_trunc_<mode>): Likewise.
4107 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
4109 (vec_vmaxsd): Likewise.
4110 (vec_vmaxud): Likewise.
4111 (vec_vminsd): Likewise.
4112 (vec_vminud): Likewise.
4113 (vec_vpksdss): Likewise.
4114 (vec_vpksdus): Likewise.
4115 (vec_vpkudum): Likewise.
4116 (vec_vpkudus): Likewise.
4117 (vec_vrld): Likewise.
4118 (vec_vsld): Likewise.
4119 (vec_vsrad): Likewise.
4120 (vec_vsrd): Likewise.
4121 (vec_vsubudm): Likewise.
4122 (vec_vupkhsw): Likewise.
4123 (vec_vupklsw): Likewise.
4125 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
4126 Pat Haugen <pthaugen@us.ibm.com>
4127 Peter Bergner <bergner@vnet.ibm.com>
4129 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
4130 documentation for the power8 crypto builtins.
4132 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
4134 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
4135 macros for defining power8 builtin functions.
4136 (BU_P8V_AV_2): Likewise.
4137 (BU_P8V_AV_P): Likewise.
4138 (BU_P8V_VSX_1): Likewise.
4139 (BU_P8V_OVERLOAD_1): Likewise.
4140 (BU_P8V_OVERLOAD_2): Likewise.
4141 (BU_CRYPTO_1): Likewise.
4142 (BU_CRYPTO_2): Likewise.
4143 (BU_CRYPTO_3): Likewise.
4144 (BU_CRYPTO_OVERLOAD_1): Likewise.
4145 (BU_CRYPTO_OVERLOAD_2): Likewise.
4146 (XSCVSPDP): Fix typo, point to the correct instruction.
4147 (VCIPHER): Add power8 crypto builtins.
4148 (VCIPHERLAST): Likewise.
4149 (VNCIPHER): Likewise.
4150 (VNCIPHERLAST): Likewise.
4151 (VPMSUMB): Likewise.
4152 (VPMSUMH): Likewise.
4153 (VPMSUMW): Likewise.
4154 (VPERMXOR_V2DI): Likewise.
4155 (VPERMXOR_V4SI: Likewise.
4156 (VPERMXOR_V8HI: Likewise.
4157 (VPERMXOR_V16QI: Likewise.
4158 (VSHASIGMAW): Likewise.
4159 (VSHASIGMAD): Likewise.
4161 (VPERMXOR): Likewise.
4162 (VSHASIGMA): Likewise.
4164 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
4165 __CRYPTO__ if the crypto instructions are available.
4166 (altivec_overloaded_builtins): Add support for overloaded power8
4169 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
4170 support for power8 crypto builtins.
4171 (builtin_function_type): Likewise.
4172 (altivec_init_builtins): Add support for builtins that take vector
4173 long long (V2DI) arguments.
4175 * config/rs6000/crypto.md: New file, define power8 crypto
4178 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
4179 Pat Haugen <pthaugen@us.ibm.com>
4180 Peter Bergner <bergner@vnet.ibm.com>
4182 * doc/invoke.texi (Option Summary): Add power8 options.
4183 (RS/6000 and PowerPC Options): Likewise.
4185 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
4186 constraints.md instead of rs6000.h. Reorder w* constraints. Add
4187 wm, wn, wr documentation.
4189 * gcc/config/rs6000/constraints.md (wm): New constraint for VSX
4190 registers if direct move instructions are enabled.
4191 (wn): New constraint for no registers.
4192 (wq): New constraint for quad word even GPR registers.
4193 (wr): New constraint if 64-bit instructions are enabled.
4194 (wv): New constraint if power8 vector instructions are enabled.
4195 (wQ): New constraint for quad word memory locations.
4197 * gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
4198 constraint for 0..15 for crypto instructions.
4199 (gpc_reg_operand): If VSX allow registers in VSX registers as well
4200 as GPR and floating point registers.
4201 (int_reg_operand): New predicate to match only GPR registers.
4202 (base_reg_operand): New predicate to match base registers.
4203 (quad_int_reg_operand): New predicate to match even GPR registers
4204 for quad memory operations.
4205 (vsx_reg_or_cint_operand): New predicate to allow vector logical
4206 operations in both GPR and VSX registers.
4207 (quad_memory_operand): New predicate for quad memory operations.
4208 (reg_or_indexed_operand): New predicate for direct move support.
4210 * gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
4211 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
4212 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
4213 (POWERPC_MASKS): Add power8 options.
4214 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
4217 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
4218 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
4220 * gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
4221 (-mpower8-fusion): New power8 options.
4222 (-mpower8-fusion-sign): Likewise.
4223 (-mpower8-vector): Likewise.
4224 (-mcrypto): Likewise.
4225 (-mdirect-move): Likewise.
4226 (-mquad-memory): Likewise.
4228 * gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
4230 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
4232 (rs6000_debug_reg_print): Print the base register class if
4234 (rs6000_debug_vector_unit): Add p8_vector.
4235 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
4236 definitions. Also print fusion state.
4237 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
4238 (rs6000_builtin_mask_calculate): Add power8 builtin support.
4239 (rs6000_option_override_internal): Add support for power8.
4240 (rs6000_common_init_builtins): Add debugging for skipped builtins
4242 (rs6000_adjust_cost): Add power8 support.
4243 (rs6000_issue_rate): Likewise.
4244 (insn_must_be_first_in_group): Likewise.
4245 (insn_must_be_last_in_group): Likewise.
4246 (force_new_group): Likewise.
4247 (rs6000_register_move_cost): Likewise.
4248 (rs6000_opt_masks): Likewise.
4250 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
4251 power8 capable assembler, default to power7 options.
4252 (TARGET_DIRECT_MOVE): Likewise.
4253 (TARGET_CRYPTO): Likewise.
4254 (TARGET_P8_VECTOR): Likewise.
4255 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
4256 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
4257 (VECTOR_MEM_P8_VECTOR_P): Likewise.
4258 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
4259 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
4260 (TARGET_XSCVDPSPN): Likewise.
4261 (TARGET_XSCVSPDPN): Likewsie.
4262 (TARGET_SYNC_HI_QI): Likewise.
4263 (TARGET_SYNC_TI): Likewise.
4264 (MASK_CRYPTO): Likewise.
4265 (MASK_DIRECT_MOVE): Likewise.
4266 (MASK_P8_FUSION): Likewise.
4267 (MASK_P8_VECTOR): Likewise.
4268 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the
4269 TFmode temporary used by some of the direct move instructions to
4270 get two FP temporary registers does not force creation of a stack
4272 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
4273 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
4274 that any VSX registers are tieable, even if they are also an
4275 Altivec vector mode.
4276 (r6000_reg_class_enum): Add wm, wr, wv constraints.
4277 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
4278 (RS6000_BTM_CRYPTO): Likewise.
4279 (RS6000_BTM_COMMON): Likewise.
4281 * config/rs6000/rs6000.md (cpu attribute): Add power8.
4282 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
4283 (enum rs6000_vector): Add power8 vector support.
4286 Backport from mainline
4287 2013-03-20 Pat Haugen <pthaugen@us.ibm.com>
4289 * config/rs6000/predicates.md (indexed_address, update_address_mem
4290 update_indexed_address_mem): New predicates.
4291 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
4292 attribute for load/store instructions.
4293 * config/rs6000/dfp.md (movsd_store): Likewise.
4294 (movsd_load): Likewise.
4295 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
4296 (unnamed HI->DI extend define_insn): Likewise.
4297 (unnamed SI->DI extend define_insn): Likewise.
4298 (unnamed QI->SI extend define_insn): Likewise.
4299 (unnamed QI->HI extend define_insn): Likewise.
4300 (unnamed HI->SI extend define_insn): Likewise.
4301 (unnamed HI->SI extend define_insn): Likewise.
4302 (extendsfdf2_fpr): Likewise.
4303 (movsi_internal1): Likewise.
4304 (movsi_internal1_single): Likewise.
4305 (movhi_internal): Likewise.
4306 (movqi_internal): Likewise.
4307 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
4308 attribute for load/store instructions.
4309 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
4311 (mov<mode>_softfloat): Likewise.
4312 (mov<mode>_hardfloat32): Likewise.
4313 (mov<mode>_hardfloat64): Likewise.
4314 (mov<mode>_softfloat64): Likewise.
4315 (movdi_internal32): Likewise.
4316 (movdi_internal64): Likewise.
4317 (probe_stack_<mode>): Likewise.
4319 Backport from mainline
4320 2013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
4322 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
4323 floating point, and decimal floating point to reload iterator.
4325 * config/rs6000/constraints.md (wl constraint): New constraints to
4326 return FLOAT_REGS if certain options are used to reduce the number
4327 of separate patterns that exist in the file.
4328 (wx constraint): Likewise.
4329 (wz constraint): Likewise.
4331 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
4332 -mdebug=reg, print wg, wl, wx, and wz constraints.
4333 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
4334 Initialize the reload functions for 64-bit binary/decimal floating
4336 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
4337 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
4338 create the buffer on the stack to overcome not having a 32-bit
4340 (rs6000_emit_move): Likewise.
4341 (rs6000_secondary_memory_needed_rtx): Likewise.
4342 (rs6000_alloc_sdmode_stack_slot): Likewise.
4343 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
4344 via xxlxor, just like DFmode 0.0.
4346 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro)
4347 (define as 1 if we are running on a power7 or newer.
4348 (enum r6000_reg_class_enum): Add new constraints.
4350 * config/rs6000/dfp.md (movsd): Delete, combine with binary
4351 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
4352 with other moves by using conditional constraits (wg). Use LFIWZX
4353 and STFIWX for loading SDmode on power7. Use xxlxor to create
4355 (movsd splitter): Likewise.
4356 (movsd_hardfloat): Likewise.
4357 (movsd_softfloat): Likewise.
4359 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
4360 binary and decimal floating point moves.
4361 (fmove_ok): New attributes to combine binary and decimal floating
4362 point moves, and to combine power6x (mfpgpr) moves along normal
4364 (real_value_to_target): Likewise.
4371 (movsf): Combine binary and decimal floating point moves. Combine
4372 power6x (mfpgpr) moves with other moves by using conditional
4373 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on
4375 (mov<mode> for SFmode/SDmode); Likewise.
4376 (SFmode/SDmode splitters): Likewise.
4377 (movsf_hardfloat): Likewise.
4378 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
4379 (movsf_softfloat): Likewise.
4380 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
4382 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl)
4383 (wx and wz constraints.
4385 * config/rs6000/constraints.md (wg constraint): New constraint to
4386 return FLOAT_REGS if -mmfpgpr (power6x) was used.
4388 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
4391 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
4392 -mdebug=reg, print wg, wl, wx, and wz constraints.
4393 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
4394 Initialize the reload functions for 64-bit binary/decimal floating
4396 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
4397 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
4398 create the buffer on the stack to overcome not having a 32-bit
4400 (rs6000_emit_move): Likewise.
4401 (rs6000_secondary_memory_needed_rtx): Likewise.
4402 (rs6000_alloc_sdmode_stack_slot): Likewise.
4403 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
4404 via xxlxor, just like DFmode 0.0.
4407 * config/rs6000/dfp.md (movdd): Delete, combine with binary
4408 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
4409 with other moves by using conditional constraits (wg). Use LFIWZX
4410 and STFIWX for loading SDmode on power7.
4411 (movdd splitters): Likewise.
4412 (movdd_hardfloat32): Likewise.
4413 (movdd_softfloat32): Likewise.
4414 (movdd_hardfloat64_mfpgpr): Likewise.
4415 (movdd_hardfloat64): Likewise.
4416 (movdd_softfloat64): Likewise.
4418 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
4419 64-bit binary and decimal floating point moves.
4420 (FMOVE64X): Likewise.
4421 (movdf): Combine 64-bit binary and decimal floating point moves.
4422 Combine power6x (mfpgpr) moves with other moves by using
4423 conditional constraits (wg).
4424 (mov<mode> for DFmode/DDmode): Likewise.
4425 (DFmode/DDmode splitters): Likewise.
4426 (movdf_hardfloat32): Likewise.
4427 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
4428 (movdf_softfloat32): Likewise.
4429 (movdf_hardfloat64_mfpgpr): Likewise.
4430 (movdf_hardfloat64): Likewise.
4431 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
4432 (movdf_softfloat64): Likewise.
4433 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
4434 (reload_<mode>_load): Move to later in the file so they aren't in
4435 the middle of the floating point move insns.
4436 (reload_<mode>_store): Likewise.
4438 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
4441 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
4442 constraint if -mdebug=reg.
4443 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if
4444 -mfpgpr. Enable using dd reload support if needed.
4446 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
4447 binary and decimal floating point moves in rs6000.md.
4448 (movtd_internal): Likewise.
4450 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
4451 decimal floating point moves.
4453 (movtf_internal): Likewise.
4454 (mov<mode>_internal, TDmode/TFmode): Likewise.
4455 (movtf_softfloat): Likewise.
4456 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
4458 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
4459 movdi_internal64, using wg constraint for move direct operations.
4460 (movdi_internal64): Likewise.
4462 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
4463 MODES_TIEABLE_P for selected modes. Print the numerical value of
4464 the various virtual registers. Use GPR/FPR first/last values)
4465 (instead of hard coding the register numbers. Print which modes
4466 have reload functions registered.
4467 (rs6000_option_override_internal): If -mdebug=reg, trace the
4468 options settings before/after setting cpu, target and subtarget
4470 (rs6000_secondary_reload_trace): Improve the RTL dump for
4471 -mdebug=addr and for secondary reload failures in
4472 rs6000_secondary_reload_inner.
4473 (rs6000_secondary_reload_fail): Likewise.
4474 (rs6000_secondary_reload_inner): Likewise.
4476 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
4477 macros for first/last GPR and FPR registers.
4478 (LAST_GPR_REGNO): Likewise.
4479 (FIRST_FPR_REGNO): Likewise.
4480 (LAST_FPR_REGNO): Likewise.
4482 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
4483 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
4484 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
4485 (vcond<mode><mode>): Likewise.
4486 (vcondu<mode><mode>): Likewise.
4487 (vector_gtu<mode>): Likewise.
4488 (vector_gte<mode>): Likewise.
4489 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
4490 to prevent the compiler from converting DImode operations to
4492 (ior<mode>3): Likewise.
4493 (and<mode>3): Likewise.
4494 (one_cmpl<mode>2): Likewise.
4495 (nor<mode>3): Likewise.
4496 (andc<mode>3): Likewise.
4498 * config/rs6000/constraints.md (wt constraint): New constraint
4499 that returns VSX_REGS if TImode is allowed in VSX registers.
4501 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
4504 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
4505 similar to TImode, but it is restricted to being in the GPRs.
4507 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
4508 TImode to occupy a single VSX register.
4510 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
4511 -mvsx-timode for power7/power8.
4512 (power7 cpu): Likewise.
4513 (power8 cpu): Likewise.
4515 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
4516 sure that TFmode/TDmode take up two registers if they are ever
4517 allowed in the upper VSX registers.
4518 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
4520 (rs6000_init_hard_regno_mode_ok): Likewise.
4521 (rs6000_debug_reg_global): Add debugging for PTImode and wt
4522 constraint. Print if LRA is turned on.
4523 (rs6000_option_override_internal): Give an error if -mvsx-timode
4524 and VSX is not enabled.
4525 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
4526 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
4527 to reg+offset addressing. Use PTImode when checking offset
4528 addresses for validity.
4529 (reg_offset_addressing_ok_p): Likewise.
4530 (rs6000_legitimate_offset_address_p): Likewise.
4531 (rs6000_legitimize_address): Likewise.
4532 (rs6000_legitimize_reload_address): Likewise.
4533 (rs6000_legitimate_address_p): Likewise.
4534 (rs6000_eliminate_indexed_memrefs): Likewise.
4535 (rs6000_emit_move): Likewise.
4536 (rs6000_secondary_reload): Likewise.
4537 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
4538 reloads to fpr registers to continue to use reg+offset addressing)
4539 (but 64-bit reloads to altivec registers need reg+reg addressing.
4540 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
4541 it. Treat LO_SUM like a PLUS operation.
4542 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
4543 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset
4545 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
4546 registers to share a register with a smaller sized type, since VSX
4547 puts scalars in the upper 64-bits.
4548 (print_operand): Add support for PTImode.
4549 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
4550 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
4551 registers, but don't have arithmetic support.
4552 (rs6000_memory_move_cost): Add test for VSX.
4553 (rs6000_opt_masks): Add -mvsx-timode.
4555 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
4558 (VSr): Use wt constraint for TImode.
4559 (VSv): Drop TImode support.
4560 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
4561 (vsx_movti_64bit): Likewise.
4562 (vsx_movti_32bit): Likewise.
4563 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
4564 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
4565 one '?' on the appropriate output constraint. Do not allow TImode
4566 logical operations on 32-bit systems.
4567 (vsx_ior<mode>3): Likewise.
4568 (vsx_xor<mode>3): Likewise.
4569 (vsx_one_cmpl<mode>2): Likewise.
4570 (vsx_nor<mode>3): Likewise.
4571 (vsx_andc<mode>3): Likewise.
4572 (vsx_concat_<mode>): Likewise.
4573 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
4575 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
4576 OPTION_MASK_VSX_TIMODE.
4577 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
4578 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
4580 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
4581 (TI2 iterator): New iterator for TImode, PTImode.
4582 (wd mode attribute): Add values for vector types.
4583 (movti_string): Replace TI move operations with operations for
4584 TImode and PTImode. Add support for TImode being allowed in VSX
4586 (mov<mode>_string, TImode/PTImode): Likewise.
4587 (movti_ppc64): Likewise.
4588 (mov<mode>_ppc64, TImode/PTImode): Likewise.
4589 (TI mode splitters): Likewise.
4591 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
4594 2014-04-04 Richard Biener <rguenther@suse.de>
4596 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
4598 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4600 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
4602 2014-04-01 Richard Biener <rguenther@suse.de>
4604 * gimple.h (struct gimple_statement_base): Align subcode to
4607 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
4609 * doc/invoke.texi (mapp-regs): Clarify.
4611 2014-03-31 H.J. Lu <hongjiu.lu@intel.com>
4613 PR rtl-optimization/60700
4614 Backport from mainline
4615 2013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4617 PR rtl-optimization/57637
4618 * function.c (move_insn_for_shrink_wrap): Also check the
4619 GEN set of the LIVE problem for the liveness analysis
4620 if it exists, otherwise give up.
4622 2014-03-30 Kaz Kojima <kkojima@gcc.gnu.org>
4624 Backport from mainline
4625 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
4628 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
4630 2014-03-26 Martin Jambor <mjambor@suse.cz>
4633 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk and
4634 alias flags of nodes in the border.
4636 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
4638 PR rtl-optimization/60452
4639 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
4640 <case REG>: Return 1 for invalid offsets from the frame pointer.
4642 2014-03-24 Richard Biener <rguenther@suse.de>
4644 PR tree-optimization/60429
4645 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Remove
4648 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
4650 PR rtl-optimization/60601
4651 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
4653 * gcc.c (eval_spec_function): Initialize save_growing_value.
4655 2014-03-20 Jakub Jelinek <jakub@redhat.com>
4658 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
4659 into CONST, put pic register as first operand of PLUS. Use
4660 gen_const_mem for both 32-bit and 64-bit PIC got loads.
4662 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
4664 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
4665 around for store forwarding issue in the FPU on the UT699.
4666 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
4667 loads and operations if -mfix-ut699 is specified.
4668 (divtf3_hq): Tweak attribute.
4669 (sqrttf2_hq): Likewise.
4671 2014-03-18 Kai Tietz <ktietz@redhat.com>
4673 PR rtl-optimization/56356
4674 * sdbout.c (sdbout_parms): Verify that parms'
4675 incoming argument is valid.
4676 (sdbout_reg_parms): Likewise.
4678 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
4680 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
4681 proper constant for the store mode.
4683 2014-03-17 Mikael Pettersson <mikpelinux@gmail.com>
4684 Committed by Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4686 Backport from mainline:
4688 2013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
4690 PR rtl-optimization/57425
4691 PR rtl-optimization/57569
4692 * alias.c (write_dependence_p): Remove parameters mem_mode and
4693 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
4694 Changed all callers.
4695 (canon_anti_dependence): Get comments and semantics in sync.
4696 Add parameter mem_canonicalized. Changed all callers.
4697 * rtl.h (canon_anti_dependence): Update prototype.
4699 2013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
4701 PR rtl-optimization/57425
4702 PR rtl-optimization/57569
4703 * alias.c (write_dependence_p): Add new parameters mem_mode,
4704 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
4705 Changed all callers.
4706 (canon_anti_dependence): New function.
4707 * cse.c (check_dependence): Use canon_anti_dependence.
4708 * cselib.c (cselib_invalidate_mem): Likewise.
4709 * rtl.h (canon_anti_dependence): Declare.
4711 2014-03-17 Richard Biener <rguenther@suse.de>
4713 Backport from mainline
4714 2014-03-11 Richard Biener <rguenther@suse.de>
4716 PR tree-optimization/60429
4717 PR tree-optimization/60485
4718 * tree-ssa-structalias.c (set_union_with_increment): Properly
4719 take into account all fields that overlap the shifted vars.
4720 (do_sd_constraint): Likewise.
4721 (do_ds_constraint): Likewise.
4722 (get_constraint_for_ptr_offset): Likewise.
4724 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
4726 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
4727 (eligible_for_call_delay): New prototype.
4728 * config/sparc/sparc.c (tls_call_delay): Rename into...
4729 (eligible_for_call_delay): ...this. Return false if the instruction
4730 cannot be put in the delay slot of a branch.
4731 (eligible_for_restore_insn): Simplify.
4732 (eligible_for_return_delay): Return false if the instruction cannot be
4733 put in the delay slot of a branch and simplify.
4734 (eligible_for_sibcall_delay): Return false if the instruction cannot be
4735 put in the delay slot of a branch.
4736 * config/sparc/sparc.md (fix_ut699): New attribute.
4737 (tls_call_delay): Delete.
4738 (in_call_delay): Reimplement.
4739 (eligible_for_sibcall_delay): Rename into...
4740 (in_sibcall_delay): ...this.
4741 (eligible_for_return_delay): Rename into...
4742 (in_return_delay): ...this.
4743 (in_branch_delay): Reimplement.
4744 (in_uncond_branch_delay): Delete.
4745 (in_annul_branch_delay): Delete.
4747 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
4749 Backport from 2014-03-14 trunk r208562.
4752 * config/avr/avr.c (avr_set_current_function): Pass function name
4753 through default_strip_name_encoding before sanity checking instead
4754 of skipping the first char of the assembler name.
4756 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
4758 Backport from 2014-03-13 trunk r208532.
4761 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
4762 calls of avr_out_plus_1.
4764 2014-03-13 Joey Ye <joey.ye@arm.com>
4766 Backport from mainline
4767 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
4769 PR tree-optimization/60454
4770 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
4772 2014-03-06 Matthias Klose <doko@ubuntu.com>
4774 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
4775 MULTILIB_OSDIRNAMES is not defined.
4777 2014-03-06 Jakub Jelinek <jakub@redhat.com>
4779 PR tree-optimization/60276
4780 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Avoid
4781 a -Wsign-compare warning.
4783 * Makefile.in (tree-ssa-uninit.o): Depend on $(PARAMS_H).
4785 Backport from mainline
4786 2014-02-21 Jakub Jelinek <jakub@redhat.com>
4788 PR tree-optimization/56490
4789 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
4790 * tree-ssa-uninit.c: Include params.h.
4791 (compute_control_dep_chain): Add num_calls argument, return false
4792 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
4793 num_calls to recursive call.
4794 (find_predicates): Change dep_chain into normal array, add num_calls
4795 variable and adjust compute_control_dep_chain caller.
4796 (find_def_preds): Likewise.
4798 2014-02-13 Jakub Jelinek <jakub@redhat.com>
4801 * expr.c (compress_float_constant): If x is a hard register,
4802 extend into a pseudo and then move to x.
4804 2014-02-11 Richard Henderson <rth@redhat.com>
4805 Jakub Jelinek <jakub@redhat.com>
4808 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
4809 around drhs if type conversion to lacc->type is not useless.
4811 2014-02-08 Jakub Jelinek <jakub@redhat.com>
4814 * ipa-cp.c (determine_versionability): Fail at -O0
4815 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
4816 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
4818 2014-02-06 Jakub Jelinek <jakub@redhat.com>
4821 * tree.h (opts_for_fn): New inline function.
4822 (opt_for_fn): Define.
4823 * config/i386/i386.c (ix86_function_regparm): Use
4824 opt_for_fn (decl, optimize) instead of optimize.
4826 2014-02-05 Jakub Jelinek <jakub@redhat.com>
4829 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
4830 bb with no successors.
4832 2014-03-04 Richard Biener <rguenther@suse.de>
4834 PR tree-optimization/60382
4835 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
4836 dead PHIs a reduction.
4838 2014-02-25 Richard Biener <rguenther@suse.de>
4840 Backport from mainline
4841 2014-02-21 Richard Biener <rguenther@suse.de>
4843 PR tree-optimization/60276
4844 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
4845 (STMT_VINFO_MIN_NEG_DIST): New macro.
4846 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
4847 STMT_VINFO_MIN_NEG_DIST.
4848 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
4849 made for negative dependence distances still hold.
4851 2014-02-25 Richard Biener <rguenther@suse.de>
4853 Backport from mainline
4854 2014-02-21 Richard Biener <rguenther@suse.de>
4857 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
4858 DECL_INITIAL for globals not in the current function context.
4860 2014-02-20 Richard Biener <rguenther@suse.de>
4863 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
4866 2014-02-14 Richard Biener <rguenther@suse.de>
4868 PR tree-optimization/60183
4869 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating
4871 (tree_ssa_phiprop): Calculate and free post-dominators.
4873 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4876 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
4879 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
4881 * config/pa/pa.c (pa_output_move_double): Don't valididate when
4882 adjusting offsetable addresses.
4884 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
4886 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg names
4888 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
4890 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
4893 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
4895 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk
4896 and define TARGET_ASM_OUTPUT_MI_THUNK and
4897 TARGET_ASM_CAN_OUTPUT_MI_THUNK.
4899 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
4901 * config/microblaze/predicates.md: Add cmp_op predicate.
4902 * config/microblaze/microblaze.md: Add branch_compare instruction
4903 which uses cmp_op predicate and emits cmp insn before branch.
4904 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
4905 to microblaze_expand_conditional_branch and consolidate logic.
4906 (microblaze_expand_conditional_branch): emit branch_compare
4907 insn instead of handling cmp op separate from branch insn.
4909 2014-02-21 Martin Jambor <mjambor@suse.cz>
4912 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
4913 info when checking whether lattices are bottom.
4915 2014-02-21 Jakub Jelinek <jakub@redhat.com>
4917 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
4918 mode for mask of V8SFmode permutation.
4920 2014-02-20 Richard Henderson <rth@redhat.com>
4923 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
4924 on failure the store back into EXPECT. Always make a new pseudo for
4927 2014-02-20 Jakub Jelinek <jakub@redhat.com>
4930 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
4931 gen_reg_rtx if d->testing_p.
4932 (expand_vec_perm_pshufb2, expand_vec_perm_even_odd_1,
4933 expand_vec_perm_broadcast_1): Return early if d->testing_p and
4934 we will certainly return true.
4936 2014-02-20 Richard Biener <rguenther@suse.de>
4938 * tree-cfg.c (replace_uses_by): Mark altered BBs before
4939 doing the substitution.
4941 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
4943 Backport from mainline
4944 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
4947 * config/i386/i386.c (construct_container): Remove TFmode check
4948 for X86_64_INTEGER_CLASS.
4950 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
4952 Backport from mainline
4953 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
4956 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
4957 only when -Wpsabi is enabled.
4959 2014-02-19 Terry Guo <terry.guo@arm.com>
4961 Backport from mainline
4962 2014-02-08 Terry Guo <terry.guo@arm.com>
4964 * doc/invoke.texi: Document ARM -march=armv7e-m.
4966 2014-02-18 Kai Tietz <ktietz@redhat.com>
4968 Backport from mainline
4969 2014-02-18 Kai Tietz <ktietz@redhat.com>
4972 * config/i386/i386.c (ix86_expand_prologue): Use
4973 rax register as displacement for restoring %r10, %rax.
4974 Additional fix wrong offset for restoring both-registers.
4976 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
4978 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
4979 assertion with conditional return.
4981 2014-02-18 Jakub Jelinek <jakub@redhat.com>
4982 Uros Bizjak <ubizjak@gmail.com>
4985 * config/i386/driver-i386.c (host_detect_local_cpu): If
4986 YMM state is not saved by the OS, also clear has_f16c. Move
4987 CPUID 0x80000001 handling before YMM state saving checking.
4989 2014-02-14 Roland McGrath <mcgrathr@google.com>
4991 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
4992 * configure: Regenerated.
4993 * config.in: Regenerated.
4994 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
4995 instead of ASM_SHORT.
4997 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
4999 Backport from mainline
5000 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
5002 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
5003 operands[2], not operands[3].
5005 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
5007 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
5008 caused by bad second argument to warning_at() with -mhotpatch and
5009 nested functions (e.g. with gfortran).
5011 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
5013 Backport from mainline
5014 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
5015 Uros Bizjak <ubizjak@gmail.com>
5018 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
5020 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
5022 PR rtl-optimization/60116
5023 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
5024 other_insn once the combination has been validated.
5026 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
5028 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
5029 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
5031 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
5033 * config/microblaze/microblaze.c: Extend mcpu version format
5035 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
5037 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
5039 2014-02-10 Richard Biener <rguenther@suse.de>
5041 Backport from mainline
5042 2014-01-30 Richard Biener <rguenther@suse.de>
5044 PR tree-optimization/59903
5045 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
5048 2014-02-10 Richard Biener <rguenther@suse.de>
5050 PR tree-optimization/60115
5051 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
5052 MEM_REF handling. Properly verify that the accesses are not
5053 out of the objects bound.
5055 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
5057 Backport from mainline.
5058 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
5061 * doc/invoke.texi (-march): Clarify documentation for ARM.
5065 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
5068 * config/pa/pa.c (legitimize_tls_address): Return original address
5069 if not passed a SYMBOL_REF rtx.
5070 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
5072 (pa_emit_move_sequence): Simplify TLS source operands.
5073 (pa_legitimate_constant_p): Reject all TLS constants.
5074 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
5075 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
5077 2014-02-04 Uros Bizjak <ubizjak@gmail.com>
5079 Backport from mainline
5080 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
5083 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
5084 when calculating size of integer atomic types.
5086 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
5088 Backport from mainline
5089 2014-01-30 Jakub Jelinek <jakub@redhat.com>
5091 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
5093 2014-01-31 Richard Henderson <rth@redhat.com>
5096 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
5097 until after else_eh is processed.
5099 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
5101 Backport from mainline
5102 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
5103 comparison_operator with ordered_comparison_operator.
5105 2014-01-25 Walter Lee <walt@tilera.com>
5107 Backport from mainline
5108 2014-01-25 Walter Lee <walt@tilera.com>
5110 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
5111 avoid clobbering a live register.
5113 2014-01-25 Walter Lee <walt@tilera.com>
5115 Backport from mainline
5116 2014-01-25 Walter Lee <walt@tilera.com>
5118 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
5119 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
5120 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
5121 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
5123 2014-01-25 Walter Lee <walt@tilera.com>
5125 Backport from mainline
5126 2014-01-25 Walter Lee <walt@tilera.com>
5128 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
5129 insns before bundling.
5130 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
5132 2014-01-25 Walter Lee <walt@tilera.com>
5134 Backport from mainline
5135 2014-01-25 Walter Lee <walt@tilera.com>
5137 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
5138 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
5139 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
5141 2014-01-25 Walter Lee <walt@tilera.com>
5143 Backport from mainline
5144 2014-01-25 Walter Lee <walt@tilera.com>
5146 * config/tilepro/tilepro.md (ctzdi2): Use register_operand
5151 2014-01-25 Walter Lee <walt@tilera.com>
5153 Backport from mainline
5154 2014-01-25 Walter Lee <walt@tilera.com>
5156 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
5157 (TARGET_EXPAND_TO_RTL_HOOK): Define.
5159 2014-01-24 H.J. Lu <hongjiu.lu@intel.com>
5161 Backport from mainline
5162 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
5165 * config/i386/i386.md (pushsf splitter): Get stack adjustment
5166 from push operand if code of push isn't PRE_DEC.
5168 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
5170 Backport from mainline.
5171 * config/microblaze/microblaze.md: Add trap insn and attribute
5173 2014-01-23 Marek Polacek <polacek@redhat.com>
5175 Backport from mainline
5176 2013-10-21 Marek Polacek <polacek@redhat.com>
5179 * fold-const.c (fold_range_test): Return 0 if the type is not
5182 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
5184 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
5186 2014-01-22 Uros Bizjak <ubizjak@gmail.com>
5188 Backport from mainline
5189 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
5191 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
5192 for SImode_address_operand operands, having only a REG argument.
5194 2014-01-20 Jakub Jelinek <jakub@redhat.com>
5197 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
5198 if operands[1] is a REG or ZERO_EXTEND of a REG.
5200 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
5201 H.J. Lu <hongjiu.lu@intel.com>
5204 * config/i386/i386.md (*lea<mode>): Zero-extend return register
5205 to DImode for zero-extended addresses.
5207 2014-01-21 Andrew Pinski <apinski@cavium.com>
5208 Steve Ellcey <sellcey@mips.com>
5211 * config/mips/mips.c (mips_print_operand): Check operand mode instead
5214 2014-01-21 Andrey Belevantsev <abel@ispras.ru>
5216 Backport from mainline
5217 2013-12-23 Andrey Belevantsev <abel@ispras.ru>
5219 PR rtl-optimization/57422
5220 * sel-sched.c (mark_unavailable_hard_regs): Fix typo when calling
5221 add_to_hard_reg_set.
5223 2014-01-20 Jakub Jelinek <jakub@redhat.com>
5226 * tree.h (fold_builtin_strcat): New prototype.
5227 * builtins.c (fold_builtin_strcat): No longer static. Add len
5228 argument, if non-NULL, don't call c_strlen. Optimize
5229 directly into __builtin_memcpy instead of __builtin_strcpy.
5230 (fold_builtin_2): Adjust fold_builtin_strcat caller.
5231 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
5233 2014-01-20 Richard Biener <rguenther@suse.de>
5236 * builtins.c (fold_builtin_strcat): Remove case better handled
5237 by tree-ssa-strlen.c.
5239 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
5241 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
5242 long non-pic millicode calls.
5244 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
5246 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
5247 call to $$dyncall when TARGET_LONG_CALLS is true.
5249 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
5251 Backport from mainline
5252 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
5255 * config/i386/i386.c (type_natural_mode): Add a bool parameter
5256 to indicate if type is used for function return value. Warn
5257 ABI change if the vector mode isn't available for function
5259 (ix86_function_arg_advance): Pass false to type_natural_mode.
5260 (ix86_function_arg): Likewise.
5261 (ix86_gimplify_va_arg): Likewise.
5262 (function_arg_32): Don't warn ABI change.
5263 (ix86_function_value): Pass true to type_natural_mode.
5264 (ix86_return_in_memory): Likewise.
5265 (ix86_struct_value_rtx): Removed.
5266 (TARGET_STRUCT_VALUE_RTX): Likewise.
5268 2014-01-17 Charles Baylis <charles.baylis@linaro.org>
5270 Backport from mainline
5271 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
5274 * config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb
5276 * config/arm/ldmstm.md: Regenerate.
5278 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
5281 * config/arm/predicates.md (arm_hard_general_register_operand):
5283 (arm_hard_register_operand): Remove.
5284 * config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand
5286 * config/arm/ldmstm.md: Regenerate.
5288 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
5291 * config/arm/predicates.md (vfp_hard_register_operand): New predicate.
5292 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use
5293 vfp_hard_register_operand.
5295 2014-01-17 Kugan Vivekanandarajah <kuganv@linaro.org>
5297 Backport from mainline
5298 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5299 Kugan Vivekanandarajah <kuganv@linaro.org>
5302 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
5305 2014-01-17 Terry Guo <terry.guo@arm.com>
5308 * config/arm/arm.md (prefetch): Set insn type attribute to load1.
5310 2014-01-16 Jakub Jelinek <jakub@redhat.com>
5313 * config/i386/i386.c (ix86_expand_builtin): If target doesn't
5314 satisfy operand 0 predicate for gathers, use a new pseudo as
5317 2014-01-16 Richard Henderson <rth@redhat.com>
5320 * reginfo.c (global_regs_decl): Globalize.
5321 * rtl.h (global_regs_decl): Declare.
5322 * ira.c (do_reload): Diagnose frame_pointer_needed and it
5323 reserved via global_regs.
5325 2014-01-16 Peter Bergner <bergner@vnet.ibm.com>
5327 Backport from mainline
5328 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
5330 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
5331 VALID_AVX256_REG_OR_OI_MODE.
5333 2013-09-05 Peter Bergner <bergner@vnet.ibm.com>
5336 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
5337 looking for widest mode.
5339 2014-01-16 Marek Polacek <polacek@redhat.com>
5341 Backported from mainline
5342 2014-01-16 Marek Polacek <polacek@redhat.com>
5345 * gimple-low.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
5346 it is error_mark_node.
5348 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5351 * config/s390/s390.c (s390_preferred_reload_class): Don't return
5352 ADDR_REGS for invalid symrefs in non-PIC code.
5354 2014-01-14 Uros Bizjak <ubizjak@gmail.com>
5357 2014-01-08 Uros Bizjak <ubizjak@gmail.com>
5359 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
5360 from prefetch_block tune setting.
5362 2014-01-13 Jakub Jelinek <jakub@redhat.com>
5364 Backported from mainline
5365 2014-01-10 Jakub Jelinek <jakub@redhat.com>
5367 PR tree-optimization/59745
5368 * tree-predcom.c (tree_predictive_commoning_loop): Call
5369 free_affine_expand_cache if giving up because components is NULL.
5371 2014-01-10 Yufeng Zhang <yufeng.zhang@arm.com>
5373 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
5374 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
5375 rtx is const0_rtx or not.
5377 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5379 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
5380 extraction in good case.
5382 2014-01-10 Huacai Chen <chenhc@lemote.com>
5384 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
5385 kernel strings for Loongson-2E/2F/3A.
5387 2014-01-10 Richard Biener <rguenther@suse.de>
5389 PR tree-optimization/59715
5390 * tree-flow.h (split_critical_edges): Declare.
5391 * tree-cfg.c (split_critical_edges): Export.
5392 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
5394 2014-01-09 Richard Sandiford <rdsandiford@googlemail.com>
5396 * config/mips/mips.h (ISA_HAS_WSBH): Define.
5397 * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
5399 (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.
5401 2014-01-09 Richard Sandiford <rdsandiford@googlemail.com>
5403 PR rtl-optimization/59137
5404 * reorg.c (steal_delay_list_from_target): Call update_block for
5406 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
5408 2014-01-09 Richard Sandiford <rdsandiford@googlemail.com>
5411 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
5413 * config/mips/mips.c (mips_truncated_op_cost): New function.
5414 (mips_rtx_costs): Adjust test for BADDU.
5415 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
5417 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
5419 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
5420 (*baddu_si): ...this new pattern.
5422 2014-01-09 Richard Biener <rguenther@suse.de>
5424 Backport from mainline
5425 2013-11-18 Richard Biener <rguenther@suse.de>
5427 PR tree-optimization/59125
5428 PR tree-optimization/54570
5429 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining
5430 is not complete do not treat component-references with offset zero
5431 but different fields as equal.
5432 * tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h.
5433 (compute_object_sizes): Apply TLC. Propagate the constant
5434 results into all uses and fold their stmts.
5435 * passes.def (pass_all_optimizations): Move pass_object_sizes
5436 after the first pass_forwprop and before pass_fre.
5438 2013-12-03 Jakub Jelinek <jakub@redhat.com>
5440 PR tree-optimization/59362
5441 * tree-object-size.c (object_sizes): Change into array of
5442 vec<unsigned HOST_WIDE_INT>.
5443 (compute_builtin_object_size): Check computed bitmap for
5444 non-NULL instead of object_sizes. Call safe_grow on object_sizes
5445 vector if new SSA_NAMEs appeared.
5446 (init_object_sizes): Check computed bitmap for non-NULL.
5447 Call safe_grow on object_sizes elements instead of initializing
5449 (fini_object_sizes): Call release on object_sizes elements, don't
5452 2014-01-09 Richard Earnshaw <rearnsha@arm.com>
5454 PR rtl-optimization/54300
5455 * regcprop.c (copyprop_hardreg_forward_1): Ensure any unused
5456 outputs in a single-set are killed from the value chains.
5458 2014-01-09 Jakub Jelinek <jakub@redhat.com>
5460 PR rtl-optimization/59724
5461 * ifcvt.c (cond_exec_process_if_block): Don't call
5462 flow_find_head_matching_sequence with 0 longest_match.
5463 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
5464 non-active insns if !stop_after.
5465 (try_head_merge_bb): Revert 2014-01-07 changes.
5467 2014-01-09 Hans-Peter Nilsson <hp@axis.com>
5469 Backport from mainline
5470 2013-12-23 Hans-Peter Nilsson <hp@axis.com>
5473 * config/cris/predicates.md (cris_nonsp_register_operand):
5474 New define_predicate.
5475 * config/cris/cris.md: Replace register_operand with
5476 cris_nonsp_register_operand for destinations in all
5477 define_splits where a register is set more than once.
5479 2014-01-08 H.J. Lu <hongjiu.lu@intel.com>
5481 Backport from mainline
5482 2013-12-25 H.J. Lu <hongjiu.lu@intel.com>
5485 * config/i386/i386.c (struct ptt): Add a field for processor name.
5486 (processor_target_table): Sync with processor_type. Add
5488 (cpu_names): Removed.
5489 (ix86_option_override_internal): Default x_ix86_tune_string
5490 to processor_target_table[TARGET_CPU_DEFAULT].name.
5491 (ix86_function_specific_print): Assert arch and tune <
5492 PROCESSOR_max. Use processor_target_table to print arch and
5494 * config/i386/i386.h (TARGET_CPU_DEFAULT): Default to
5495 PROCESSOR_GENERIC32.
5496 (target_cpu_default): Removed.
5497 (processor_type): Reordered.
5499 2014-01-08 Uros Bizjak <ubizjak@gmail.com>
5501 Backport from mainline
5502 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
5504 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
5505 from prefetch_block tune setting.
5506 (nocona_cost): Correct size of prefetch block to 64.
5508 2014-01-08 Martin Jambor <mjambor@suse.cz>
5511 * ipa-prop.c (ipa_compute_jump_functions): Bail out if not optimizing.
5512 (parm_preserved_before_stmt_p): Assume modification present when not
5515 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
5518 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
5519 for 14-bit register offsets when INT14_OK_STRICT is false.
5521 2014-01-07 Roland Stigge <stigge@antcom.de>
5522 Michael Meissner <meissner@linux.vnet.ibm.com>
5525 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
5526 Only check TFmode for SPE constants. Don't check TImode or TDmode.
5528 2014-01-07 Jakub Jelinek <jakub@redhat.com>
5530 PR rtl-optimization/58668
5531 * cfgcleanup.c (flow_find_cross_jump): Don't count
5532 any jumps if dir_p is NULL. Remove p1 variable and make USE/CLOBBER
5533 check consistent with other places.
5534 (flow_find_head_matching_sequence): Don't count USE or CLOBBER insns.
5535 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
5537 * ifcvt.c (count_bb_insns): Don't count USE or CLOBBER insns.
5539 2014-01-07 Mike Stump <mikestump@comcast.net>
5540 Jakub Jelinek <jakub@redhat.com>
5543 * tree.h (struct tree_optimization_option): Change optabs
5544 type from unsigned char * to void *.
5545 * optabs.c (init_tree_optimization_optabs): Adjust
5546 TREE_OPTIMIZATION_OPTABS initialization.
5548 2014-01-07 Jakub Jelinek <jakub@redhat.com>
5550 Backported from mainline
5551 2013-12-16 Jakub Jelinek <jakub@redhat.com>
5555 * gimple.h (walk_stmt_load_store_addr_fn): New typedef.
5556 (walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Use it
5557 for callback params.
5558 * gimple.c (walk_stmt_load_store_ops): Likewise.
5559 (walk_stmt_load_store_addr_ops): Likewise. Adjust all callback
5560 calls to supply the gimple operand containing the base tree
5561 as an extra argument.
5562 * tree-ssa-ter.c (find_ssaname, find_ssaname_in_store): New helper
5564 (find_replaceable_in_bb): For calls or GIMPLE_ASM, only set
5565 same_root_var if USE is used somewhere in the stores of the stmt.
5566 * ipa-prop.c (visit_ref_for_mod_analysis): Remove name of the stmt
5567 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
5568 * ipa-pure-const.c (check_load, check_store, check_ipa_load,
5569 check_ipa_store): Likewise.
5570 * gimple.c (gimple_ior_addresses_taken_1): Likewise.
5571 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Likewise.
5572 (verify_non_ssa_vars, visit_bb): Adjust their callers.
5573 * cfgexpand.c (add_scope_conflicts_1): Use
5574 walk_stmt_load_store_addr_fn type for visit variable.
5575 (visit_op, visit_conflict): Remove name of the stmt
5576 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
5577 * tree-sra.c (asm_visit_addr): Likewise. Remove name of the data
5578 argument and ATTRIBUTE_UNUSED.
5579 * cgraphbuild.c (mark_address, mark_load, mark_store): Add another
5580 unnamed tree argument.
5582 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
5584 * config/m68k/m68k.c (handle_move_double): Handle pushes with
5585 overlapping registers also for registers other than the stack
5588 2014-01-03 Jakub Jelinek <jakub@redhat.com>
5591 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
5594 2014-01-01 Jakub Jelinek <jakub@redhat.com>
5596 PR rtl-optimization/59647
5597 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
5598 new_rtx into UNSIGNED_FLOAT rtxes.
5600 2013-12-28 Eric Botcazou <ebotcazou@adacore.com>
5602 * doc/invoke.texi (output file options): Document -fada-spec-parent.
5604 2013-12-26 Uros Bizjak <ubizjak@gmail.com>
5606 * config/i386/driver-i386.c (decode_caches_intel): Add missing entries.
5608 2013-12-20 Jakub Jelinek <jakub@redhat.com>
5611 Backported from mainline
5612 2013-08-19 Dehao Chen <dehao@google.com>
5614 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
5616 2013-12-19 James Greenhalgh <james.greenhalgh@arm.com>
5618 Backport from Mainline.
5619 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
5621 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
5623 (cmhi): Rename to...
5625 * config/aarch64/aarch64-simd.md
5626 (simd_mode): Add SF.
5627 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
5628 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
5629 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
5630 (cstore<mode>_neg): ...This.
5631 * config/aarch64/iterators.md
5633 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
5635 (UCOMPARISONS): Likewise.
5636 (optab): Add missing comparisons.
5644 (V_cmp_result): Add DF, SF modes.
5645 (v_cmp_result): Likewise.
5648 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
5650 Partial Backport from mainline.
5651 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
5653 * config/aarch64/arm_neon.h
5654 (vc<eq, lt, le, gt, ge, tst><qsd>_<u><8,16,32,64>): Remap
5655 to builtins or C as appropriate.
5657 2013-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com>
5658 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5660 Backport from mainline
5661 2013-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com>
5662 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New
5664 (s390_hotpatch_trampoline_halfwords_max): New constant
5665 (s390_hotpatch_trampoline_halfwords): New static variable
5666 (get_hotpatch_attribute): New function
5667 (s390_handle_hotpatch_attribute): New function
5668 (s390_attribute_table): New target specific attribute table to implement
5669 the hotpatch attribute
5670 (s390_option_override): Parse hotpatch options
5671 (s390_function_num_hotpatch_trampoline_halfwords): New function
5672 (s390_can_inline_p): Implement target hook to
5673 suppress hotpatching for explicitly inlined functions
5674 (s390_asm_output_function_label): Generate hotpatch prologue
5675 (TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table
5676 (TARGET_CAN_INLINE_P): Define to implement target hook
5677 * config/s390/s390.opt (mhotpatch): New options -mhotpatch, -mhotpatch=
5678 * config/s390/s390-protos.h (s390_asm_output_function_label): Add
5680 * config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific
5681 function label generation for hotpatching
5682 (FUNCTION_BOUNDARY): Align functions to eight bytes
5683 * doc/extend.texi: Document hotpatch attribute
5684 * doc/invoke.texi: Document -mhotpatch option
5686 2013-12-18 Eric Botcazou <ebotcazou@adacore.com>
5688 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Fix thinko.
5690 2013-12-12 Vladimir Makarov <vmakarov@redhat.com>
5693 * lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo
5694 values if necessary.
5696 2013-12-12 Jakub Jelinek <jakub@redhat.com>
5699 * gimplify.c (omp_check_private): Add copyprivate argument, if it
5700 is true, don't check omp_privatize_by_reference.
5701 (gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify
5702 decl is private in outer context. Adjust omp_check_private caller.
5704 2013-12-10 Eric Botcazou <ebotcazou@adacore.com>
5706 PR rtl-optimization/58295
5707 * simplify-rtx.c (simplify_truncation): Restrict the distribution for
5708 WORD_REGISTER_OPERATIONS targets.
5710 2013-12-10 Kai Tietz <ktietz@redhat.com>
5713 * config/i386/i386.c (ix86_expand_prologue): Address saved
5714 registers stack-relative, not via frame-pointer.
5716 2013-12-09 Alan Modra <amodra@gmail.com>
5719 2013-12-05 Alan Modra <amodra@gmail.com>
5720 * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
5722 <recursive call for build != host>: Clear GMPINC. Don't bother
5724 * configure: Regenerate.
5726 2013-12-08 Uros Bizjak <ubizjak@gmail.com>
5728 Backport from mainline
5729 2013-12-06 Uros Bizjak <ubizjak@gmail.com>
5732 * config/i386/i386.c (type_natural_mode): Properly handle
5733 size 8 for !TARGET_64BIT.
5735 2013-12-07 Ralf Corsépius <ralf.corsepius@rtems.org>
5737 * config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT.
5739 2013-12-06 Jakub Jelinek <jakub@redhat.com>
5741 PR tree-optimization/59388
5742 * tree-ssa-reassoc.c (update_range_test): If op == range->exp,
5743 gimplify tem after stmt rather than before it.
5745 2013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
5747 Backport from mainline
5748 2013-11-26 Oleg Endo <olegendo@gcc.gnu.org>
5752 * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
5753 Prefix function names with 'sh_'. Make them non-static.
5754 * config/sh/sh-protos.h (sh_disp_addr_displacement,
5755 sh_max_mov_insn_displacement): Add declarations.
5756 * config/sh/constraints.md (Q): Reject QImode.
5757 (Sdd): Use match_code "mem".
5758 (Snd): Fix erroneous matching of non-memory operands.
5759 * config/sh/predicates.md (short_displacement_mem_operand): New
5761 (general_movsrc_operand): Disallow PC relative QImode loads.
5762 * config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
5763 (*movqi, *movhi): Merge both insns into...
5764 (*mov<mode>): ... this new insn. Replace generic 'm' constraints with
5765 'Snd' and 'Sdd' constraints. Calculate insn length dynamically based
5766 on the operand types.
5768 2013-12-06 Richard Biener <rguenther@suse.de>
5770 Backport from mainline
5771 2013-11-29 Richard Biener <rguenther@suse.de>
5773 PR tree-optimization/59334
5774 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
5777 2013-11-28 Richard Biener <rguenther@suse.de>
5779 PR tree-optimization/59330
5780 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
5781 and fix delayed marking of free calls not necessary.
5783 2013-12-06 Richard Biener <rguenther@suse.de>
5785 Backport from mainline
5786 2013-11-27 Richard Biener <rguenther@suse.de>
5788 PR tree-optimization/59288
5789 * tree-vect-loop.c (get_initial_def_for_induction): Do not
5790 re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
5792 2013-11-19 Richard Biener <rguenther@suse.de>
5794 PR tree-optimization/59164
5795 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust
5796 check whether we can create an epilogue loop to reflect the
5797 cases where we create one.
5799 2013-09-05 Richard Biener <rguenther@suse.de>
5801 PR tree-optimization/58137
5802 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
5803 Do not create vectors of pointers.
5804 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
5805 types for the components of the vector initializer.
5806 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
5807 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
5809 2013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
5813 * config/sh/sh.md (*cbranch_t): Check that there are no labels between
5814 the s1 insn and the testing insn. Remove REG_DEAD note from s1 insn.
5816 2013-12-05 Richard Biener <rguenther@suse.de>
5818 Backport from mainline
5819 2013-11-19 Richard Biener <rguenther@suse.de>
5822 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
5823 loads into stmts that may clobber it.
5825 2013-12-04 Jakub Jelinek <jakub@redhat.com>
5827 PR rtl-optimization/58726
5828 * combine.c (force_to_mode): Fix comment typo. Don't destructively
5829 modify x for ROTATE, ROTATERT and IF_THEN_ELSE.
5831 2013-12-04 Jakub Jelinek <jakub@redhat.com>
5832 Uros Bizjak <ubizjak@gmail.com>
5835 * config/i386/i386.c (ix86_legitimate_combined_insn): If for
5836 !TARGET_AVX there is misaligned MEM operand with vector mode
5837 and get_attr_ssememalign is 0, return false.
5838 (ix86_expand_special_args_builtin): Add get_pointer_alignment
5839 computed alignment and for non-temporal loads/stores also
5840 at least GET_MODE_ALIGNMENT as MEM_ALIGN.
5841 * config/i386/sse.md
5842 (<sse>_loadu<ssemodesuffix><avxsizesuffix>,
5843 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
5844 <sse2>_loaddqu<avxsizesuffix>,
5845 <sse2>_storedqu<avxsizesuffix>, <sse3>_lddqu<avxsizesuffix>,
5846 sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps,
5847 sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps,
5848 *vec_interleave_highv2df, *vec_interleave_lowv2df,
5849 *vec_extractv2df_1_sse, sse2_loadhpd, sse2_loadlpd, sse2_movsd,
5850 sse4_1_<code>v8qiv8hi2, sse4_1_<code>v4qiv4si2,
5851 sse4_1_<code>v4hiv4si2, sse4_1_<code>v2qiv2di2,
5852 sse4_1_<code>v2hiv2di2, sse4_1_<code>v2siv2di2, sse4_2_pcmpestr,
5853 *sse4_2_pcmpestr_unaligned, sse4_2_pcmpestri, sse4_2_pcmpestrm,
5854 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned,
5855 sse4_2_pcmpistri, sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add
5856 ssememalign attribute.
5857 * config/i386/i386.md (ssememalign): New define_attr.
5859 2013-12-03 Jakub Jelinek <jakub@redhat.com>
5862 * gimplify.c (nonlocal_vla_vars): New variable.
5863 (gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into
5864 nonlocal_vla_vars chain.
5865 (gimplify_body): Call declare_vars on nonlocal_vla_vars chain
5866 if outer_bind has DECL_INITIAL (current_function_decl) block.
5869 * optabs.c (emit_conditional_move): Save and restore
5870 pending_stack_adjust and stack_pointer_delta if cmove can't be used.
5872 2013-12-02 Jakub Jelinek <jakub@redhat.com>
5874 PR tree-optimization/59358
5875 * tree-vrp.c (union_ranges): To check for the partially
5876 overlapping ranges or adjacent ranges, also compare *vr0max
5879 2013-12-02 Richard Biener <rguenther@suse.de>
5881 PR tree-optimization/59139
5882 * tree-ssa-loop-niter.c (chain_of_csts_start): Properly match
5883 code in get_val_for.
5884 (get_val_for): Use gcc_checking_asserts.
5886 2013-11-27 Tom de Vries <tom@codesourcery.com>
5887 Marc Glisse <marc.glisse@inria.fr>
5890 * fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
5892 * gimplify.c (gimple_fold_indirect_ref): Same.
5894 2013-12-01 Eric Botcazou <ebotcazou@adacore.com>
5896 * config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an
5899 2013-12-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
5901 * expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument.
5903 2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5905 Backport from mainline
5906 2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5908 * config/arm/iterators.md (vrint_conds): New int attribute.
5909 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
5910 (smax<mode>3): Likewise.
5911 (smin<mode>3): Likewise.
5913 2013-11-28 Uros Bizjak <ubizjak@gmail.com>
5915 Backport from mainline
5916 2013-11-27 Uros Bizjak <ubizjak@gmail.com>
5917 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
5920 * gcc.target/i386/xop-frczX.c: New test.
5922 2013-11-28 Terry Guo <terry.guo@arm.com>
5924 Backport mainline r205391
5925 2013-11-26 Terry Guo <terry.guo@arm.com>
5927 * config/arm/arm.c (require_pic_register): Handle high pic base
5928 register for thumb-1.
5929 (arm_load_pic_register): Also initialize high pic base register.
5930 * doc/invoke.texi: Update documentation for option -mpic-register.
5932 2013-11-27 Jakub Jelinek <jakub@redhat.com>
5934 Backported from mainline
5935 2013-11-26 Jakub Jelinek <jakub@redhat.com>
5937 PR tree-optimization/59014
5938 * tree-vrp.c (register_edge_assert_for_1): Don't look
5939 through conversions from non-integral types or through
5940 narrowing conversions.
5942 2013-11-27 Eric Botcazou <ebotcazou@adacore.com>
5945 * expr.c (emit_group_store): Don't write past the end of the structure.
5946 (store_bit_field): Fix formatting.
5948 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
5950 Backport from mainline
5951 2013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
5953 * config/sparc/t-rtems: Add leon3 multilibs.
5955 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
5957 Backport from mainline
5958 2013-08-09 Eric Botcazou <ebotcazou@adacore.com>
5960 * configure.ac: Add GAS check for LEON instructions on SPARC.
5961 * configure: Regenerate.
5962 * config.in: Likewise.
5963 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
5965 * config/sparc/sparc.opt (LEON, LEON3): New masks.
5966 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
5968 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
5969 (AS_LEON_FLAG): New macro.
5970 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
5971 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
5972 Deal with LEON and LEON3 for the memory model.
5973 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
5974 (atomic_compare_and_swap<mode>_1): Likewise.
5975 (*atomic_compare_and_swap<mode>_1): Likewise.
5977 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
5979 Backport from mainline
5980 2013-07-23 Eric Botcazou <ebotcazou@adacore.com>
5982 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
5984 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
5986 Backport from mainline
5987 2013-07-22 Eric Botcazou <ebotcazou@adacore.com>
5989 * config.gcc (sparc*-*-*): Accept leon3 processor.
5990 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
5991 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
5992 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
5993 * config/sparc/sparc.opt (enum processor_type): Add leon3.
5994 (mfix-ut699): Adjust comment.
5995 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
5996 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
5997 (CPP_CPU_SPEC): Likewise.
5998 (ASM_CPU_SPEC): Likewise.
5999 * config/sparc/sparc.c (leon3_cost): New constant.
6000 (sparc_option_override): Add leon3 support.
6001 (mem_ref): New function.
6002 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
6003 (sparc_do_work_around_errata): Look into the instruction in the delay
6004 slot and adjust accordingly. Add fix for the data cache nullify issues
6005 of the UT699. Change insertion position for the NOP.
6006 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
6007 (leon3_load): New reservation.
6008 (leon_store): Bump latency to 2.
6009 (grfpu): New automaton.
6010 (grfpu_alu): New unit.
6011 (grfpu_ds): Likewise.
6012 (leon_fp_alu): Adjust.
6013 (leon_fp_mult): Delete.
6014 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
6015 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
6016 * config/sparc/sparc.md (cpu): Add leon3.
6017 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
6019 (atomic_test_and_set): Likewise.
6022 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
6024 Backport from mainline
6025 2013-04-10 Steven Bosscher <steven@gcc.gnu.org>
6027 * config/sparc/sparc.c: Include tree-pass.h.
6028 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
6029 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
6030 head of file. Change return type. Split off gate function.
6031 (sparc_gate_work_around_errata): New function.
6032 (pass_work_around_errata): New pass definition.
6033 (insert_pass_work_around_errata) New pass insert definition to
6034 insert pass_work_around_errata just after delayed-branch scheduling.
6035 (sparc_option_override): Insert the pass.
6036 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
6038 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
6040 Backport from mainline
6041 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
6043 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
6044 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
6045 mode if the instruction isn't available in the original mode.
6046 * config/sparc/sparc.opt (mfix-ut699): New option.
6047 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
6048 (divdf3): Turn into expander.
6049 (divdf3_nofix): New insn.
6050 (divdf3_fix): Likewise.
6051 (divsf3): Disable if -mfix-ut699.
6052 (sqrtdf2): Turn into expander.
6053 (sqrtdf2_nofix): New insn.
6054 (sqrtdf2_fix): Likewise.
6055 (sqrtsf2): Disable if -mfix-ut699.
6057 2013-11-22 Eric Botcazou <ebotcazou@adacore.com>
6059 * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.
6061 2013-11-21 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6064 Backport from mainline: r197467 and r198999.
6065 2013-04-03 Jeff Law <law@redhat.com>
6067 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
6068 (lra-eliminations.o): Likewise.
6070 2013-05-16 Jeff Law <law@redhat.com>
6072 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
6074 2013-11-20 Eric Botcazou <ebotcazou@adacore.com>
6077 * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
6078 Make sure neg2_ovf is set before being used.
6080 2013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6081 Dominik Vogt <vogt@linux.vnet.ibm.com>
6083 Backport from mainline
6084 * config/s390/s390.c (s390_canonicalize_comparison): Don't fold
6085 int comparisons with an out of range condition code.
6086 (s390_optimize_nonescaping_tx): Skip empty BBs.
6087 Generate the new tbegin RTX when removing the FPR clobbers (with
6089 (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the
6090 result before doing the retry calculations.
6091 (s390_init_builtins): Make tbegin "returns_twice" and tabort
6093 * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
6094 the TDB setting part of an tbegin.
6095 ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
6096 ("tx_assist"): Set unused argument to an immediate zero instead of
6097 loading zero into a GPR and pass it as argument.
6098 * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
6099 Remove inline and related attributes.
6100 (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
6101 (__TM_is_illegal, __TM_is_footprint_exceeded)
6102 (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value
6105 2013-11-19 Uros Bizjak <ubizjak@gmail.com>
6107 Backport from mainline
6108 2013-11-18 Uros Bizjak <ubizjak@gmail.com>
6110 * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
6111 ix86_address_subreg_operand. Move subreg checks to
6112 ix86_validate_address_register. Move address override check to
6113 ix86_legitimate_address_p.
6114 (ix86_validate_address_register): New function.
6115 (ix86_legitimate_address_p): Call ix86_validate_address_register
6116 to validate base and index registers. Add address override check
6117 from ix86_decompose_address.
6118 (ix86_decompose_address): Remove.
6120 Backport from mainline
6121 2013-11-17 Uros Bizjak <ubizjak@gmail.com>
6124 * config/i386/i386.c (ix86_address_subreg_operand): Do not
6125 reject non-integer subregs.
6126 (ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
6127 Move check for invalid x32 constant addresses ...
6128 (ix86_legitimate_address_p): ... here.
6130 2013-11-19 Richard Biener <rguenther@suse.de>
6132 Backport from mainline
6133 2013-11-07 Richard Biener <rguenther@suse.de>
6135 * tree-dfa.c (get_ref_base_and_extent): Fix casting.
6137 2013-11-19 Richard Biener <rguenther@suse.de>
6139 PR tree-optimization/57517
6140 * tree-predcom.c (combinable_refs_p): Verify the combination
6141 is always executed when the refs are.
6143 2013-11-19 Richard Biener <rguenther@suse.de>
6145 Backport from mainline
6146 2013-11-05 Richard Biener <rguenther@suse.de>
6149 * tree-dfa.c (get_ref_base_and_extent): Merge common code
6150 in MEM_REF and TARGET_MEM_REF handling. Make sure to
6151 process trailing array detection before diving into the
6152 view-converted object (and possibly apply some extra offset).
6154 2013-11-18 Richard Biener <rguenther@suse.de>
6156 Backport from mainline
6157 2013-10-21 Richard Biener <rguenther@suse.de>
6159 PR tree-optimization/58794
6160 * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
6161 of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
6163 2013-10-21 Richard Biener <rguenther@suse.de>
6166 * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
6167 to (T) X for sign-changing conversions (or no conversion).
6169 2013-11-06 Richard Biener <rguenther@suse.de>
6171 PR tree-optimization/58653
6172 * tree-predcom.c (ref_at_iteration): Rewrite to generate
6174 (prepare_initializers_chain): Adjust.
6176 PR tree-optimization/59047
6177 * tree-predcom.c (ref_at_iteration): Handle bitfield accesses
6180 2013-10-15 Richard Biener <rguenther@suse.de>
6182 PR tree-optimization/58143
6183 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
6185 (rewrite_to_defined_overflow): Likewise.
6186 (move_computations_dom_walker::before_dom): Rewrite stmts
6187 with undefined signed overflow that are not always executed
6188 into unsigned arithmetic.
6190 2013-11-14 Uros Bizjak <ubizjak@gmail.com>
6192 Backport from mainline
6193 2013-11-10 Uros Bizjak <ubizjak@gmail.com>
6195 * mode-switching.c (optimize_mode_switching): Mark block as
6196 nontransparent, if last_mode at block exit is different from no_mode.
6198 Backport from mainline
6199 2013-11-06 Uros Bizjak <ubizjak@gmail.com>
6202 * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
6203 AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
6204 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
6205 RTXes that return in AVX256 register.
6207 2013-11-14 Jakub Jelinek <jakub@redhat.com>
6208 Uros Bizjak <ubizjak@gmail.com>
6211 * config/i386/i386.md (*anddi_2): Only allow CCZmode if
6212 operands[2] satisfies_constraint_Z that might have bit 31 set.
6214 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
6216 Backported from mainline
6217 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
6220 * config/i386/i386.c (initial_ix86_tune_features): Set
6221 X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
6222 X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for m_HASWELL.
6224 2013-11-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6226 Backported from mainline
6227 2013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6230 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage
6232 2013-11-11 Jakub Jelinek <jakub@redhat.com>
6234 Backported from mainline
6235 2013-11-06 Jakub Jelinek <jakub@redhat.com>
6238 * expr.c (get_bit_range): Handle *offset == NULL_TREE.
6239 (expand_assignment): If *bitpos is negative, set *offset
6240 and adjust *bitpos, so that it is not negative.
6242 2013-11-05 Jakub Jelinek <jakub@redhat.com>
6244 PR rtl-optimization/58997
6245 * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
6246 get_iv_value to be in iv->mode rather than iv->extend_mode.
6247 (iv_extend): Likewise. Otherwise, if iv->extend != extend,
6248 use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
6249 * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
6252 2013-11-10 Karlson2k <k2k@narod.ru>
6253 Kai Tietz <ktietz@redhat.com>
6257 * configure.ac: Adding for exported symbols check
6258 and for rdynamic-check executable-extension.
6259 * configure: Regenerated.
6261 2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
6264 * config/i386/i386.md (push peepholer/splitter): Use Pmode
6265 with stack_pointer_rtx.
6267 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
6269 * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
6271 2013-11-05 Jakub Jelinek <jakub@redhat.com>
6273 PR tree-optimization/58984
6274 * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
6275 set *SIZE_P if non-NULL on success.
6276 (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
6278 (ipcp_transform_function): Likewise. Punt if size of access
6279 is different from TYPE_SIZE on v->value's type.
6281 2013-11-03 H.J. Lu <hongjiu.lu@intel.com>
6283 Backport from mainline
6284 2013-10-12 H.J. Lu <hongjiu.lu@intel.com>
6287 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
6288 (ix86_expand_movmem): Replace copy_addr_to_reg with
6289 ix86_copy_addr_to_reg.
6290 (ix86_expand_setmem): Likewise.
6292 2013-10-29 Uros Bizjak <ubizjak@gmail.com>
6294 Backport from mainline
6295 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
6297 PR rtl-optimization/58079
6298 * combine.c (combine_simplify_rtx): Avoid using SUBST if
6299 simplify_comparison has widened a comparison with an integer.
6301 2013-10-29 Martin Jambor <mjambor@suse.cz>
6304 Backport from mainline
6305 2013-05-09 Martin Jambor <mjambor@suse.cz>
6308 * gimple-fold.c (canonicalize_constructor_val): Call
6309 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
6311 Backport from mainline
6312 2013-03-16 Jan Hubicka <jh@suse.cz>
6314 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
6315 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
6316 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
6317 of cgraph_get_create_node.
6318 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6320 2013-10-28 Tom de Vries <tom@codesourcery.com>
6322 * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
6323 Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
6325 2013-10-26 Uros Bizjak <ubizjak@gmail.com>
6327 Backport from mainline
6328 2013-10-22 Uros Bizjak <ubizjak@gmail.com>
6331 * config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
6332 Remove CCCmode handling.
6333 <case LTU>: Return 'c' suffix for CCCmode.
6334 <case GEU>: Return 'nc' suffix for CCCmode.
6335 (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
6336 * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
6337 (*sub<mode>3_cc_overflow): Ditto.
6338 (*subsi3_zext_cc_overflow): Ditto.
6340 2013-10-26 Uros Bizjak <ubizjak@gmail.com>
6342 Backport from mainline
6343 2013-10-19 Uros Bizjak <ubizjak@gmail.com>
6346 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
6347 ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
6348 and SI_REG for 64bit SYSV ABI targets.
6350 2013-08-25 Richard Henderson <rth@twiddle.net>
6353 * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
6354 instead of create_convert_operand_to.
6355 (maybe_emit_sync_lock_test_and_set): Likewise.
6356 (expand_atomic_compare_and_swap): Likewise.
6357 (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
6359 2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
6361 PR rtl-optimization/58831
6362 * alias.c (init_alias_analysis): At the beginning of each iteration, set
6363 the reg_seen[N] bit if static_reg_base_value[N] is non-null.
6365 2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
6367 * recog.c (search_ofs): New static variable moved from...
6368 (peep2_find_free_register): ...here.
6369 (peephole2_optimize): Initialize it.
6371 2013-10-24 David Edelsohn <dje.gcc@gmail.com>
6373 Backport from mainline
6374 2013-10-23 David Edelsohn <dje.gcc@gmail.com>
6377 * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
6378 TARGET_32BIT final condition.
6379 (mulsi3_internal2 and splitter): Same.
6381 2013-10-23 Tom de Vries <tom@codesourcery.com>
6383 PR tree-optimization/58805
6384 * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
6386 2013-10-23 Richard Biener <rguenther@suse.de>
6388 Backport from mainline
6389 2013-06-24 Richard Biener <rguenther@suse.de>
6391 PR tree-optimization/57488
6392 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
6394 2013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
6396 Backport from mainline
6397 2013-10-16 Ganesh Gopalasubramanian
6398 <Ganesh.Gopalasubramanian@amd.com>
6400 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
6403 2013-10-16 Jakub Jelinek <jakub@redhat.com>
6405 * BASE-VER: Set to 4.8.3.
6406 * DEV-PHASE: Set to prerelease.
6408 2013-10-16 Release Manager
6410 * GCC 4.8.2 released.
6412 2013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
6414 Backport from mainline.
6415 2013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
6417 * config/aarch64/arm_neon.h
6418 (vtbx<1,3>_<psu>8): Fix register constriants.
6420 2013-10-10 Jakub Jelinek <jakub@redhat.com>
6423 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
6424 if any labels are in FALLTHRU_BB, use a special label emitted
6425 immediately after the asm goto insn rather than label_rtx
6427 (expand_asm_stmt): Adjust caller.
6428 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
6429 edge if the last insn in predecessor is a jump with single successor,
6430 but it isn't simplejump_p.
6432 2013-10-09 Jakub Jelinek <jakub@redhat.com>
6434 Backport from mainline
6435 2013-09-26 Richard Biener <rguenther@suse.de>
6437 PR tree-optimization/58539
6438 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
6439 the fact that debug statements are not taking part in loop-closed
6442 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6444 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
6445 loop to work also for 31bit ABI.
6446 Save the stack pointer for frame_size > 0.
6448 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6450 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
6451 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
6452 constraint letters from expanders.
6453 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
6454 retry count to general_operand.
6455 ("tabort"): Give operand 0 a mode.
6456 ("tabort_1"): Add mode and constraint letter for operand 0.
6457 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
6459 2013-10-04 Marcus Shawcroft <marcus.shawcroft@arm.com>
6461 Backport from mainline.
6464 * config/aarch64/aarch64.md (*add_<shift>_<mode>)
6465 (*add_<shift>_si_uxtw,*add_mul_imm_<mode>)
6466 (*sub_<shift>_<mode>)
6467 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
6468 Remove k constraint.
6470 2013-10-02 John David Anglin <danglin@gcc.gnu.org>
6472 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
6474 2013-10-01 Jakub Jelinek <jakub@redhat.com>
6475 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6478 * config/s390/s390.c (s390_chunkify_start): Handle tablejump_p first,
6479 continue when done, for other jumps look through PARALLEL
6482 2013-09-30 Jakub Jelinek <jakub@redhat.com>
6485 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
6486 optimization, punt if sign_bit_p looked through any zero extension.
6488 2013-09-27 Paulo Matos <pmatos@broadcom.com>
6490 Backport from mainline.
6493 2013-03-27 Richard Biener <rguenther@suse.de>
6495 PR tree-optimization/56716
6496 * tree-ssa-structalias.c (perform_var_substitution): Adjust
6497 dumping for ref nodes.
6499 2013-09-27 Paulo Matos <pmatos@broadcom.com>
6501 Backport from mainline.
6503 2013-09-27 Paulo Matos <pmatos@broadcom.com>
6505 * gcc.dg/pr58463.c: New test.
6507 2013-09-23 Eric Botcazou <ebotcazou@adacore.com>
6509 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
6510 assignment statements.
6512 2013-09-23 Alan Modra <amodra@gmail.com>
6515 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
6517 2013-09-23 Alan Modra <amodra@gmail.com>
6519 * config/rs6000/predicates.md (add_cint_operand): New.
6520 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
6521 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
6522 using add_cint_operand.
6523 (largetoc_high_plus_aix): Likewise.
6524 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
6526 2013-09-20 John David Anglin <danglin@gcc.gnu.org>
6529 * config/pa/pa.c (pa_option_override): Disable auto increment and
6530 decrement instructions until reload is completed.
6532 * config/pa/pa.md: In "scc" insn patterns, change output template to
6533 handle const0_rtx in reg_or_0_operand operands.
6535 2013-09-19 Jakub Jelinek <jakub@redhat.com>
6537 * omp-low.c (expand_omp_sections): Always pass len - 1 to
6538 GOMP_sections_start, even if !exit_reachable.
6540 2013-09-18 Richard Earnshaw <rearnsha@arm.com>
6542 * arm.c (arm_expand_prologue): Validate architecture supports
6543 LDRD/STRD before accepting tuning preferences.
6544 (arm_expand_epilogue): Likewise.
6546 2013-09-18 Daniel Morris <danielm@ecoscentric.com>
6547 Paolo Carlini <paolo.carlini@oracle.com>
6550 * doc/implement-cxx.texi: Fix references to the C++ standards.
6552 2013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6554 PR tree-optimization/58088
6555 * fold-const.c (mask_with_trailing_zeros): New function.
6556 (fold_binary_loc): Make sure we don't recurse infinitely
6557 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
6558 Use mask_with_trailing_zeros where appropriate.
6560 2013-09-14 John David Anglin <danglin@gcc.gnu.org>
6563 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
6566 2013-09-13 Christian Bruel <christian.bruel@st.com>
6569 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
6571 2013-09-11 Andi Kleen <ak@linux.intel.com>
6573 Backport from mainline
6574 * doc/extend.texi: Use __atomic_store_n instead of
6575 __atomic_store in HLE example.
6577 2013-09-11 Andi Kleen <ak@linux.intel.com>
6579 Backport from mainline
6580 * doc/extend.texi: Dont use __atomic_clear in HLE
6583 2013-09-11 Andi Kleen <ak@linux.intel.com>
6585 Backport from mainline
6586 * doc/extend.texi: Document that __atomic_clear and
6587 __atomic_test_and_set should only be used with bool.
6589 2013-09-11 Richard Biener <rguenther@suse.de>
6592 * passes.c (init_optimization_passes): Split critical edges
6593 before late uninit warning pass in the -Og pipeline.
6595 2013-09-11 Jakub Jelinek <jakub@redhat.com>
6597 PR tree-optimization/58385
6598 * fold-const.c (build_range_check): If both low and high are NULL,
6599 use omit_one_operand_loc to preserve exp side-effects.
6601 2013-09-10 Richard Earnshaw <rearnsha@arm.com>
6604 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
6605 support conditional execution.
6606 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
6608 2013-09-10 Jakub Jelinek <jakub@redhat.com>
6610 PR rtl-optimization/58365
6611 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
6612 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
6615 2013-09-09 Jakub Jelinek <jakub@redhat.com>
6617 PR tree-optimization/58364
6618 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
6619 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
6620 the current range can't be an unconditional true or false.
6622 2013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6625 Backport from mainline
6626 2013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
6628 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
6629 Use gen_int_mode rather than GEN_INT.
6631 2013-09-09 Richard Biener <rguenther@suse.de>
6633 Backport from mainline
6634 2013-08-27 Richard Biener <rguenther@suse.de>
6636 PR tree-optimization/57521
6637 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
6638 one edge is non-critical.
6639 (find_phi_replacement_condition): Make sure to use a non-critical
6640 edge. Cleanup and remove old bug workarounds.
6641 (bb_postdominates_preds): Remove.
6642 (if_convertible_loop_p_1): Do not compute post-dominators.
6643 (combine_blocks): Do not free post-dominators.
6644 (main_tree_if_conversion): Likewise.
6646 2013-09-09 Richard Biener <rguenther@suse.de>
6648 Backport from mainline
6649 2013-09-03 Richard Biener <rguenther@suse.de>
6652 * fold-const.c (negate_expr_p): Fix division case.
6653 (negate_expr): Likewise.
6655 2013-09-09 Richard Biener <rguenther@suse.de>
6657 Backport from mainline
6658 2013-08-29 Richard Biener <rguenther@suse.de>
6660 PR tree-optimization/57685
6661 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
6662 single-use operands to avoid exponential complexity.
6664 2013-09-09 Richard Biener <rguenther@suse.de>
6666 Backport from mainline
6667 2013-08-30 Richard Biener <rguenther@suse.de>
6669 PR tree-optimization/58223
6670 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
6671 (has_anti_or_output_dependence): ... this and adjust to also
6672 look for output dependences.
6673 (mark_nodes_having_upstream_mem_writes): Adjust.
6674 (rdg_flag_uses): Likewise.
6676 2013-09-03 Richard Biener <rguenther@suse.de>
6678 Backport from mainline
6679 2013-08-29 Richard Biener <rguenther@suse.de>
6681 PR tree-optimization/58246
6682 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
6683 handle the dominance check inside a basic-block.
6685 2013-09-03 Richard Biener <rguenther@suse.de>
6687 Backport from mainline
6688 2013-08-30 Richard Biener <rguenther@suse.de>
6690 PR tree-optimization/58228
6691 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
6692 allow invariant loads in nested loop vectorization.
6694 2013-09-03 Richard Biener <rguenther@suse.de>
6696 Backport from mainline
6697 2013-08-30 Richard Biener <rguenther@suse.de>
6699 PR tree-optimization/58010
6700 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
6701 assert that we have a loop-closed PHI.
6703 2013-09-01 Uros Bizjak <ubizjak@gmail.com>
6705 Backport from mainline
6706 2013-08-31 Uros Bizjak <ubizjak@gmail.com>
6708 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
6709 "cmp" RTX before signed_comparison_operator check to account
6712 2013-09-01 John David Anglin <danglin@gcc.gnu.org>
6714 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
6716 2013-08-30 Jakub Jelinek <jakub@redhat.com>
6718 PR tree-optimization/58277
6719 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
6720 after seeing too many stmts with vdef in between dombb and current
6721 bb, invalidate everything.
6723 2013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
6725 Backport from mainline
6726 2013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
6729 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
6731 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
6732 rtx (*) (rtx, ...) with insn_gen_fn.
6733 * genoutput.c (output_insn_data): Cast gen_? function pointers to
6734 insn_gen_fn::stored_funcptr. Add initializer braces.
6736 Backport from mainline
6737 2013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
6740 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
6741 (rs6000_emit_swdiv_high_precision, rs6000_emit_swdiv_low_precision,
6742 rs6000_emit_swrsqrt): Don't cast result of GEN_FCN to gen_2arg_fn_t.
6744 2013-08-29 Jakub Jelinek <jakub@redhat.com>
6746 Backported from mainline
6747 2013-05-27 Richard Biener <rguenther@suse.de>
6750 PR tree-optimization/57417
6751 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
6753 (set_ssa_val_to): Compare addresses using
6754 get_addr_base_and_unit_offset.
6756 PR tree-optimization/57396
6757 * tree-affine.c (double_int_constant_multiple_p): Properly
6758 return false for val == 0 and div != 0.
6760 PR tree-optimization/57343
6761 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
6762 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
6763 (number_of_iterations_cond): Do not build the folded tree.
6765 2013-08-28 Jakub Jelinek <jakub@redhat.com>
6768 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
6770 2013-08-28 Richard Biener <rguenther@suse.de>
6772 Backport from mainline
6773 2013-06-24 Richard Biener <rguenther@suse.de>
6776 * passes.c (init_optimization_passes): Move pass_fold_builtins
6777 and pass_dce earlier with -Og.
6779 2013-08-28 Uros Bizjak <ubizjak@gmail.com>
6781 Backport from mainline
6782 2013-08-27 H.J. Lu <hongjiu.lu@intel.com>
6784 * config/i386/driver-i386.c (host_detect_local_cpu): Update
6785 Haswell processor detection.
6787 Backport from mainline
6788 2013-08-27 Christian Widmer <shadow@umbrox.de>
6791 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
6792 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
6793 AVX2 capable processors.
6795 2013-08-23 Jakub Jelinek <jakub@redhat.com>
6798 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
6799 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
6801 PR tree-optimization/58209
6802 * tree-tailcall.c (find_tail_calls): Give up for pointer result types
6803 if m or a is non-NULL.
6805 2013-08-21 Richard Earnshaw <rearnsha@arm.com>
6808 * arm.c (aapcs_vfp_allocate): Decompose the argument if the
6809 suggested mode for the assignment isn't compatible with the
6812 2013-08-20 Alan Modra <amodra@gmail.com>
6815 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
6816 (rs6000_emit_epilogue): Likewise.
6818 2013-08-19 Peter Bergner <bergner@vnet.ibm.com>
6819 Jakub Jelinek <jakub@redhat.com>
6821 Backport from mainline
6822 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
6823 destination and source operands.
6825 2013-08-18 Jakub Jelinek <jakub@redhat.com>
6827 PR tree-optimization/58006
6828 * tree-parloops.c (take_address_of): Don't ICE if get_name
6830 (eliminate_local_variables_stmt): Remove clobber stmts.
6832 2013-08-16 Jakub Jelinek <jakub@redhat.com>
6834 PR tree-optimization/58164
6835 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
6836 walk gimple_goto_dest of GIMPLE_GOTO.
6838 PR tree-optimization/58165
6839 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
6840 bi_call must be the last stmt in a bb, don't split_block, instead
6841 use fallthru edge from it and give up if there is none.
6842 Release conds vector when returning early.
6844 2013-08-15 David Given <dg@cowlark.com>
6846 Backport from mainline
6847 2013-04-26 Vladimir Makarov <vmakarov@redhat.com>
6849 * lra-constraints.c (process_alt_operands): Use #if HAVE_ATTR_enable
6852 2013-08-14 Jakub Jelinek <jakub@redhat.com>
6854 PR tree-optimization/58145
6855 * tree-sra.c (build_ref_for_offset): If prev_base has
6856 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
6858 2013-08-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6860 * config/s390/htmxlintrin.h: Add file missing from last commit.
6861 * config/s390/htmintrin.h: Likewise.
6862 * config/s390/s390intrin.h: Likewise.
6864 2013-08-14 Uros Bizjak <ubizjak@gmail.com>
6866 Backport from mainline
6867 2013-08-13 Uros Bizjak <ubizjak@gmail.com>
6869 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
6870 when Pmode != word_mode. Add length_address attribute.
6871 (sse3_monitor_<mode>): Merge from sse3_monitor and
6872 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
6873 Pmode != word_mode. Update insn length attribute.
6874 * config/i386/i386.c (ix86_option_override_internal): Update
6875 ix86_gen_monitor selection for merged sse3_monitor insn.
6877 2013-08-14 Jakub Jelinek <jakub@redhat.com>
6878 Alexandre Oliva <aoliva@redhat.com>
6881 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
6882 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
6883 there also UNSPEC_PLTOFF.
6885 2013-08-13 Jakub Jelinek <jakub@redhat.com>
6888 * asan.c (instrument_strlen_call): Fix typo in comment.
6889 Use char * type even for the lhs of POINTER_PLUS_EXPR.
6891 2013-08-13 Vladimir Makarov <vmakarov@redhat.com>
6893 Backport from mainline
6894 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
6896 PR rtl-optimization/57459
6897 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
6898 type when setting live regs.
6900 2013-08-13 Marek Polacek <polacek@redhat.com>
6901 Jakub Jelinek <jakub@redhat.com>
6903 PR tree-optimization/57980
6904 * tree-tailcall.c (process_assignment): Return false
6905 when not dealing with integers or floats.
6907 2013-08-12 Andrew Haley <aph@redhat.com>
6909 Backport from mainline:
6910 * 2013-07-11 Andreas Schwab <schwab@suse.de>
6912 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
6914 2013-08-13 Uros Bizjak <ubizjak@gmail.com>
6916 Backport from mainline
6917 2013-08-12 Perez Read <netfirewall@gmail.com>
6920 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
6921 operand 0 for intel asm alternative.
6922 (*movabs<mode>_2): Ditto for operand 1.
6924 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6926 Backport from mainline:
6927 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6929 * config/arm/neon.md (vcond): Fix floating-point vector
6930 comparisons against 0.
6932 2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6934 Backport from mainline:
6935 2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6937 * config/arm/neon.md (movmisalign<mode>): Disable when we
6938 don't allow unaligned accesses.
6939 (*movmisalign<mode>_neon_store): Likewise.
6940 (*movmisalign<mode>_neon_load): Likewise.
6941 (*movmisalign<mode>_neon_store): Likewise.
6942 (*movmisalign<mode>_neon_load): Likewise.
6944 2013-08-06 Martin Jambor <mjambor@suse.cz>
6947 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
6948 MEM_REF has proper alignment information.
6950 2013-08-05 Richard Earnshaw <rearnsha@arm.com>
6952 PR rtl-optimization/57708
6953 * recog.c (peep2_find_free_register): Validate all regs in a
6956 2013-08-02 Eric Botcazou <ebotcazou@adacore.com>
6958 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
6959 the implied StoreLoad barrier for atomic operations if before.
6961 2013-08-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6963 Backports from mainline:
6964 2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6966 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
6967 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
6968 (struct machine_function): Add tbegin_p.
6969 (s390_canonicalize_comparison): Fold CC mode compares to
6970 conditional jump if possible.
6971 (s390_emit_jump): Return the emitted jump.
6972 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
6973 Handle CCRAWmode compares.
6974 (s390_option_override): Default to -mhtm if available.
6975 (s390_reg_clobbered_rtx): Handle floating point regs as well.
6976 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
6977 FPRs instead of df_regs_ever_live_p.
6978 (s390_optimize_nonescaping_tx): New function.
6979 (s390_init_frame_layout): Extend clobbered_regs array to cover
6981 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
6982 (s390_expand_tbegin): New function.
6983 (enum s390_builtin): New enum definition.
6984 (code_for_builtin): New array definition.
6985 (s390_init_builtins): New function.
6986 (s390_expand_builtin): New function.
6987 (TARGET_INIT_BUILTINS): Define.
6988 (TARGET_EXPAND_BUILTIN): Define.
6989 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
6990 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
6991 (s390_alc_comparison): Likewise.
6992 * config/s390/s390-modes.def: Add CCRAWmode.
6993 * config/s390/s390.h (processor_flags): Add PF_TX.
6994 (TARGET_CPU_HTM): Define macro.
6995 (TARGET_HTM): Define macro.
6996 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
6997 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
6998 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
6999 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
7000 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum
7002 (TBEGIN_MASK, TBEGINC_MASK): New constants.
7003 ("*cc_to_int"): Move up.
7004 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
7005 constants other than 0.
7006 ("*ccraw_to_int"): New insn and splitter definition.
7007 ("tbegin", "tbegin_nofloat", "tbegin_retry")
7008 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
7009 ("tx_assist"): New expander.
7010 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
7011 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
7012 * config/s390/s390.opt: Add -mhtm option.
7013 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
7014 * config/s390/htmxlintrin.h: New file.
7015 * config/s390/htmintrin.h: New file.
7016 * config/s390/s390intrin.h: New file.
7017 * doc/extend.texi: Document htm builtins.
7018 * config.gcc: Add the new header files to extra_headers.
7020 2013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7022 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
7023 enabled without -march=zEC12.
7024 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
7027 2013-08-01 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
7029 Backport from mainline
7030 2013-05-13 Ganesh Gopalasubramanian
7031 <Ganesh.Gopalasubramanian@amd.com>
7033 * config/i386/i386.c (processor_target_table): Modified default
7034 alignment values for AMD BD and BT architectures.
7036 2013-07-31 Sriraman Tallam <tmsriram@google.com>
7038 * config/i386/i386.c (dispatch_function_versions): Fix array
7039 indexing of function_version_info to match actual_versions.
7041 2013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
7043 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
7044 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
7046 2013-07-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7048 Backport from mainline
7049 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7051 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
7053 2013-07-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7055 * config/s390/linux-unwind.h: Use the proper dwarf to hard reg
7056 mapping for FPRs when creating the fallback framestate.
7058 2013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
7060 * config/s390/s390.md ("movcc"): Swap load and store instructions.
7062 2013-07-25 Terry Guo <terry.guo@arm.com>
7064 Backport from mainline:
7065 2013-07-25 Terry Guo <terry.guo@arm.com>
7067 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
7068 shift_add/shift_sub0/shift_sub1 RTXs.
7070 2013-07-22 Iain Sandoe <iain@codesourcery.com>
7072 Backport from mainline:
7073 2013-07-22 Uros Bizjak <ubizjak@gmail.com>
7075 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
7076 it is not needed after split.
7078 2013-07-20 Iain Sandoe <iain@codesourcery.com>
7081 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
7082 second label for nonlocal goto receivers. Don't output pic base labels
7083 unless we're producing PIC; mark that action unreachable().
7084 (ix86_save_reg): If the function contains a nonlocal label, save the
7086 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
7087 * gcc/config/darwin.c (emitted_pic_label_num): New GTY.
7088 (update_pic_label_number_if_needed): New.
7089 (machopic_output_function_base_name): Adjust for nonlocal receiver
7091 (machopic_should_output_picbase_label): New.
7092 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
7093 (nonlocal_goto_receiver): New insn and split.
7095 2013-07-19 Wei Mi <wmi@google.com>
7097 Backport from mainline:
7098 2013-07-18 Vladimir Makarov <vmakarov@redhat.com>
7099 Wei Mi <wmi@google.com>
7101 PR rtl-optimization/57878
7102 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
7103 top. Promote lra_assert to gcc_assert.
7104 (reload_pseudo_compare_func): Check regs first for reload pseudos.
7106 2013-07-11 Georg-Johann Lay <avr@gjlay.de>
7108 Backport from 2013-07-19 trunk r201051.
7111 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
7112 * config/avr/avr.md (adjust_len): Add `round'.
7113 * config/avr/avr-protos.h (avr_out_round): New prototype.
7114 (avr_out_plus): Add `out_label' argument.
7115 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
7116 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
7117 Handle the case where `insn' is just a pattern.
7118 (avr_out_bitop): Handle the case where `insn' is just a pattern.
7119 (avr_out_round): New function.
7120 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
7122 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
7124 * config/i386/bmiintrin.h (_bextr_u32): New.
7125 (_bextr_u64): Ditto.
7130 (_blsmsk_u32): Ditto.
7131 (_blsmsk_u64): Ditto.
7132 (_tzcnt_u32): Ditto.
7133 (_tzcnt_u64): Ditto.
7135 2013-07-17 James Greenhalgh <james.greenhalgh@arm.com>
7137 Backport From mainline:
7138 2013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
7140 * config/aarch64/aarch64-builtins.c
7141 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
7142 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
7144 * config/aarch64/aarch64-simd.md
7145 (aarch64_ld1<VALL:mode>): New.
7146 (aarch64_st1<VALL:mode>): Likewise.
7147 * config/aarch64/arm_neon.h
7148 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
7150 2013-07-11 Georg-Johann Lay <avr@gjlay.de>
7152 Backport from 2013-07-11 trunk r200901.
7155 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
7156 name seen by assembler/linker if available.
7158 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
7160 Backport from 2013-07-10 trunk r200872.
7163 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
7166 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
7168 Backport from 2013-07-10 trunk r200870.
7171 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
7172 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
7173 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
7174 Remove duplicate devices.
7175 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
7176 * config/avr/t-multilib: Regenerate.
7177 * config/avr/avr-tables.opt: Regenerate.
7178 * doc/avr-mmcu.texi: Regenerate.
7180 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
7183 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
7185 2013-07-09 Joseph Myers <joseph@codesourcery.com>
7187 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
7188 adjust register size for TDmode and TFmode for VSX registers.
7190 2013-07-08 Kai Tietz <ktietz@redhat.com>
7192 Backport from mainline
7194 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
7195 hook_bool_const_tree_true.
7197 2013-07-08 Uros Bizjak <ubizjak@gmail.com>
7199 Backport from mainline
7200 2013-07-07 Uros Bizjak <ubizjak@gmail.com>
7202 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
7203 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
7205 Backport from mainline
7206 2013-07-06 Uros Bizjak <ubizjak@gmail.com>
7208 * config/i386/sse.md (sse_movlhps): Change alternative 3
7209 of operand 2 to "m".
7211 2013-07-08 Eric Botcazou <ebotcazou@adacore.com>
7213 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
7215 2013-07-08 Jakub Jelinek <jakub@redhat.com>
7217 PR rtl-optimization/57829
7218 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
7219 mask bits outside of mode are just sign-extension from mode to HWI.
7221 2013-07-03 Jakub Jelinek <jakub@redhat.com>
7224 * config/i386/predicates.md (vsib_address_operand): Disallow
7225 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
7227 2013-06-30 Terry Guo <terry.guo@arm.com>
7229 Backport from mainline
7230 2013-03-27 Bin Cheng <bin.cheng@arm.com>
7233 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
7234 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
7237 2013-06-28 Jakub Jelinek <jakub@redhat.com>
7240 * config/i386/i386.c (ix86_expand_builtin): If target == NULL
7241 and mode is VOIDmode, don't create a VOIDmode pseudo to copy result
7244 2013-06-27 Jakub Jelinek <jakub@redhat.com>
7247 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
7248 constraints of operand 1 and 2.
7251 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
7252 to match RTL canonicalization. Swap predicates and
7253 constraints of operand 1 and 2.
7255 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
7256 decl before the loop, initialize to NULL.
7257 (vectorizable_load): Initialize ptr_incr to NULL.
7259 2013-06-24 Martin Jambor <mjambor@suse.cz>
7261 PR tree-optimization/57358
7262 * ipa-prop.c (parm_ref_data_preserved_p): Always return true when
7265 2013-06-24 Alan Modra <amodra@gmail.com>
7267 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
7268 (gen_easy_altivec_constant): Likewise.
7269 * config/rs6000/predicates.md (easy_vector_constant_add_self,
7270 easy_vector_constant_msb): Likewise.
7272 2013-06-21 Uros Bizjak <ubizjak@gmail.com>
7274 Backport from mainline
7275 2013-06-20 Uros Bizjak <ubizjak@gmail.com>
7278 * config/i386/i386.c (construct_container): Report error if
7279 long double is used with disabled x87 float returns.
7281 2013-06-20 Wei Mi <wmi@google.com>
7283 Backport from mainline
7284 2013-06-19 Wei Mi <wmi@google.com>
7286 PR rtl-optimization/57518
7287 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
7288 if regno is used in paradoxical subreg.
7289 (update_equiv_regs): Check pdx_subregs[regno] before
7290 set a reg to be equivalent with a mem.
7293 2013-06-20 David Edelsohn <dje.gcc@gmail.com>
7295 Backport from mainline
7296 2013-06-19 David Edelsohn <dje.gcc@gmail.com>
7299 * collect2.c (collect_atexit): New.
7300 (collect_exit): Delete.
7301 (main): Register collect_atexit with atexit.
7302 (collect_wait): Change collect_exit to exit.
7304 * collect2.h (collect_exit): Delete.
7305 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
7307 2013-06-19 Matthias Klose <doko@ubuntu.com>
7310 * file-find.h (find_a_file): Add a mode parameter.
7311 * file-find.c (find_a_file): Likewise.
7312 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
7313 with X_OK for the executables.
7314 * collect2.c (main): Call find_a_file with X_OK.
7316 2013-06-19 Igor Zamyatin <igor.zamyatin@intel.com>
7318 * doc/invoke.texi (core-avx2): Document.
7319 (atom): Updated with MOVBE.
7321 2013-06-19 Jakub Jelinek <jakub@redhat.com>
7324 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
7325 PERSONALITY in $PATH derived prefixes.
7327 2013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
7330 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
7331 that now in C++ the value is correct per the C++ standards.
7333 2013-06-19 Alan Modra <amodra@gmail.com>
7335 Apply mainline patches
7336 2013-06-13 Alan Modra <amodra@gmail.com>
7337 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
7338 * config/rs6000/rs6000.md (signbittf2): New insn.
7339 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
7340 (abstf2_internal, cmptf_internal2): Likewise.
7341 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
7343 2013-06-11 Anton Blanchard <anton@samba.org>
7344 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
7345 correct shift value in little-endian mode.
7347 2013-06-07 Alan Modra <amodra@gmail.com>
7348 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
7351 2013-06-04 Alan Modra <amodra@gmail.com>
7352 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
7355 2013-05-10 Alan Modra <amodra@gmail.com>
7356 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
7357 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
7358 * configure: Regenerate.
7360 2013-05-09 Alan Modra <amodra@gmail.com>
7361 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
7363 * configure: Regenerate.
7365 2013-05-07 Anton Blanchard <anton@samba.org>
7366 * configure.ac (HAVE_LD_LARGE_TOC): Use right linker emulation
7367 for powerpc64 little endian.
7368 * configure: Regenerate.
7370 2013-05-06 Alan Modra <amodra@gmail.com>
7371 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
7372 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
7373 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
7374 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
7375 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
7376 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
7378 2013-05-06 Alan Modra <amodra@gmail.com>
7379 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
7380 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
7381 (DEFAULT_ASM_ENDIAN): Define.
7382 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
7383 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
7384 Update -K PIC clause from sysv4.h.
7385 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
7386 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
7388 2013-05-06 Alan Modra <amodra@gmail.com>
7389 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
7390 twice for little-endian.
7391 (ashrdi3_no_power, ashrdi3): Support little-endian.
7393 2013-04-25 Alan Modra <amodra@gmail.com>
7394 * config.gcc: Support little-endian powerpc-linux targets.
7395 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
7396 (LINK_OS_LINUX_SPEC): Define.
7397 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
7398 Preserve MASK_LITTLE_ENDIAN.
7399 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
7400 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
7401 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
7402 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
7403 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
7404 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
7405 Correct fp word order for little-endian. Don't shift toc entries
7406 smaller than a word for little-endian.
7407 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
7408 (bswapdi2 splits): Correct low-part subreg for little-endian.
7409 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
7410 low/high where such is correct only for be.
7411 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
7412 little-endian for -mcall-aixdesc.
7414 2013-06-12 Martin Jambor <mjambor@suse.cz>
7416 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
7417 within bounds at the beginning of the function.
7419 2013-06-12 Jakub Jelinek <jakub@redhat.com>
7421 PR tree-optimization/57537
7422 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
7423 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
7425 2013-06-10 Uros Bizjak <ubizjak@gmail.com>
7427 Backport from mainline
7428 2013-06-10 Uros Bizjak <ubizjak@gmail.com>
7430 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
7431 cmp_code to construct REG_EQUAL note.
7433 2013-06-10 Oleg Endo <olegendo@gcc.gnu.org>
7435 Backport from mainline
7436 2013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
7439 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
7440 (*fmasf4, *fmasf4_media): New insns.
7442 2013-06-09 Jakub Jelinek <jakub@redhat.com>
7445 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
7446 that operands[2] doesn't overlap with operands[0].
7448 2013-06-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7450 * recog.c (offsettable_address_addr_space_p): Fix calculation of
7451 address mode. Move pointer mode initialization to the same place.
7453 2013-06-07 Sofiane Naci <sofiane.naci@arm.com>
7455 Backport from mainline
7456 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
7458 2013-06-07 Uros Bizjak <ubizjak@gmail.com>
7460 Backport from mainline
7461 2013-06-05 Uros Bizjak <ubizjak@gmail.com>
7463 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
7464 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
7466 Backport from mainline
7467 2013-05-23 Uros Bizjak <ubizjak@gmail.com>
7470 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
7471 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
7472 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
7474 2013-06-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7476 Backport from mainline.
7477 2013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7479 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
7481 2013-06-03 James Greenhalgh <james.greenhalgh@arm.com>
7483 Backport from mainline.
7484 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
7486 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
7487 format specifier in 'X' case.
7489 2013-05-31 Richard Henderson <rth@redhat.com>
7492 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
7493 (ix86_reorg): Call it.
7495 2012-05-31 Jakub Jelinek <jakub@redhat.com>
7497 * BASE-VER: Set to 4.8.2.
7498 * DEV-PHASE: Set to prerelease.
7500 2013-05-31 Release Manager
7502 * GCC 4.8.1 released.
7504 2013-05-24 Greta Yorsh <Greta.Yorsh@arm.com>
7506 Backport from mainline
7507 2013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
7510 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
7511 generating simple_return for naked functions.
7513 2013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
7516 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
7517 that index is not negative.
7519 2013-05-23 Martin Jambor <mjambor@suse.cz>
7522 * tree.h (contains_bitfld_component_ref_p): Declare.
7523 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
7524 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its caller.
7525 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
7526 not access a bit-field. Assert all final offsets are byte-aligned.
7528 2013-05-23 Richard Biener <rguenther@suse.de>
7530 PR rtl-optimization/57341
7531 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
7532 instead of true_dependence.
7534 2013-05-23 Jakub Jelinek <jakub@redhat.com>
7537 * expmed.c (store_split_bit_field): If op0 is a REG or
7538 SUBREG of a REG, don't lower unit. Handle unit not being
7539 always BITS_PER_WORD.
7541 2013-05-22 Uros Bizjak <ubizjak@gmail.com>
7544 * config/i386/i386.md (*movti_internal_rex64): Emit movaps/movups
7545 for non-sse2 targets.
7546 (*movti_internal): Simplify mode attribute calculation.
7548 2013-05-22 Richard Biener <rguenther@suse.de>
7550 Backport from mainline
7551 2013-05-21 Richard Biener <rguenther@suse.de>
7553 PR tree-optimization/57318
7554 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
7555 estimate stmts with side-effects as likely eliminated.
7557 2013-05-21 Richard Biener <rguenther@suse.de>
7559 PR tree-optimization/57330
7560 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
7561 preserve the call stmts fntype.
7563 2013-05-21 Richard Biener <rguenther@suse.de>
7565 PR tree-optimization/57303
7566 * tree-ssa-sink.c (statement_sink_location): Properly handle
7569 2013-05-21 Magnus Granberg <baldrick@free.fr>
7572 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
7574 2013-05-21 Eric Botcazou <ebotcazou@adacore.com>
7576 Backport from mainline
7577 2013-05-14 Eric Botcazou <ebotcazou@adacore.com>
7579 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
7580 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
7582 2013-05-17 Jakub Jelinek <jakub@redhat.com>
7584 PR rtl-optimization/57281
7585 PR rtl-optimization/57300
7586 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
7587 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
7588 what the other splitter did if the registers are dead.
7590 2013-05-17 Uros Bizjak <ubizjak@gmail.com>
7592 Backport from mainline
7593 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
7595 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
7596 cache parameters using detect_caches_amd also for CYRIX,
7597 NSC and TM2 signatures.
7599 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
7600 Dzianis Kahanovich <mahatma@eu.by>
7604 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7605 VIA/Centaur processors and determine their cache parameters
7606 using detect_caches_amd.
7608 2013-05-15 Uros Bizjak <ubizjak@gmail.com>
7610 * config/i386/i386.c (ix86_option_override_internal): Update
7611 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
7612 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
7613 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
7614 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
7616 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
7618 2013-05-17 Jakub Jelinek <jakub@redhat.com>
7620 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
7623 PR tree-optimization/57051
7624 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
7625 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
7627 2013-05-16 Jakub Jelinek <jakub@redhat.com>
7629 * omp-low.c (extract_omp_for_data): For collapsed loops,
7630 if at least one of the loops is known at compile time to
7631 iterate zero times, set count to 0.
7632 (expand_omp_regimplify_p): New function.
7633 (expand_omp_for_generic): For collapsed loops, if at least
7634 one of the loops isn't known to iterate at least once,
7635 add runtime check with setting count to 0.
7636 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
7637 For unsigned types if it isn't known at compile time that
7638 the loop will iterate at least once, add runtime check to bypass
7639 the whole loop if initial condition isn't true.
7641 2013-05-14 Jakub Jelinek <jakub@redhat.com>
7644 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
7645 the case when both op0 and op1 have VOIDmode.
7647 2013-05-13 Jakub Jelinek <jakub@redhat.com>
7649 PR tree-optimization/57230
7650 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
7653 2013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
7655 * config/epiphany/epiphany.c (epiphany_init): Check size of
7656 NUM_MODES_FOR_MODE_SWITCHING.
7657 (epiphany_expand_prologue):
7658 Remove CONFIG_REGNUM initial value handling code.
7659 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
7660 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
7661 (emit_set_fp_mode, epiphany_mode_after): Likewise.
7662 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
7663 Don't return 1 for FP_MODE_NONE.
7664 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
7665 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
7666 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
7667 * config/epiphany/epiphany.md (save_config): New pattern.
7669 2013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
7671 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
7672 Add mthumb/march=armv7-a multilib.
7673 Add mthumb/march=armv7-r multilib.
7674 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
7676 2013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
7679 * config/v850/t-rtems: Add more multilibs.
7681 2013-05-10 Richard Biener <rguenther@suse.de>
7683 PR tree-optimization/57214
7684 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
7685 not propagate from SSA names that occur in abnormal PHI nodes.
7687 2013-05-10 Alan Modra <amodra@gmail.com>
7690 * varasm.c (default_elf_select_section): Move !DECL_P check..
7691 (get_named_section): ..to here before calling get_section_name.
7693 (default_section_type_flags): Add DECL_P check.
7694 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
7695 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
7697 2013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
7699 * config/epiphany/epiphany.c (epiphany_expand_prologue):
7700 When using gen_stack_adjust_str with a register offset, add a
7701 REG_FRAME_RELATED_EXPR note.
7703 2013-05-09 Martin Jambor <mjambor@suse.cz>
7706 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
7707 * ipa-cp.c (find_aggregate_values_for_callers_subset): Fill in the
7708 by_ref flag of ipa_agg_replacement_value structures.
7709 (known_aggs_to_agg_replacement_list): Likewise.
7710 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
7711 (read_agg_replacement_chain): Likewise.
7712 (ipcp_transform_function): Also check that by_ref flags match.
7714 2013-05-08 Diego Novillo <dnovillo@google.com>
7720 2012-08-17 Diego Novillo <dnovillo@google.com>
7723 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
7724 * config.in: Regenerate.
7725 * configure: Regenerate.
7726 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is
7729 2013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
7731 PR tree-optimization/57200
7732 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
7733 Only call inform if the preceding warning_at returns true.
7735 2013-05-07 Jakub Jelinek <jakub@redhat.com>
7737 PR tree-optimization/57149
7738 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
7739 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
7740 collect_phi_def_edges, execute_late_warn_uninitialized): Use
7741 uninit_undefined_value_p instead of ssa_undefined_value_p.
7744 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
7745 for modifier == EXPAND_INITIALIZER.
7747 2013-05-07 Richard Biener <rguenther@suse.de>
7749 Backport from mainline
7750 2013-05-06 Richard Biener <rguenther@suse.de>
7752 PR tree-optimization/57185
7753 * tree-parloops.c (add_field_for_reduction): Handle anonymous
7756 2013-04-19 Richard Biener <rguenther@suse.de>
7758 PR tree-optimization/57000
7759 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
7761 2013-05-06 Michael Meissner <meissner@linux.vnet.ibm.com>
7764 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
7767 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
7768 to save TFmode registers and DImode to save TImode registers for
7769 caller save operations.
7770 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
7771 mark being partially clobbered since they only use the first
7774 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
7775 and TDmode only use the upper 64-bits of each VSX register.
7777 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
7780 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
7782 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
7784 Backport from mainline
7785 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
7788 * config/i386/i386.c (add_parameter_dependencies): Add dependence
7789 between "first_arg" and "insn", not "last" and "insn".
7791 2013-05-03 Jakub Jelinek <jakub@redhat.com>
7793 PR rtl-optimization/57130
7794 * combine.c (make_compound_operation) <case SUBREG>: Pass
7795 SET instead of COMPARE as in_code to the recursive call
7798 Backported from mainline
7799 2013-04-26 Jakub Jelinek <jakub@redhat.com>
7801 PR tree-optimization/57051
7802 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
7803 and VEC_RSHIFT_EXPR if shift count is a multiple of element
7806 2013-04-12 Marc Glisse <marc.glisse@inria.fr>
7808 * fold-const.c (fold_binary_loc): Call const_binop also for mixed
7809 vector-scalar operations.
7811 2013-05-03 Marek Polacek <polacek@redhat.com>
7813 Backport from mainline
7814 2013-04-25 Marek Polacek <polacek@redhat.com>
7816 PR tree-optimization/57066
7817 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
7819 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
7821 Backport from mainline
7822 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
7824 * lra-constraints.c (process_alt_operands): Add checking alt
7825 number to choose the best alternative.
7827 2013-05-01 Vladimir Makarov <vmakarov@redhat.com>
7830 * lra-constraints.c (best_small_class_operands_num): Remove.
7831 (process_alt_operands): Remove small_class_operands_num. Take
7832 small classes operands into losers and only if the operand is not
7833 matched. Modify debugging output.
7834 (curr_insn_transform): Remove best_small_class_operands_num.
7837 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
7839 Backport from mainline
7840 2013-04-29 Vladimir Makarov <vmakarov@redhat.com>
7843 * lra-constraints.c (process_alt_operands): Discourage a bit more
7844 using memory for pseudos. Print cost dump for alternatives.
7845 Modify cost values for conflicts with early clobbers.
7846 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
7848 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
7850 Backport from mainline
7851 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
7853 PR rtl-optimizations/57046
7854 * lra-constraints (split_reg): Set up lra_risky_transformations_p
7855 for multi-reg splits.
7857 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
7859 Backport from mainline
7860 2013-04-22 Vladimir Makarov <vmakarov@redhat.com>
7863 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
7864 a set sp if no stack realignment.
7866 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
7868 Backport from mainline
7869 2013-04-18 Vladimir Makarov <vmakarov@redhat.com>
7871 PR rtl-optimization/56999
7872 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
7874 (lra_coalesce): Remove split_origin_bitmap and related code.
7875 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
7876 ranges if necessary.
7878 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
7880 Backport from mainline
7881 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
7883 PR rtl-optimization/56847
7884 * lra-constraints.c (process_alt_operands): Discourage alternative
7885 with non-matche doffsettable memory constraint fro memory with
7888 2013-05-02 Ian Bolton <ian.bolton@arm.com>
7890 Backport from mainline
7891 2013-03-28 Ian Bolton <ian.bolton@arm.com>
7893 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
7894 record only when desired or required.
7896 2013-04-30 Jakub Jelinek <jakub@redhat.com>
7898 PR tree-optimization/57104
7899 * tsan.c (instrument_expr): Don't instrument accesses to
7900 DECL_HARD_REGISTER VAR_DECLs.
7902 2013-04-30 Uros Bizjak <ubizjak@gmail.com>
7904 Backport from mainline
7905 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
7908 * config/i386/i386.md (*zero_extendsidi2_rex64): Add "!" to m->?*y
7910 (*zero_extendsidi2): Ditto.
7912 Backport from mainline
7913 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
7916 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
7918 2013-04-29 Richard Biener <rguenther@suse.de>
7921 * tree-cfg.c (move_stmt_op): Fix condition under which to update
7923 (move_stmt_r): Remove redundant checking.
7925 2013-04-29 Christian Bruel <christian.bruel@st.com>
7928 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
7930 2013-04-29 Jakub Jelinek <jakub@redhat.com>
7932 PR tree-optimization/57083
7933 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
7934 non-singleton shift count range, zero extend low_bound for uns case.
7936 2013-04-28 Eric Botcazou <ebotcazou@gcc.gnu.org>
7938 * stor-layout.c (finalize_size_functions): Allocate a structure and
7939 reset cfun before dumping the functions.
7941 2013-04-27 Jakub Jelinek <jakub@redhat.com>
7944 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
7945 use xop_pmacsdqh if uns_p.
7946 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
7947 the immediate rotate count.
7949 2013-04-25 Jakub Jelinek <jakub@redhat.com>
7951 PR rtl-optimization/57003
7952 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
7953 call note_stores with kill_clobbered_value callback again after
7954 killing regs_invalidated_by_call.
7956 2013-04-25 Ian Bolton <ian.bolton@arm.com>
7958 Backported from mainline.
7959 2013-03-22 Ian Bolton <ian.bolton@arm.com>
7961 * config/aarch64/aarch64.c (aarch64_print_operand): New
7962 format specifier for printing a constant in hex.
7963 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
7964 format specifier for printing second operand.
7966 2013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
7968 Backported from mainline.
7969 2013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
7971 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
7972 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
7973 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
7975 2013-04-24 Greta Yorsh <Greta.Yorsh@arm.com>
7977 Backported from mainline.
7979 * config/arm/arm.c (load_multiple_sequence): Require SP
7980 as base register for loads if SP is in the register list.
7982 2013-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7983 Steven Bosscher <steven@gcc.gnu.org>
7985 Backported from mainline.
7986 PR rtl-optimization/56605
7987 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
7989 2013-04-22 Marek Polacek <polacek@redhat.com>
7991 Backported from mainline.
7992 2013-04-22 Marek Polacek <polacek@redhat.com>
7995 * tsan.c (instrument_expr): Don't instrument expression
7996 in case its size is zero.
7998 2013-04-22 Yufeng Zhang <yufeng.zhang@arm.com>
8000 Backported from mainline.
8001 2013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
8002 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
8003 (aarch64_start_file): Use the new function.
8005 2013-04-18 Jakub Jelinek <jakub@redhat.com>
8007 PR tree-optimization/56984
8008 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
8009 and (x >> M) >= N don't register any assertion if N << M is the
8012 2013-04-17 David Edelsohn <dje.gcc@gmail.com>
8015 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
8017 2013-04-15 Jakub Jelinek <jakub@redhat.com>
8019 PR tree-optimization/56962
8020 * gimple-ssa-strength-reduction.c (record_increment): Only set
8021 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
8022 either rhs1 or rhs2 is equal to c->base_expr.
8024 2013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8026 * emit-rtl.c (reset_all_used_flags): New function.
8027 (verify_rtl_sharing): Call reset_all_used_flags before and after
8028 performing the checks.
8030 2013-04-15 Eric Botcazou <ebotcazou@adacore.com>
8033 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
8034 (S_MODES): Set H_MODE bit.
8035 (SF_MODES): Set only S_MODE and SF_MODE bits.
8036 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
8037 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
8038 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
8039 <MODE_FLOAT>: Likewise.
8041 2013-04-12 Vladimir Makarov <vmakarov@redhat.com>
8044 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
8045 lra_in_progress for return.
8047 2013-04-12 Jakub Jelinek <jakub@redhat.com>
8049 PR tree-optimization/56918
8050 PR tree-optimization/56920
8051 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
8052 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
8053 argument to rshift method.
8055 2013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8057 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as
8060 2013-04-11 Marek Polacek <polacek@redhat.com>
8062 PR tree-optimization/48184
8063 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum
8066 2013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
8068 Backported from mainline.
8069 2013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
8071 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
8072 floating-point vector comparisons against 0.
8074 2013-04-11 Jakub Jelinek <jakub@redhat.com>
8076 PR tree-optimization/56899
8077 * fold-const.c (extract_muldiv_1): Apply distributive law
8078 only if TYPE_OVERFLOW_WRAPS (ctype).
8080 2013-04-10 David S. Miller <davem@davemloft.net>
8082 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
8083 or -mcpu=hypersparc.
8085 2013-04-10 Jakub Jelinek <jakub@redhat.com>
8087 Backported from mainline
8088 2013-04-09 Jakub Jelinek <jakub@redhat.com>
8091 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
8092 expand_omp_for_static_chunk): Use simple_p = true in
8093 force_gimple_operand_gsi calls when assigning to addressable decls.
8095 2013-04-09 Marek Polacek <polacek@redhat.com>
8097 PR tree-optimization/48762
8098 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum
8101 2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8103 * config/s390/s390.c (s390_expand_insv): Only accept insertions
8106 2013-04-08 Marek Polacek <polacek@redhat.com>
8108 PR rtl-optimization/48182
8109 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
8112 2013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8115 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
8116 nuses, make sure we have a label.
8118 2013-04-04 Ian Lance Taylor <iant@google.com>
8120 Backport from mainline:
8121 * doc/standards.texi (Standards): The Go frontend supports the Go
8122 1 language standard.
8124 2013-04-04 Marek Polacek <polacek@redhat.com>
8126 Backport from mainline:
8127 2013-04-04 Marek Polacek <polacek@redhat.com>
8129 PR tree-optimization/48186
8130 * predict.c (maybe_hot_frequency_p): Return false if
8131 HOT_BB_FREQUENCY_FRACTION is 0.
8132 (cgraph_maybe_hot_edge_p): Likewise.
8134 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8136 Backport from mainline:
8137 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8140 * config/arm/iterators.md (v_cmp_result): New mode attribute.
8141 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
8143 2013-04-04 Richard Biener <rguenther@suse.de>
8145 PR tree-optimization/56837
8146 * tree-loop-distribution.c (classify_partition): For non-zero
8147 values require that the value has the same precision as its
8148 mode to be useful as memset value.
8150 2013-04-03 Roland McGrath <mcgrathr@google.com>
8152 Backport from mainline:
8153 2013-03-26 Roland McGrath <mcgrathr@google.com>
8155 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
8156 than fprintf with a non-constant, non-format string.
8158 2013-04-03 Marek Polacek <polacek@redhat.com>
8160 Backport from mainline:
8161 2013-04-03 Marek Polacek <polacek@redhat.com>
8164 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN
8167 2013-04-03 Richard Biener <rguenther@suse.de>
8169 PR tree-optimization/56817
8170 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
8172 (tree_unroll_loops_completely_1): ... new function to manually
8173 walk the loop tree, properly defering outer loops of unrolled
8174 loops to later iterations.
8176 2013-04-02 Jakub Jelinek <jakub@redhat.com>
8178 PR rtl-optimization/56745
8179 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
8180 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
8182 2013-04-02 Wei Mi <wmi@google.com>
8184 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
8185 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
8186 *<rotate_insn><mode>3_mask in i386.md.
8188 2013-04-01 Wei Mi <wmi@google.com>
8190 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
8191 Truncate operand 2 using %b asm operand modifier.
8192 (*<shift_insn><mode>3_mask): Ditto.
8193 (*<rotate_insn><mode>3_mask): Ditto.
8195 2013-04-01 Uros Bizjak <ubizjak@gmail.com>
8197 * config/i386/i386.md (*movsf_internal): Change type of
8198 alternatives 3,4 to imov.
8200 2013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
8203 * doc/invoke.texi ([-fwhole-program]): Fix typo.
8205 2013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
8207 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
8208 Fix declaration name.
8210 2013-03-28 Gerald Pfeifer <gerald@pfeifer.com>
8212 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
8213 * doc/extend.texi (Named Address Spaces): Ditto.
8214 (Variable Attributes): Ditto.
8216 2013-03-28 Eric Botcazou <ebotcazou@adacore.com>
8218 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
8219 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
8222 2013-03-27 Walter Lee <walt@tilera.com>
8224 Backport from mainline:
8225 2013-03-27 Walter Lee <walt@tilera.com>
8227 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
8228 double-decrement of next_scratch_regno.
8230 2013-03-27 Walter Lee <walt@tilera.com>
8232 Backport from mainline:
8233 2013-03-27 Walter Lee <walt@tilera.com>
8235 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
8237 (insn_v1mulus): Ditto.
8238 (insn_v2muls): Ditto.
8240 2013-03-27 Walter Lee <walt@tilera.com>
8242 Backport from mainline:
8243 2013-03-27 Walter Lee <walt@tilera.com>
8245 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete
8247 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
8249 2013-03-27 Walter Lee <walt@tilera.com>
8251 Backport from mainline:
8252 2013-03-27 Walter Lee <walt@tilera.com>
8254 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
8255 (*sibcall_value): Ditto.
8257 2013-03-27 Walter Lee <walt@tilera.com>
8259 Backport from mainline:
8260 2013-03-27 Walter Lee <walt@tilera.com>
8262 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
8263 (insn_mnz_v8qi): ... this ...
8264 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
8266 (insn_v<n>mnz): Replaced by ...
8267 (insn_v1mnz): ... this ...
8268 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
8270 (insn_mz_<mode>): Replaced by ...
8271 (insn_mz_v8qi): ... this ...
8272 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
8274 (insn_v<n>mz): Replaced by ...
8275 (insn_v1mz): ... this ...
8276 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
8279 2013-03-26 Eric Botcazou <ebotcazou@adacore.com>
8281 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
8283 2013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
8285 * config/rtems.opt: Add -pthread option.
8287 2013-03-26 Sofiane Naci <sofiane.naci@arm.com>
8289 * config/aarch64/aarch64.c (aarch64_classify_address): Support
8290 PC-relative load in SI modes and above only.
8292 2013-03-26 Walter Lee <walt@tilera.com>
8294 Backport from mainline:
8295 2013-03-26 Walter Lee <walt@tilera.com>
8297 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
8298 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
8300 2013-03-26 Walter Lee <walt@tilera.com>
8302 Backport from mainline:
8303 2013-03-25 Walter Lee <walt@tilera.com>
8305 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
8306 TILEGX_INSN_SHUFFLEBYTES1.
8307 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
8309 (tilegx_builtins): Ditto.
8310 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
8312 2013-03-26 Walter Lee <walt@tilera.com>
8314 Backport from mainline:
8315 2013-03-25 Walter Lee <walt@tilera.com>
8317 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
8318 tests for constraint J, K, N, P.
8320 2013-03-26 Walter Lee <walt@tilera.com>
8322 Backport from mainline:
8323 2013-03-25 Walter Lee <walt@tilera.com>
8325 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
8326 Use indirect/pcrel encoding.
8327 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
8330 2013-03-25 Richard Biener <rguenther@suse.de>
8333 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
8334 must-not-throw stmt location.
8336 2012-03-22 Jakub Jelinek <jakub@redhat.com>
8338 * BASE-VER: Set to 4.8.1.
8339 * DEV-PHASE: Set to prerelease.
8341 2013-03-22 Release Manager
8343 * GCC 4.8.0 released.
8345 2013-03-21 Walter Lee <walt@tilera.com>
8347 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
8349 2013-03-21 Mark Wielaard <mjw@redhat.com>
8351 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
8353 2013-03-20 Richard Biener <rguenther@suse.de>
8355 PR tree-optimization/56661
8356 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
8357 the result does not have to be distinct.
8359 2013-03-20 Jakub Jelinek <jakub@redhat.com>
8361 PR tree-optimization/56635
8362 * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Give up
8363 if lhs of then_assign and else_assign don't have compatible types.
8365 2013-03-17 Jakub Jelinek <jakub@redhat.com>
8368 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
8369 class names. Remove trailing comma after "ALL_REGS".
8371 2013-03-16 Jakub Jelinek <jakub@redhat.com>
8373 * DEV-PHASE: Set to prerelease.
8375 2013-03-14 Andi Kleen <ak@linux.intel.com>
8378 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
8379 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
8380 Document _x* TSX intrinsics.
8382 2013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
8383 David Holsgrove <david.holsgrove@xilinx.com>
8385 * configure.ac: Add MicroBlaze TLS support detection.
8386 * configure: Regenerate.
8387 * config/microblaze/microblaze-protos.h
8388 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
8389 symbol_mentioned_p, label_mentioned_p): Add prototypes.
8390 * config/microblaze/microblaze.c (microblaze_address_type): Add
8391 ADDRESS_TLS and tls_reloc address types.
8392 (microblaze_address_info): Add tls_reloc.
8393 (TARGET_HAVE_TLS): Define.
8394 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
8395 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
8396 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
8397 load_tls_operand, microblaze_call_tls_get_addr,
8398 microblaze_legitimize_tls_address): New functions.
8399 (microblaze_classify_unspec): Handle UNSPEC_TLS.
8400 (get_base_reg): Use microblaze_tls_symbol_p.
8401 (microblaze_classify_address): Handle TLS.
8402 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
8403 label_mentioned_p and microblaze_tls_referenced_p.
8404 (microblaze_legitimize_address): Handle TLS.
8405 (microblaze_address_insns): Handle ADDRESS_TLS.
8406 (pic_address_needs_scratch): Handle TLS.
8407 (print_operand_address): Handle TLS.
8408 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
8409 (microblaze_expand_move): Handle TLS.
8410 (microblaze_legitimate_constant_p): Check
8411 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8412 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
8413 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
8414 (PIC_OFFSET_TABLE_REGNUM): Set.
8415 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
8416 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
8417 (addsi3, movsi_internal2, movdf_internal): Update constraints
8418 * config/microblaze/predicates.md (arith_plus_operand): Define
8419 (move_operand): Redefine as move_src_operand, check
8420 microblaze_tls_referenced_p.
8422 2013-03-14 Ian Bolton <ian.bolton@arm.com>
8424 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
8425 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
8427 2013-03-14 Ian Bolton <ian.bolton@arm.com>
8429 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
8432 2013-03-14 Jakub Jelinek <jakub@redhat.com>
8434 PR tree-optimization/53265
8435 * common.opt (Waggressive-loop-optimizations): New option.
8436 * tree-ssa-loop-niter.c: Include tree-pass.h.
8437 (do_warn_aggressive_loop_optimizations): New function.
8438 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
8439 if number_of_latch_executions returned constant.
8440 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
8441 early. If number_of_latch_executions returned constant, set
8442 nb_iterations_upper_bound back to it.
8443 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
8445 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
8446 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
8448 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
8449 (MULTILIB_OSDIRNAMES): Set.
8450 * genmultilib: If defaultosdirname doesn't start with :: , set
8451 defaultosdirname2 instead, clear it and emit two . multilib_raw
8452 entries instead of just one.
8454 2013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
8456 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
8457 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
8458 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
8459 (SUBTARGET_OVERRIDE_OPTIONS): New.
8461 2013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
8464 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
8465 (musermode): Convert to Var(TARGET_USERMODE).
8466 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
8467 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
8468 * config/sh/sh.c (sh_option_override): Use
8469 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
8470 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
8472 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
8474 (udivsi3_i4_single, divsi3_i4_single): Use
8475 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
8477 2013-03-13 Dave Korn <dave.korn.cygwin@....>
8479 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
8482 2013-03-13 Richard Biener <rguenther@suse.de>
8484 PR tree-optimization/56608
8485 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
8486 calls when vectorizing basic-blocks.
8488 2013-03-13 Jakub Jelinek <jakub@redhat.com>
8491 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
8494 2013-03-12 Jakub Jelinek <jakub@redhat.com>
8496 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
8498 2013-03-11 Jan Hubicka <jh@suse.cz>
8501 * lto-streamer-out.c (output_symbol_p): Skip references from
8502 constructors of external variables.
8504 2013-03-11 Jan Hubicka <jh@suse.cz>
8507 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
8509 * emit-rtl.c (verify_rtx_sharing): Likewise.
8510 (copy_insn_1): Likewise.
8511 * rtl.c (copy_rtx): Likewise.
8513 2013-03-11 Georg-Johann Lay <avr@gjlay.de>
8516 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
8517 output_operand_lossage message.
8519 2013-03-11 Richard Earnshaw <rearnsha@arm.com>
8522 * arm.c (shift_op): Validate RTL pattern on the fly.
8523 (arm_print_operand, case 'S'): Don't use shift_operator to validate
8526 2013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8529 * config/pa/pa.md (call_value): Check for calls to powf and direct to
8530 new call patterns that clobber %fr12.
8531 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
8532 split and postreload patterns.
8533 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
8534 registers %fr12 and %fr12R as call used.
8536 2013-03-09 Steven Bosscher <steven@gcc.gnu.org>
8538 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
8539 (canon_address, record_store, replace_read, check_mem_read_rtx,
8540 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
8541 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
8542 rest_of_handle_dse): Likewise.
8544 2013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
8547 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
8549 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
8550 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
8551 (save_optabs_if_changed): Replace with...
8552 (init_tree_optimization_optabs): ...this.
8553 * optabs.c (save_optabs_if_changed): Rename to...
8554 (init_tree_optimization_optabs): ...this. Take the optimization node
8555 as argument. Do nothing if the base optabs are already correct.
8556 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
8557 to recompute optabs.
8558 * function.h (function): Remove optabs field.
8559 * function.c (invoke_set_current_function_hook): Call
8560 init_tree_optimization_optabs. Use the result to initialize
8563 2013-02-27 Aldy Hernandez <aldyh@redhat.com>
8565 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
8566 if GTMA_HAS_NO_INSTRUMENTATION.
8567 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
8568 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
8569 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
8570 * gimple-pretty-print.c (dump_gimple_transaction): Handle
8571 GTMA_HAS_NO_INSTRUMENTATION.
8573 2013-03-08 Jakub Jelinek <jakub@redhat.com>
8575 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
8578 2013-03-08 Marek Polacek <polacek@redhat.com>
8579 Jakub Jelinek <jakub@redhat.com>
8581 PR tree-optimization/56478
8582 * predict.c (is_comparison_with_loop_invariant_p): Change the
8583 type of loop_step to tree.
8584 (predict_loops): Adjust.
8585 (predict_iv_comparison): Perform the computations on double_ints.
8587 2013-03-08 Richard Biener <rguenther@suse.de>
8589 PR tree-optimization/56570
8590 * tree-cfg.c (verify_expr_location_1): Verify locations for
8592 * tree-sra.c (create_access_replacement): Strip locations
8593 from DECL_DEBUG_EXPRs.
8595 2013-03-08 Richard Biener <rguenther@suse.de>
8597 * tree-inline.c (expand_call_inline): Do not associate
8598 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
8599 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
8601 2013-03-08 Richard Biener <rguenther@suse.de>
8603 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
8604 or block changes with -Og. Fix for location / block encoding
8605 changes and PHI arguments with locations.
8607 2013-03-07 Steven Bosscher <steven@gcc.gnu.org>
8609 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
8611 (struct output_info): Likewise.
8612 (register_overhead): Remove bad gcc_assert.
8613 (bitmap_find_bit): If there is only a single bitmap element, do not
8614 count a miss as a search.
8615 (print_statistics): Update for counter type changes.
8616 (dump_bitmap_statistics): Likewise. Print headers such that they
8617 are properly lined up with the printed counters.
8619 2013-03-07 Jakub Jelinek <jakub@redhat.com>
8621 PR tree-optimization/56559
8622 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
8623 check that it has only a single use.
8625 2013-03-07 Richard Biener <rguenther@suse.de>
8627 * doc/invoke.texi (fwhole-program): Discourage use in combination
8630 2013-03-06 Jakub Jelinek <jakub@redhat.com>
8632 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
8634 PR tree-optimization/56539
8635 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
8636 instead of GSI_CONTINUE_LINKING as last argument to
8637 force_gimple_operand_gsi. Adjust function comment.
8639 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
8643 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
8644 promoted mode, convert the result back to the original mode.
8646 2013-03-06 Richard Biener <rguenther@suse.de>
8649 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
8650 (insert_updated_phi_nodes_compare_uids): New function.
8651 (update_ssa): Sort symbols_to_rename after UID before
8652 traversing it to insert PHI nodes.
8654 2013-03-06 Richard Biener <rguenther@suse.de>
8657 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
8658 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
8661 2013-02-13 Richard Biener <rguenther@suse.de>
8664 * varasm.c (output_constant_def_1): Get the decl representing
8665 the constant as argument.
8666 (output_constant_def): Wrap output_constant_def_1.
8667 (make_decl_rtl): Use output_constant_def_1 with the decl
8668 representing the constant.
8669 (build_constant_desc): Optionally re-use a decl already
8670 representing the constant.
8671 (tree_output_constant_def): Adjust.
8673 2013-03-06 Joey Ye <joey.ye@arm.com>
8676 * gcc.c (convert_white_space): New function.
8677 (main): Handles white space in function name.
8679 2013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
8682 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
8683 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
8684 to SH_DIV_CALL_TABLE for TARGET_SH2.
8685 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
8687 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
8690 2013-03-05 Sterling Augustine <saugustine@google.com>
8691 Cary Coutant <ccoutant@google.com>
8694 * dwarf2out.c (resolve_addr): Don't call
8695 remove_loc_list_addr_table_entries a second time for the same
8698 2013-03-05 Jakub Jelinek <jakub@redhat.com>
8701 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
8702 (avoid_complex_debug_insns): New function.
8703 (expand_debug_locations): Call it.
8705 PR rtl-optimization/56484
8706 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
8707 lifetimes of hard registers on small register class machines.
8709 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
8711 * config/microblaze/microblaze-protos.h: Rename
8712 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
8713 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
8715 (microblaze_fast_interrupt_function_p): New function.
8716 (microblaze_is_interrupt_handler): Rename to
8717 microblaze_is_interrupt_variant and add fast_interrupt check.
8718 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
8719 (save_restore_insns): Likewise.
8720 (compute_frame_size): Likewise.
8721 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
8722 (microblaze_globalize_label): Likewise.
8723 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
8724 * config/microblaze/microblaze.md: Use wrapper
8725 microblaze_is_interrupt_variant.
8727 2013-03-05 Kai Tietz <ktietz@redhat.com>
8729 * sdbout.c (sdbout_one_type): Switch to current function's section
8730 supporting cold/hot.
8732 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
8734 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
8737 2013-03-05 Jakub Jelinek <jakub@redhat.com>
8740 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
8741 if VALGRIND_GET_VBITS is defined, temporarily make object
8742 memory all defined, and restore previous valgrind addressability
8743 and definability afterwards. Free this_object at the end.
8746 * lra.c (lra): Call lra_clear_live_ranges if live_p,
8747 right before calling lra_create_live_ranges, also call it
8748 when clearing live_p. Only call lra_clear_live_ranges
8749 at the end if live_p.
8752 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
8754 2013-03-05 Richard Biener <rguenther@suse.de>
8756 PR tree-optimization/56521
8757 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
8760 2013-03-05 Steven Bosscher <steven@gcc.gnu.org>
8763 * except.h (remove_unreachable_eh_regions): New prototype.
8764 * except.c (remove_eh_handler_splicer): New function, split out
8765 of remove_eh_handler.
8766 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
8767 warning about running it on many EH regions one at a time.
8768 (remove_unreachable_eh_regions_worker): New function, walk the
8769 EH tree in depth-first order and remove non-marked regions.
8770 (remove_unreachable_eh_regions): New function.
8771 * tree-eh.c (mark_reachable_handlers): New function, split out
8772 from remove_unreachable_handlers.
8773 (remove_unreachable_handlers): Use mark_reachable_handlers and
8774 remove_unreachable_eh_regions.
8775 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
8776 and remove_unreachable_eh_regions.
8778 2013-03-05 Richard Biener <rguenther@suse.de>
8781 * loop-init.c (fix_loop_structure): Remove loops in two stages,
8782 not freeing them until the end.
8784 2013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8786 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
8788 2013-03-05 Richard Biener <rguenther@suse.de>
8790 PR tree-optimization/56270
8791 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
8792 of loads after scheduling an SLP instance.
8794 2013-03-05 Jakub Jelinek <jakub@redhat.com>
8796 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
8798 (check_gcc_parallelize): Run guality.exp as a separate job from
8799 vect.exp with unsorted.exp and $(dg_target_exps) separately from
8800 struct-layout-1.exp with stackalign.exp.
8802 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
8805 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
8806 load_index sbitmap even if some bit in it isn't set.
8809 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
8810 (discover_iteration_bound_by_body_walk): Change queues to
8811 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
8812 spelling in comment. Call safe_push on queues[bound_index] directly.
8813 Release queues[queue_index] in every iteration unconditionally.
8814 Release bounds vector.
8817 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
8818 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
8819 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
8822 2013-03-05 Richard Biener <rguenther@suse.de>
8825 * tree-inline.c (remap_blocks_to_null): New function.
8826 (expand_call_inline): When expanding a call stmt without
8827 an associated block inline remap all callee blocks to NULL.
8829 2013-03-05 Jakub Jelinek <jakub@redhat.com>
8831 PR rtl-optimization/56494
8832 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
8833 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
8834 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
8837 * sel-sched-ir.c (free_sched_pools): Release
8838 succs_info_pool.stack[succs_info_pool.max_top] vectors too
8839 if succs_info_pool.max_top isn't -1.
8842 * opts.c (opts_obstack, opts_concat): Moved to...
8843 * opts-common.c (opts_obstack, opts_concat): ... here.
8845 2013-03-04 Jakub Jelinek <jakub@redhat.com>
8848 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
8850 2013-03-04 Martin Jambor <mjambor@suse.cz>
8852 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
8853 all appropriate places.
8855 2013-01-04 Eric Botcazou <ebotcazou@adacore.com>
8857 PR tree-optimization/56424
8858 * ipa-split.c (split_function): Do not set the RSO flag if result is
8859 not by reference and its type is a register type.
8861 2013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
8863 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New.
8864 (microblaze_legitimate_pic_operand): Likewise.
8865 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): Call
8866 new function microblaze_legitimate_pic_operand.
8867 * config/microblaze/microblaze-protos.h
8868 (microblaze_legitimate_pic_operand): Declare.
8870 2013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
8872 * config/microblaze/predicates.md (call_insn_simple_operand):
8873 New predicate for supported rtx code types.
8874 * config/microblaze/microblaze.md (call_internal1): Use
8875 call_insn_simple_operand predicate.
8877 2013-03-04 Jakub Jelinek <jakub@redhat.com>
8880 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
8881 partitions.ordered_remove.
8884 * tree-vect-stmts.c (vectorizable_conversion): Don't call
8885 vec_oprnds0.create (1) for modifier == NONE.
8888 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
8889 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
8890 vec_oprnds1 right before pushing anything to it for
8894 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
8895 set nbbs to 0 instead of having separate code path.
8896 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
8897 instead of false as last argument if returning NULL.
8899 2013-03-03 Sandra Loosemore <sandra@codesourcery.com>
8901 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
8902 the attribute is now called "target" instead of "option".
8903 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
8904 * doc/tm.texi.in (Target Attributes): Likewise document the correct
8905 attribute/pragma name for TARGET_OPTION_VALID_P and
8906 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
8907 * doc/tm.texi: Regenerated.
8909 2013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
8911 * config/microblaze/microblaze.c:
8912 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8913 * config/microblaze/microblaze.h: Add -mxl-reorder to
8915 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
8916 instructions emitted if TARGET_REORDER.
8917 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
8918 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8921 2013-03-01 Xinliang David Li <davidxl@google.com>
8923 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
8926 2013-03-01 Jakub Jelinek <jakub@redhat.com>
8929 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
8930 vector even when returning true. Fix up function comment formatting.
8933 * ira-build.c (ira_loop_nodes_count): New variable.
8934 (create_loop_tree_nodes): Initialize it.
8935 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
8938 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
8939 method on dr_chain and result_chain.
8940 * tree-vect-stmts.c (vectorizable_store): Only call
8941 result_chain.create if j == 0.
8944 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
8945 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
8946 before overwriting it.
8948 2013-03-01 Tobias Burnus <burnus@net-b.de>
8950 * doc/extended.texi (C Extensions): Change order in @menu
8952 (Other MIPS Built-in Functions): Move last MIPS entry before
8953 "picoChip Built-in Functions".
8954 (SH Built-in Functions): Move after RX Built-in Functions.
8955 * doc/gcc.texi (Introduction): Change order in @menu to match @node.
8956 * doc/md.texi (Constraints): Ditto.
8957 * gty.texi (Type Information): Ditto.
8958 (User-provided marking routines for template types): Make subsection.
8959 * doc/invoke.texi (AArch64 Options): Move before
8960 "Adapteva Epiphany Options".
8962 2013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
8963 Jakub Jelinek <jakub@redhat.com>
8966 * asan.c (gate_asan): Lookup no_sanitize_address instead of
8967 no_address_safety_analysis attribute.
8968 * doc/extend.texi (no_address_safety_attribute): Rename to
8969 no_sanitize_address attribute, mention no_address_safety_analysis
8970 attribute as deprecated alias.
8972 2013-02-28 Jakub Jelinek <jakub@redhat.com>
8975 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
8976 type to vec<vec<tree> > *.
8977 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
8978 to be vec<tree> instead of vec<tree> *, set vec_defs
8979 to vNULL and call vec_defs.create (number_of_vects), adjust other
8981 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
8982 vectorizable_condition): Adjust vect_get_slp_defs callers.
8984 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
8986 * config/aarch64/aarch64.c
8987 (aarch64_float_const_representable): Remove unused variable.
8989 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
8991 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
8993 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
8995 * config/aarch64/aarch64-builtins.c
8996 (aarch64_init_simd_builtins): Make static.
8998 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9000 * config/aarch64/aarch64.c
9001 (aarch64_simd_make_constant): Make static.
9003 2013-02-28 Martin Jambor <mjambor@suse.cz>
9005 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
9006 with no initialization to the RHS of debug statements.
9008 2013-02-28 Martin Jambor <mjambor@suse.cz>
9010 PR tree-optimization/56294
9011 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
9013 (get_access_replacement): Do not call create_access_replacement.
9014 Assert a replacement exists.
9015 (get_repl_default_def_ssa_name): Create the replacement declaration
9018 2013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9020 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
9023 2013-02-28 Marek Polacek <polacek@redhat.com>
9025 PR rtl-optimization/56466
9026 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
9027 if we're changing a loop.
9028 (peel_loops_completely): Likewise.
9030 2013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
9033 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
9035 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
9038 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
9039 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
9040 INTX_FTYPE_FX, FX_FTYPE_INTX.
9041 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
9043 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
9045 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
9046 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
9047 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
9048 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
9049 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
9050 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
9051 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
9052 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
9053 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
9054 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
9055 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
9056 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
9057 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
9058 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
9059 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
9060 (avrxmega6): Increase max flash segments from 5 to 6.
9061 * config/avr/t-multilib: Regenerate.
9062 * config/avr/avr-tables.opt: Regenerate.
9063 * doc/avr-mmcu.texi: Regenerate.
9065 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
9067 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
9068 (avr_device_to_arch): Rename to avr_device_to_ld.
9069 (avr_device_to_as): New prototype.
9070 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
9071 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
9072 * config/avr/driver-avr.c (avr_device_to_as): New.
9073 (avr_device_to_arch): Rename to avr_device_to_ld.
9075 2013-02-27 Jakub Jelinek <jakub@redhat.com>
9078 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
9079 method on dr_chain and result_chain.
9082 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
9083 pointer_set_destroy on not_executed_last_iteration.
9086 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
9089 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
9090 FOR_EACH_DEFINED_FUNCTION when freeing state.
9093 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
9095 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
9099 * ipa-cp.c (decide_whether_version_node): Call vec_free on
9100 known_aggs[i].items and release known_aggs vector.
9103 * ipa-reference.c (propagate): Free node_info even for alias nodes.
9105 2013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
9107 * config/microblaze/microblaze.c (microblaze_emit_compare):
9108 Use xor for EQ/NE comparisions.
9109 * config/microblaze/microblaze.md (cstoresf4): Add constraints
9110 (cbranchsf4): Adjust operator to comparison_operator.
9112 2013-02-27 Jakub Jelinek <jakub@redhat.com>
9115 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
9117 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
9118 vec_safe_push, always update *slot.
9119 (redirect_edge_var_map_clear): Use vec_free.
9120 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
9121 (free_var_map_entry): Use vec_free.
9122 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
9123 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
9125 2013-02-27 Andrey Belevantsev <abel@ispras.ru>
9128 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
9129 when the may_trap_p bit of the exprs being merged differs.
9130 Reorder tests for speculativeness in the logical and operator.
9132 2013-02-27 Jakub Jelinek <jakub@redhat.com>
9134 * incpath.c (add_standard_paths): Use reconcat instead of concat
9135 where appropriate and avoid leaking memory.
9137 * opts.h: Include obstack.h.
9138 (opts_concat): New prototype.
9139 (opts_obstack): New declaration.
9140 * opts.c (opts_concat): New function.
9141 (opts_obstack): New variable.
9142 (init_options_struct): Call gcc_init_obstack on opts_obstack.
9143 (finish_options): Use opts_concat instead of concat
9144 and XOBNEWVEC instead of XNEWVEC.
9145 * opts-common.c (generate_canonical_option, decode_cmdline_option,
9146 generate_option): Likewise.
9147 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
9148 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
9151 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
9152 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
9154 2013-02-26 Jakub Jelinek <jakub@redhat.com>
9157 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
9159 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
9161 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
9162 (arm_block_move_unaligned_straight): Likewise.
9163 (arm_adjust_block_mem): Likewise.
9165 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
9168 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
9169 temp, cond and label.
9170 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
9173 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
9174 * config/c6x/c6x.h (dbx_register_map): Update declaration.
9177 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
9178 of prologue/epilogue functions.
9181 * config/tilegx/tilegx.c (tilegx_expand_prologue):
9182 Remove unused variable cfa_offset.
9183 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
9186 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
9187 type promotion to unsigned.
9190 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
9191 for HOST_WIDE_INT of 32 bit / same size as int.
9192 (arm_block_move_unaligned_straight): Likewise.
9193 (arm_adjust_block_mem): Likewise.
9196 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
9199 2013-02-26 Marek Polacek <polacek@redhat.com>
9201 PR tree-optimization/56426
9202 * tree-ssa-loop.c (tree_ssa_loop_init): Always call
9205 2013-02-26 Richard Biener <rguenther@suse.de>
9208 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
9209 unused variable loops.
9211 2013-02-26 Jakub Jelinek <jakub@redhat.com>
9213 PR tree-optimization/56448
9214 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
9215 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
9216 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
9217 later operands of the references, or even first operand for
9218 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
9220 PR tree-optimization/56443
9221 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
9222 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
9223 to type_for_mode langhook.
9225 2013-02-25 Matt Turner <mattst88@gmail.com>
9227 * doc/invoke.texi: Document r4700.
9229 2013-02-25 Richard Biener <rguenther@suse.de>
9231 PR tree-optimization/56175
9232 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
9234 (simplify_bitwise_binary): ... here. Also guard the conversion
9235 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
9237 2013-02-25 Catherine Moore <clm@codesourcery.com>
9240 2013-02-24 Catherine Moore <clm@codesourcery.com>
9241 Maciej W. Rozycki <macro@codesourcery.com>
9242 Tom de Vries <tom@codesourcery.com>
9243 Nathan Sidwell <nathan@codesourcery.com>
9244 Iain Sandoe <iain@codesourcery.com>
9245 Nathan Froyd <froydnj@codesourcery.com>
9246 Chao-ying Fu <fu@mips.com>
9248 * doc/extend.texi (micromips, nomicromips, nocompression):
9249 Document new function attributes.
9250 * doc/invoke.texi (minterlink-compressed, mmicromips,
9251 m14k, m14ke, m14kec): Document new options.
9252 (minterlink-mips16): Update documentation.
9253 * doc/md.texi (ZC, ZD): Document new constraints.
9254 * configure.ac (gcc_cv_as_micromips): Check if linker
9255 supports the .set micromips directive.
9256 * configure: Regenerate.
9257 * config.in: Regenerate.
9258 * config/mips/mips-tables.opt: Regenerate.
9259 * config/mips/micromips.md: New file.
9260 * constraints.md (ZC, AD): New constraints.
9261 * config/mips/predicates.md (movep_src_register): New predicate.
9262 (movep_src_operand): New predicate.
9263 (non_volatile_mem_operand): New predicate.
9264 * config/mips/mips.md (multimem): New type.
9265 (length): Differentiate between 17-bit and 18-bit branch offsets.
9266 (MOVEP1, MOVEP2): New mode iterator.
9267 (mov_<load>l): Use ZC constraint.
9268 (mov_<load>r): Likewise.
9269 (mov_<store>l): Likewise.
9270 (mov_<store>r): Likewise.
9271 (*branch_equality<mode>_inverted): Add microMIPS support.
9272 (*branch_equality<mode>): Likewise.
9273 (*jump_absolute): Likewise.
9274 (indirect_jump_<mode>): Likewise.
9275 (tablejump_<mode>): Likewise.
9276 (<optab>_internal): Likewise.
9277 (sibcall_internal): Likewise.
9278 (sibcall_value_internal): Likewise.
9279 (prefetch): Use constraint ZD.
9280 * config/mips/mips.opt (minterlink-compressed): New option.
9281 (minterlink-mips16): Now an alias for minterlink-compressed.
9282 (mmicromips): New option.
9283 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
9284 (compare_and_swap_12): Likewise.
9285 (sync_add<mode>): Likewise.
9286 (sync_<optab>_12): Likewise.
9287 (sync_old_<optab>_12): Likewise.
9288 (sync_new_<optab>_12): Likewise.
9289 (sync_nand_12): Likewise.
9290 (sync_old_nand_12): Likewise.
9291 (sync_new_nand_12): Likewise.
9292 (sync_sub<mode>): Likewise.
9293 (sync_old_add<mode>): Likewise.
9294 (sync_old_sub<mode>): Likewise.
9295 (sync_new_add<mode>): Likewise.
9296 (sync_new_sub<mode>): Likewise.
9297 (sync_<optab><mode>): Likewise.
9298 (sync_old_<optab><mode>): Likewise.
9299 (sync_new_<optab><mode>): Likewise.
9300 (sync_nand<mode>): Likewise.
9301 (sync_old_nand<mode>): Likewise.
9302 (sync_new_nand<mode>): Likewise.
9303 (sync_lock_test_and_set<mode>): Likewise.
9304 (test_and_set_12): Likewise.
9305 (atomic_compare_and_swap<mode>): Likewise.
9306 (atomic_exchange<mode>_llsc): Likewise.
9307 (atomic_fetch_add<mode>_llsc): Likewise.
9308 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
9309 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
9310 (umips_save_restore_pattern_p): Likewise.
9311 (umips_load_store_pair_p): Likewise.
9312 (umips_output_load_store_pair): Likewise.
9313 (umips_movep_target_p): Likewise.
9314 (umips_12bit_offset_address_p): Likewise.
9315 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
9316 (mips_base_mips16): Rename this...
9317 (mips_base_compression_flags): ...to this. Update all uses.
9318 (mips_attribute_table): Add micromips, nomicromips and nocompression.
9319 (mips_mips16_decl_p): Delete.
9320 (mips_nomips16_decl_p): Delete.
9321 (mips_get_compress_on_flags): New function.
9322 (mips_get_compress_off_flags): New function.
9323 (mips_get_compress_mode): New function.
9324 (mips_get_compress_on_name): New function.
9325 (mips_get_compress_off_name): New function.
9326 (mips_insert_attributes): Support multiple compression types.
9327 (mips_merge_decl_attributes): Likewise.
9328 (umips_12bit_offset_address_p): New function.
9329 (mips_start_function_definition): Emit .set micromips directive.
9330 (mips_call_may_need_jalx_p): New function.
9331 (mips_function_ok_for_sibcall): Add microMIPS support.
9332 (mips_print_operand_punctuation): Support short delay slots and
9334 (umips_swm_mask, umips_swm_encoding): New.
9335 (umips_build_save_restore): New function.
9336 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
9337 (was_mips16_p): Remove.
9338 (old_compression_mode): New.
9339 (mips_set_compression_mode): New function.
9340 (mips_set_current_function): Add microMIPS support.
9341 (mips_option_override): Likewise.
9342 (umips_save_restore_pattern_p): New function.
9343 (umips_output_save_restore): New function.
9344 (umips_load_store_pair_p_1): New function.
9345 (umips_load_store_pair_p): New function.
9346 (umips_output_load_store_pair_1): New function.
9347 (umips_output_load_store_pair): New function.
9348 (umips_movep_target_p) New function.
9349 (mips_prepare_pch_save): Add microMIPS support.
9350 * config/mips/mips.h (TARGET_COMPRESSION): New.
9351 (TARGET_CPU_CPP_BUILTINS): Update macro
9352 to use new compression flags and to support microMIPS.
9353 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
9354 (MIPS_ARCH_FLOAT_SPEC): Likewise.
9355 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
9356 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
9357 (ASM_SPEC): Support mmicromips and mno-micromips.
9358 (M16STORE_REG_P): New macro.
9359 (MIPS_CALL): Support TARGET_MICROMIPS.
9360 (MICROMIPS_J): New macro.
9361 (mips_base_mips16): Rename this...
9362 (mips_base_compression_flags): ...to this.
9363 (UMIPS_12BIT_OFFSET_P): New macro.
9364 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
9365 (MULTILIB_DIRNAMES): Likewise.
9367 2013-02-25 Tom de Vries <tom@codesourcery.com>
9369 PR rtl-optimization/56131
9370 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
9371 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
9372 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
9374 2013-02-25 Tobias Burnus <burnus@net-b.de>
9376 * doc/invoke.texi (-fsanitize=): Move from optimization
9377 to debugging options.
9379 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
9381 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
9383 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
9384 Alexander Monakov <amonakov@ispras.ru>
9387 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
9388 flush pending lists also on non-jumps. Adjust comment.
9390 2013-02-24 Catherine Moore <clm@codesourcery.com>
9391 Maciej W. Rozycki <macro@codesourcery.com>
9392 Tom de Vries <tom@codesourcery.com>
9393 Nathan Sidwell <nathan@codesourcery.com>
9394 Iain Sandoe <iain@codesourcery.com>
9395 Nathan Froyd <froydnj@codesourcery.com>
9396 Chao-ying Fu <fu@mips.com>
9398 * doc/extend.texi (micromips, nomicromips, nocompression):
9399 Document new function attributes.
9400 * doc/invoke.texi (minterlink-compressed, mmicromips,
9401 m14k, m14ke, m14kec): Document new options.
9402 (minterlink-mips16): Update documentation.
9403 * doc/md.texi (ZC, ZD): Document new constraints.
9404 * configure.ac (gcc_cv_as_micromips): Check if linker
9405 supports the .set micromips directive.
9406 * configure: Regenerate.
9407 * config.in: Regenerate.
9408 * config/mips/mips-tables.opt: Regenerate.
9409 * config/mips/micromips.md: New file.
9410 * constraints.md (ZC, AD): New constraints.
9411 * config/mips/predicates.md (movep_src_register): New predicate.
9412 (movep_src_operand): New predicate.
9413 (non_volatile_mem_operand): New predicate.
9414 * config/mips/mips.md (multimem): New type.
9415 (length): Differentiate between 17-bit and 18-bit branch offsets.
9416 (MOVEP1, MOVEP2): New mode iterator.
9417 (mov_<load>l): Use ZC constraint.
9418 (mov_<load>r): Likewise.
9419 (mov_<store>l): Likewise.
9420 (mov_<store>r): Likewise.
9421 (*branch_equality<mode>_inverted): Add microMIPS support.
9422 (*branch_equality<mode>): Likewise.
9423 (*jump_absolute): Likewise.
9424 (indirect_jump_<mode>): Likewise.
9425 (tablejump_<mode>): Likewise.
9426 (<optab>_internal): Likewise.
9427 (sibcall_internal): Likewise.
9428 (sibcall_value_internal): Likewise.
9429 (prefetch): Use constraint ZD.
9430 * config/mips/mips.opt (minterlink-compressed): New option.
9431 (minterlink-mips16): Now an alias for minterlink-compressed.
9432 (mmicromips): New option.
9433 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
9434 (compare_and_swap_12): Likewise.
9435 (sync_add<mode>): Likewise.
9436 (sync_<optab>_12): Likewise.
9437 (sync_old_<optab>_12): Likewise.
9438 (sync_new_<optab>_12): Likewise.
9439 (sync_nand_12): Likewise.
9440 (sync_old_nand_12): Likewise.
9441 (sync_new_nand_12): Likewise.
9442 (sync_sub<mode>): Likewise.
9443 (sync_old_add<mode>): Likewise.
9444 (sync_old_sub<mode>): Likewise.
9445 (sync_new_add<mode>): Likewise.
9446 (sync_new_sub<mode>): Likewise.
9447 (sync_<optab><mode>): Likewise.
9448 (sync_old_<optab><mode>): Likewise.
9449 (sync_new_<optab><mode>): Likewise.
9450 (sync_nand<mode>): Likewise.
9451 (sync_old_nand<mode>): Likewise.
9452 (sync_new_nand<mode>): Likewise.
9453 (sync_lock_test_and_set<mode>): Likewise.
9454 (test_and_set_12): Likewise.
9455 (atomic_compare_and_swap<mode>): Likewise.
9456 (atomic_exchange<mode>_llsc): Likewise.
9457 (atomic_fetch_add<mode>_llsc): Likewise.
9458 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
9459 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
9460 (umips_save_restore_pattern_p): Likewise.
9461 (umips_load_store_pair_p): Likewise.
9462 (umips_output_load_store_pair): Likewise.
9463 (umips_movep_target_p): Likewise.
9464 (umips_12bit_offset_address_p): Likewise.
9465 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
9466 (mips_base_mips16): Rename this...
9467 (mips_base_compression_flags): ...to this. Update all uses.
9468 (mips_attribute_table): Add micromips, nomicromips and nocompression.
9469 (mips_mips16_decl_p): Delete.
9470 (mips_nomips16_decl_p): Delete.
9471 (mips_get_compress_on_flags): New function.
9472 (mips_get_compress_off_flags): New function.
9473 (mips_get_compress_mode): New function.
9474 (mips_get_compress_on_name): New function.
9475 (mips_get_compress_off_name): New function.
9476 (mips_insert_attributes): Support multiple compression types.
9477 (mips_merge_decl_attributes): Likewise.
9478 (umips_12bit_offset_address_p): New function.
9479 (mips_start_function_definition): Emit .set micromips directive.
9480 (mips_call_may_need_jalx_p): New function.
9481 (mips_function_ok_for_sibcall): Add microMIPS support.
9482 (mips_print_operand_punctuation): Support short delay slots and
9484 (umips_swm_mask, umips_swm_encoding): New.
9485 (umips_build_save_restore): New function.
9486 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
9487 (was_mips16_p): Remove.
9488 (old_compression_mode): New.
9489 (mips_set_compression_mode): New function.
9490 (mips_set_current_function): Add microMIPS support.
9491 (mips_option_override): Likewise.
9492 (umips_save_restore_pattern_p): New function.
9493 (umips_output_save_restore): New function.
9494 (umips_load_store_pair_p_1): New function.
9495 (umips_load_store_pair_p): New function.
9496 (umips_output_load_store_pair_1): New function.
9497 (umips_output_load_store_pair): New function.
9498 (umips_movep_target_p) New function.
9499 (mips_prepare_pch_save): Add microMIPS support.
9500 * config/mips/mips.h (TARGET_COMPRESSION): New.
9501 (TARGET_CPU_CPP_BUILTINS): Update macro
9502 to use new compression flags and to support microMIPS.
9503 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
9504 (MIPS_ARCH_FLOAT_SPEC): Likewise.
9505 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
9506 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
9507 (ASM_SPEC): Support mmicromips and mno-micromips.
9508 (M16STORE_REG_P): New macro.
9509 (MIPS_CALL): Support TARGET_MICROMIPS.
9510 (MICROMIPS_J): New macro.
9511 (mips_base_mips16): Rename this...
9512 (mips_base_compression_flags): ...to this.
9513 (UMIPS_12BIT_OFFSET_P): New macro.
9514 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
9515 (MULTILIB_DIRNAMES): Likewise.
9517 2013-02-24 Jakub Jelinek <jakub@redhat.com>
9520 * target-globals.c (save_target_globals): For init_reg_sets and
9521 target_reinit remporarily set this_fn_optabs to this_target_optabs.
9523 2013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
9525 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
9526 * config/aarch64/t-aarch64
9527 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
9529 2013-02-22 Vladimir Makarov <vmakarov@redhat.com>
9532 * lra-constraints.c (process_alt_operands): Reload operand
9533 conflicting with earlier clobber only if no more other conflicting
9536 2013-02-22 Jakub Jelinek <jakub@redhat.com>
9539 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
9540 if not linking a shared library.
9542 2013-02-22 Seth LaForge <sethml@google.com>
9544 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
9546 2013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
9548 * config/arm/arm.md (split for extendsidi): Update condition.
9549 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
9550 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
9551 (qhs_zextenddi_cstr): Likewise.
9553 2013-02-21 Jakub Jelinek <jakub@redhat.com>
9556 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
9557 avoid signed wrapping.
9558 (expand_mult): Handle properly multiplication by
9559 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
9560 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
9561 in the compiler if coeff is HOST_WIDE_INT_MIN.
9562 (expand_divmod): Don't make ext_op1 static, change it's type to uhwi.
9563 Avoid undefined behavior in -INTVAL (op1).
9565 PR rtl-optimization/50339
9566 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
9568 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
9569 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
9570 into splitting_ashiftrt field.
9571 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
9573 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
9576 2013-02-20 Aldy Hernandez <aldyh@redhat.com>
9579 * trans-mem.c (execute_tm_mark): Do not expand transactions that
9580 are sure to go irrevocable.
9582 2013-02-21 Hans-Peter Nilsson <hp@axis.com>
9584 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
9585 scalars are valid operands.
9587 2013-02-21 Martin Jambor <mjambor@suse.cz>
9589 PR tree-optimization/56310
9590 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
9591 only matching indices and non-negative final offsets.
9592 (intersect_aggregates_with_edge): Pass src_idx to
9593 agg_replacements_to_vector. Pass src_idx insstead of index to
9594 intersect_with_agg_replacements.
9596 2013-02-21 Martin Jambor <mjambor@suse.cz>
9598 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
9599 instead of hard-wired defaults.
9601 2013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
9603 * doc/invoke.texi (MIPS Options): Update documentation of the
9604 floating-point multiply-accumulate instruction restrictions.
9606 2013-02-21 Kostya Serebryany <kcc@google.com>
9608 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
9609 asan_shadow_offset on x86_64 linux.
9611 2013-02-21 Richard Biener <rguenther@suse.de>
9613 PR tree-optimization/56415
9615 2013-02-11 Richard Biener <rguenther@suse.de>
9617 PR tree-optimization/56273
9618 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
9621 2013-02-21 Jakub Jelinek <jakub@redhat.com>
9624 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
9628 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
9629 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
9631 2013-02-20 Jan Hubicka <jh@suse.cz>
9633 PR tree-optimization/56265
9634 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph when
9635 target is referenced for first time.
9637 2013-02-20 Richard Biener <rguenther@suse.de>
9639 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
9640 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
9641 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
9642 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
9643 not return anything.
9644 (rename_ssa_copies): Do not remove unused locals.
9645 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
9646 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
9647 * passes.c (execute_function_todo): Do not schedule unused locals
9648 removal if cleanup_tree_cfg did something.
9649 * tree-ssa-live.c (remove_unused_locals): Dump statistics
9650 about the number of removed locals.
9652 2013-02-20 Richard Biener <rguenther@suse.de>
9654 PR tree-optimization/56398
9655 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip
9658 2013-02-20 Martin Jambor <mjambor@suse.cz>
9660 PR tree-optimization/55334
9661 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
9662 restricted pointers to arrays.
9664 2013-02-20 Richard Biener <rguenther@suse.de>
9665 Jakub Jelinek <jakub@redhat.com>
9667 PR tree-optimization/56396
9668 * tree-ssa-ccp.c (n_const_val): New static variable.
9669 (get_value): Return NULL for SSA names we don't have a lattice
9671 (ccp_initialize): Initialize n_const_val.
9672 * tree-ssa-copy.c (n_copy_of): New static variable.
9673 (init_copy_prop): Initialize n_copy_of.
9674 (get_value): Return NULL_TREE for SSA names we don't have a
9677 2013-02-20 Martin Jambor <mjambor@suse.cz>
9679 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
9681 2013-02-20 Richard Biener <rguenther@suse.de>
9683 * genpreds.c (write_lookup_constraint): Do not compare first
9684 letter of the constraint again.
9686 2013-02-20 Richard Biener <rguenther@suse.de>
9688 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
9690 (get_use_iv_cost): Terminate hashtable walk when coming across
9693 2013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
9695 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
9696 reassociation for avx2 targets.
9698 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
9700 * config/microblaze/microblaze.c: microblaze_has_clz = 0
9701 Add version check for v8.10.a to enable microblaze_has_clz
9702 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
9703 version and TARGET_PATTERN_COMPARE check
9704 * config/microblaze/microblaze.md: New clzsi2 instruction
9706 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
9708 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
9709 function before branching.
9711 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
9713 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
9715 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
9717 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
9720 * sel-sched.c: Include ira.h.
9721 (implicit_clobber_conflict_p): New function.
9722 (moveup_expr): Use it.
9723 * Makefile.in (sel-sched.o): Depend on ira.h.
9725 2013-02-19 Richard Biener <rguenther@suse.de>
9727 PR tree-optimization/56384
9728 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
9729 (vn_hash_type): Split out from ...
9730 (vn_hash_constant_with_type): ... here.
9731 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
9732 (vn_phi_eq): Compare types from vn_phi_s structure.
9733 (vn_phi_lookup): Populate vn_phi_s type.
9734 (vn_phi_insert): Likewise.
9736 2013-02-19 Jakub Jelinek <jakub@redhat.com>
9738 PR tree-optimization/56350
9739 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
9740 if haven't found reduction or nested cycle operand, rather than
9741 asserting we must find it.
9743 PR tree-optimization/56381
9744 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
9747 2013-02-18 Aldy Hernandez <aldyh@redhat.com>
9748 Jakub Jelinek <jakub@redhat.com>
9751 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
9752 (swap_optab_enable): Same.
9753 (init_all_optabs): Use argument instead of global.
9754 * tree.h (struct tree_optimization_option): New field target_optabs.
9755 * expr.h (init_all_optabs): Add argument to prototype.
9756 (TREE_OPTIMIZATION_OPTABS): New.
9757 (save_optabs_if_changed): Protoize.
9758 * optabs.h: Declare this_fn_optabs.
9759 * optabs.c (save_optabs_if_changed): New.
9760 Declare this_fn_optabs.
9761 (init_optabs): Add argument to init_all_optabs() call.
9762 * function.c (invoke_set_current_function_hook): Handle per
9764 * function.h (struct function): New field optabs.
9765 * config/mips/mips.c (mips_set_mips16_mode): Handle when
9766 optimization_current_node has changed.
9767 * target-globals.h (save_target_globals_default_opts): Protoize.
9768 * target-globals.c (save_target_globals_default_opts): New.
9770 2013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9773 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
9774 registers %fr12 and %fr12R as call used.
9777 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
9778 and HImode, require all displacements to be an integer multiple of
9780 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
9781 only allow QImode and HImode when reload is in progress and strict is
9782 true. Likewise for symbolic addresses. Use base14_operand to check
9783 displacements in REG+BASE addresses.
9785 2013-02-18 Richard Biener <rguenther@suse.de>
9787 PR tree-optimization/56366
9788 * tree-vect-loop.c (get_initial_def_for_induction): Properly
9789 handle sign-conversion of outer-loop initial induction value.
9791 2013-02-18 Richard Biener <rguenther@suse.de>
9794 * cfghooks.c (merge_blocks): If we merge a latch into another
9795 block adjust references to it.
9796 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
9797 (verify_loop_structure): Verify that a recorded latch is in fact
9800 2013-02-18 Richard Biener <rguenther@suse.de>
9802 PR tree-optimization/56321
9803 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
9804 order SSA name release and virtual operand unlinking.
9806 2013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
9808 * config/microblaze/microblaze.md (save_stack_block): Define.
9809 (restore_stack_block): Likewise.
9811 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
9813 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
9814 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
9815 * config/microblaze/microblaze.c (microblaze_option_override):
9816 Bail out early for PIC modes when target does not support PIC.
9818 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
9820 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
9821 Replace with a microblaze version.
9822 (microblaze_trampoline_init): Adapt for microblaze.
9823 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
9826 2013-02-16 Jakub Jelinek <jakub@redhat.com>
9827 Dodji Seketeli <dodji@redhat.com>
9830 * asan.c (get_mem_refs_of_builtin_call): White space and style
9832 (instrument_mem_region_access): Do not forget to always put
9833 instrumentation of the of 'base' and 'base + len' in a "if (len !=
9834 0) statement, even for cases where either 'base' or 'base + len'
9835 are not instrumented -- because they have been previously
9836 instrumented. Simplify the logic by putting all the statements
9837 instrument 'base + len' inside a sequence, and then insert that
9838 sequence right before the current insertion point. Then, to
9839 instrument 'base + len', just get an iterator on that statement.
9840 And do not forget to update the pointer to iterator the function
9841 received as argument.
9843 2013-02-15 Vladimir Makarov <vmakarov@redhat.com>
9845 PR rtl-optimization/56348
9846 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
9848 2013-02-15 Steven Bosscher <steven@gcc.gnu.org>
9850 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
9851 (clean_graph_dump_file): Pass base to start_graph_dump.
9853 2013-02-14 Richard Henderson <rth@redhat.com>
9856 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
9858 2013-02-14 Steven Bosscher <steven@gcc.gnu.org>
9860 * collect2-aix.h: Define F_LOADONLY.
9862 2013-02-14 Richard Biener <rguenther@suse.de>
9865 * varasm.c (output_constant_def_1): Get the decl representing
9866 the constant as argument.
9867 (output_constant_def): Wrap output_constant_def_1.
9868 (make_decl_rtl): Use output_constant_def_1 with the decl
9869 representing the constant.
9870 (build_constant_desc): Optionally re-use a decl already
9871 representing the constant.
9872 (tree_output_constant_def): Adjust.
9874 2013-02-14 Dodji Seketeli <dodji@redhat.com>
9877 * asan.c (instrument_builtin_call): Really put the length of the
9878 second source argument into src1_len.
9880 2013-02-13 Jakub Jelinek <jakub@redhat.com>
9882 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
9883 argument. If it is false, don't create edge from then_bb to
9885 (insert_if_then_before_iter): Pass true to it.
9886 (build_check_stmt): Pass false to it.
9887 (transform_statements): Flush hash table only on extended basic
9888 block boundaries, rather than at the beginning of every bb.
9889 Don't flush hash table on nonfreeing_call_p calls.
9890 * tree-flow.h (nonfreeing_call_p): New prototype.
9891 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
9893 2013-02-13 David S. Miller <davem@davemloft.net>
9895 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
9897 2013-02-13 Vladimir Makarov <vmakarov@redhat.com>
9900 * ira.c (max_regno_before_ira): Move from ...
9902 (fix_reg_equiv_init): Use max_regno_before_ira instead of
9905 2013-02-13 Jakub Jelinek <jakub@redhat.com>
9907 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
9909 2013-02-13 Richard Biener <rguenther@suse.de>
9912 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
9913 globals in MEM_REFs.
9915 2013-02-13 Richard Biener <rguenther@suse.de>
9917 * loop-init.c (loop_optimizer_init): Clear loop state when
9918 re-initializing preserved loops.
9919 * loop-unswitch.c (unswitch_single_loop): Return whether
9920 we unswitched the loop. Do not verify loop state here.
9921 (unswitch_loops): When we unswitched a loop discover new
9924 2013-02-13 Kostya Serebryany <kcc@google.com>
9926 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset on x86_64
9928 * sanitizer.def: Rename __asan_init to __asan_init_v1.
9930 2013-02-12 Dodji Seketeli <dodji@redhat.com>
9932 Avoid instrumenting duplicated memory access in the same basic block
9933 * Makefile.in (asan.o): Add new dependency on hash-table.h
9934 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
9935 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
9936 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
9937 (free_mem_ref_resources, has_mem_ref_been_instrumented)
9938 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
9939 (get_mem_ref_of_assignment): New functions.
9940 (get_mem_refs_of_builtin_call): Extract from
9941 instrument_builtin_call and tweak a little bit to make it fit with
9943 (instrument_builtin_call): Use the new
9944 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
9945 of is_gimple_builtin_call.
9946 (instrument_derefs, instrument_mem_region_access): Insert the
9947 instrumented memory reference into the hash table.
9948 (maybe_instrument_assignment): Renamed instrument_assignment into
9949 this, and change it to advance the iterator when instrumentation
9950 actually happened and return true in that case. This makes it
9951 homogeneous with maybe_instrument_assignment, and thus give a
9952 chance to callers to be more 'regular'.
9953 (transform_statements): Clear the memory reference hash table
9954 whenever we enter a new BB, when we cross a function call, or when
9955 we are done transforming statements. Use
9956 maybe_instrument_assignment instead of instrumentation. No more
9957 need to special case maybe_instrument_assignment and advance the
9958 iterator after calling it; it's now handled just like
9959 maybe_instrument_call. Update comment.
9961 2013-02-13 Richard Biener <rguenther@suse.de>
9963 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
9964 Fix loop discovery code.
9966 2013-02-12 Vladimir Makarov <vmakarov@redhat.com>
9969 * lra-constraints.c (process_alt_operands): Match early clobber
9970 operand with itself. Check conflicts with earlyclobber only if
9971 the operand is not reloaded. Prefer to reload conflicting operand
9972 if earlyclobber and matching operands are the same.
9974 2013-02-12 Richard Biener <rguenther@suse.de>
9977 * lto-streamer-out.c (write_symbol): Do not output symbols
9978 for hard register variables.
9980 2013-02-12 Georg-Johann Lay <avr@gjlay.de>
9983 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
9984 (umulsidi3_insn, mulsidi3_insn): New insns.
9986 2013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
9988 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
9989 (struct tune_params): Add vec_costs field.
9990 * config/arm/arm.c (arm_builtin_vectorization_cost)
9991 (arm_add_stmt_cost): New functions.
9992 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
9993 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
9994 (arm_default_vec_cost): New struct of type cpu_vec_costs.
9995 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
9996 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
9997 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
9998 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
10000 2013-02-12 Richard Biener <rguenther@suse.de>
10003 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
10004 decls again if possible.
10006 2013-02-12 Richard Biener <rguenther@suse.de>
10008 PR middle-end/56288
10009 * tree-ssa.c (verify_ssa_name): Fix check, move
10010 SSA_NAME_IN_FREE_LIST check up.
10012 2013-02-12 Jakub Jelinek <jakub@redhat.com>
10013 Steven Bosscher <steven@gcc.gnu.org>
10015 PR rtl-optimization/56151
10016 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
10017 equal to op0 or op1, and last_insn pattern is CODE operation
10018 with MEM dest and one of the operands matches that MEM.
10020 2013-02-11 Sriraman Tallam <tmsriramgoogle.com>
10022 * doc/extend.texi: Document Function Multiversioning and "default"
10023 parameter string to target attribute.
10024 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
10025 target attribute parameter is "default".
10026 (ix86_compare_version_priority): Remove checks for target attribute.
10027 (ix86_mangle_function_version_assembler_name): Change error to sorry.
10028 Remove check for target attribute equal to NULL. Add assert.
10029 (ix86_generate_version_dispatcher_body): Change error to sorry.
10031 2013-02-11 Iain Sandoe <iain@codesourcery.com>
10032 Jack Howarth <howarth@bromo.med.uc.edu>
10033 Patrick Marlier <patrick.marlier@gmail.com>
10036 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
10037 define ENDFILE_SPEC as TM_DESTRUCTOR.
10038 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
10040 2013-02-11 Alexander Potapenko <glider@google.com>
10041 Jack Howarth <howarth@bromo.med.uc.edu>
10042 Jakub Jelinek <jakub@redhat.com>
10045 * config/darwin.c (cdtor_record): Rename ctor_record.
10046 (sort_cdtor_records): Rename sort_ctor_records.
10047 (finalize_dtors): New routine to sort destructors by
10048 priority before use in assemble_integer.
10049 (machopic_asm_out_destructor): Use finalize_dtors if needed.
10051 2013-02-11 Uros Bizjak <ubizjak@gmail.com>
10053 PR rtl-optimization/56275
10054 * simplify-rtx.c (avoid_constant_pool_reference): Check that
10055 offset is non-negative and less than cmode size before
10056 calling simplify_subreg.
10058 2013-02-11 Richard Biener <rguenther@suse.de>
10060 PR tree-optimization/56264
10061 * cfgloop.h (fix_loop_structure): Adjust prototype.
10062 * loop-init.c (fix_loop_structure): Return the number of
10063 newly discovered loops.
10064 * tree-cfgcleanup.c (repair_loop_structures): When new loops
10065 are discovered, do a full loop-closed SSA rewrite.
10067 2013-02-11 Richard Biener <rguenther@suse.de>
10069 PR tree-optimization/56273
10070 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
10072 (check_array_ref): Fix missing newline in dumps.
10073 (search_for_addr_array): Likewise.
10075 2013-02-09 David Edelsohn <dje.gcc@gmail.com>
10077 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
10079 2013-02-09 Jakub Jelinek <jakub@redhat.com>
10082 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
10084 2013-02-08 Vladimir Makarov <vmakarov@redhat.com>
10086 PR rtl-optimization/56246
10087 * lra-constraints.c (simplify_operand_subreg): Try to reuse
10089 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
10090 constraints are satisfied.
10092 2013-02-08 Jeff Law <law@redhat.com>
10095 * emit-rtl.c (reg_is_parm_p): New function.
10096 * regs.h (reg_is_parm_p): New prototype.
10097 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
10098 callee-clobbered registers.
10100 2013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
10103 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
10104 If there is no implicit builtin declaration, just return NULL.
10106 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
10108 * config/i386/sse.md (FMAMODEM): New mode iterator.
10109 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
10110 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
10112 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
10114 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
10115 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
10116 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
10118 2013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10120 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
10121 (microblaze*-*-elf): Likewise.
10122 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
10124 * config/microblaze/microblaze-c.c: Add builtin defines for
10125 _LITTLE_ENDIAN and _BIG_ENDIAN.
10126 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
10127 add to TARGET_DEFAULT flags.
10128 Expand ASM_SPEC and LINK_SPEC.
10129 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
10130 * config/microblaze/microblaze.md: Update extendsidi2 and
10131 movdi_internal instructions to use low-order / high-order reg
10133 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
10134 options and inversemask / mask of LITTLE_ENDIAN.
10135 * config/microblaze/t-microblaze: Expand multilib options to
10136 include mlittle-endian (le) and update exceptions patterns.
10138 2013-02-08 Jakub Jelinek <jakub@redhat.com>
10140 PR rtl-optimization/56195
10141 * lra-constraints.c (get_reload_reg): Don't reuse regs
10142 if they have smaller mode than requested, if they have
10143 wider mode than requested, try to return a SUBREG.
10145 PR tree-optimization/56250
10146 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
10147 if type is unsigned and code isn't MULT_EXPR.
10149 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
10151 PR tree-optimization/56064
10152 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
10153 bits according to mode.
10154 * fixed-value.h (fixed_from_double_int)
10155 (const_fixed_from_double_int): Adjust comments.
10157 2013-02-08 Richard Biener <rguenther@suse.de>
10160 * lto-streamer.h (struct data_in): Remove current_file, current_line
10161 and current_col members.
10162 * lto-streamer-out.c (lto_output_location): Stream changed bits
10163 en-block for efficiency.
10164 * lto-streamer-in.c (clear_line_info): Remove.
10165 (lto_input_location): Cache current file, line and column
10166 globally via local statics. Read changed bits en-block.
10167 (input_function): Do not call clear_line_info.
10168 (lto_read_body): Likewise.
10169 (lto_input_toplevel_asms): Likewise.
10171 2013-02-08 Michael Matz <matz@suse.de>
10173 PR tree-optimization/52448
10174 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
10175 (nt_call_phase): New static.
10176 (add_or_mark_expr): Only mark accesses with newer phase than any
10178 (nonfreeing_call_p): New.
10179 (nt_init_block): Update nt_call_phase, mark blocks as visited.
10180 (nt_fini_block): Keep blocks marked as visited.
10181 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
10183 2013-02-08 Richard Biener <rguenther@suse.de>
10185 * ira.c (ira): Free broken dominator information.
10187 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
10189 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
10191 2013-02-08 Marek Polacek <polacek@redhat.com>
10193 * cfgloop.c (verify_loop_structure): Add more checking of headers.
10195 2013-02-08 Richard Biener <rguenther@suse.de>
10197 PR middle-end/56181
10198 * cfgloop.h (flow_loops_find): Adjust.
10199 (bb_loop_header_p): Declare.
10200 * cfgloop.c (bb_loop_header_p): New function split out from ...
10201 (flow_loops_find): ... here. Adjust function signature,
10202 support incremental loop structure update.
10203 (verify_loop_structure): Cleanup. Verify a loop is a loop.
10204 * cfgloopmanip.c (fix_loop_structure): Move ...
10205 * loop-init.c (fix_loop_structure): ... here.
10206 (apply_loop_flags): Split out from ...
10207 (loop_optimizer_init): ... here.
10208 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
10209 in incremental mode, only remove dead loops here.
10211 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
10214 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
10215 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
10216 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
10217 (*round<mode>3.libgcc): New insns for fixed-modes.
10218 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
10219 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
10220 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
10221 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
10222 implementations. Define to __builtin_avr_absFX,
10223 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
10224 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
10225 __builtin_avr_countlsFX, respectively.
10226 * config/avr/avr-c.c (target.h): Include it.
10227 (enum avr_builtin_id): New enum.
10228 (avr_resolve_overloaded_builtin): New static function.
10229 (avr_register_target_pragmas): Use it to set
10230 targetm.resolve_overloaded_builtin.
10231 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
10232 tree nodes used by DEF_BUILTIN.
10233 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
10234 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
10235 <AVR_BUILTIN_xxBITS>: Same.
10237 2013-02-08 Richard Biener <rguenther@suse.de>
10239 * cfgloop.c (verify_loop_structure): Properly handle
10240 a loop exiting to another loop header.
10241 * ira-int.h (ira_loops): Remove.
10242 * ira.c (ira_loops): Remove.
10243 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
10244 (do_reload): Use loop_optimizer_finalize.
10245 * ira-build.c (create_loop_tree_nodes): Use get_loops and
10246 number_of_loops to access the loop tree.
10247 (more_one_region_p): Likewise.
10248 (finish_loop_tree_nodes): Likewise.
10249 (rebuild_regno_allocno_maps): Likewise.
10250 (mark_loops_for_removal): Likewise.
10251 (mark_all_loops_for_removal): Likewise.
10252 (remove_unnecessary_regions): Likewise.
10253 (ira_build): Likewise.
10254 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
10256 2013-02-08 Richard Biener <rguenther@suse.de>
10258 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
10259 * ipa-pure-const.c (analyze_function): Avoid calling
10260 mark_irreducible_loops twice.
10261 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
10263 2013-02-07 David S. Miller <davem@davemloft.net>
10265 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
10267 * var-tracking.c (vt_add_function_parameter): Test the presence of
10268 HAVE_window_save properly and do not remap argument registers when
10269 we have a leaf function.
10271 2013-02-07 Uros Bizjak <ubizjak@gmail.com>
10274 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
10276 * config/i386/i386.c (ix86_print_operand): Ditto.
10278 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
10280 * lra-constraints.c (process_alt_operands): Fix recently added comment.
10282 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
10284 PR rtl-optimization/56225
10285 * lra-constraints.c (process_alt_operands): Check that reload hard
10286 reg can hold value for strict_low_part.
10288 2013-02-07 Jakub Jelinek <jakub@redhat.com>
10291 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
10292 dwarf2out_end_function.
10293 (in_first_function_p, maybe_at_text_label_p,
10294 first_loclabel_num_not_at_text_label): New variables.
10295 (dwarf2out_var_location): In the first function find out
10296 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
10297 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
10300 2013-02-07 Eric Botcazou <ebotcazou@adacore.com>
10302 PR rtl-optimization/56178
10303 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
10304 SUBREG of a register. Tidy up related block of code.
10305 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
10306 note if the source is a register or a SUBREG of a register.
10308 2013-02-07 Jakub Jelinek <jakub@redhat.com>
10311 * config/rs6000/rs6000.md (ptrm): New mode attr.
10312 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
10313 call_value_indirect_aix<pttrsize>,
10314 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
10317 2013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
10319 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
10320 if -bnortl. Convert to strcmp and strncmp.
10322 2013-02-07 Alan Modra <amodra@gmail.com>
10325 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
10326 addresses won't wrap when offsetting.
10327 (rs6000_secondary_reload): Provide secondary reloads needed for
10328 wrapping LO_SUM addresses.
10330 2013-02-06 Thomas Schwinge <thomas@codesourcery.com>
10332 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
10333 MACH, just __MACH__.
10335 2013-02-06 Richard Biener <rguenther@suse.de>
10337 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
10338 instead of calling fix_loop_structure.
10340 2013-02-06 Jakub Jelinek <jakub@redhat.com>
10342 PR middle-end/56217
10343 * omp-low.c (use_pointer_for_field): Return false if
10344 lower_send_shared_vars doesn't generate any copy-out code.
10346 2013-02-06 Tom de Vries <tom@codesourcery.com>
10348 PR rtl-optimization/56131
10349 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
10350 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
10351 of the label is NULL. Add comment.
10353 2013-02-05 Jakub Jelinek <jakub@redhat.com>
10355 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
10358 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
10359 (STATIC_LIBTSAN_LIBS): Likewise.
10360 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
10361 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
10362 is defined, don't add anything else beyond that.
10363 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
10364 (LINK_COMMAND_SPEC): Use them.
10366 PR tree-optimization/56205
10367 * tree-stdarg.c (check_all_va_list_escapes): Return true if
10368 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
10369 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
10371 2013-02-05 Richard Biener <rguenther@suse.de>
10373 PR tree-optimization/53342
10374 PR tree-optimization/53185
10375 * tree-vectorizer.h (vect_check_strided_load): Remove.
10376 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
10377 not disallow peeling for vectorized strided loads.
10378 (vect_check_strided_load): Make static and simplify.
10379 (vect_analyze_data_refs): Adjust.
10380 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
10381 correctly when vectorizing strided loads.
10383 2013-02-05 Richard Biener <rguenther@suse.de>
10385 * doc/install.texi: Refer to ISL, not PPL.
10387 2013-02-05 Jan Hubicka <jh@suse.cz>
10389 PR tree-optimization/55789
10390 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
10392 2013-02-05 Jan Hubicka <jh@suse.cz>
10394 PR tree-optimization/55789
10395 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
10396 the dead call anyway.
10398 2013-02-05 Eric Botcazou <ebotcazou@adacore.com>
10401 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
10403 2013-02-04 Alexander Potapenko <glider@google.com>
10404 Jack Howarth <howarth@bromo.med.uc.edu>
10405 Jakub Jelinek <jakub@redhat.com>
10408 * config/darwin.c (sort_ctor_records): Stabilized qsort
10409 on constructor priority by using original position.
10410 (finalize_ctors): New routine to sort constructors by
10411 priority before use in assemble_integer.
10412 (machopic_asm_out_constructor): Use finalize_ctors if needed.
10414 2013-02-04 Jakub Jelinek <jakub@redhat.com>
10417 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
10418 about visibility on artificial decls.
10419 * config/sol2.c (solaris_assemble_visibility): Likewise.
10421 2013-02-04 Kai Tietz <ktietz@redhat.com>
10424 * config/i386/i386.c (function_value_ms_64): Add additional valtype
10425 argument and improve checking of return-argument types for 16-byte
10427 (ix86_function_value_1): Add additional valtype argument on call
10428 of function_value_64.
10429 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
10430 handling infunction_value_64 function.
10432 2013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
10434 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
10436 2013-02-04 Richard Biener <rguenther@suse.de>
10438 PR tree-optimization/56188
10439 * tree-ssa-structalias.c (label_visit): Consider case with
10440 initially non-empty points-to set.
10441 (perform_var_substitution): Dump node mapping and clean up.
10443 2013-02-04 Richard Guenther <rguenther@suse.de>
10446 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
10447 node prevail as last resort.
10448 (lto_symtab_merge_decls): Remove guard on LTRANS here.
10449 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
10451 2013-02-04 Richard Biener <rguenther@suse.de>
10453 PR tree-optimization/56113
10454 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
10456 (equiv_class_lookup_or_add): ... this.
10457 (label_visit): Adjust and fix error in previous patch.
10458 (perform_var_substitution): Adjust.
10460 2013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
10462 * config/sh/divtab.c: Fix formatting and comments throughout the file.
10463 * config/sh/sh4-300.md: Likewise.
10464 * config/sh/sh4a.md: Likewise.
10465 * config/sh/constraints.md: Likewise.
10466 * config/sh/sh.md: Likewise.
10467 * config/sh/netbsd-elf.h: Likewise.
10468 * config/sh/predicates.md: Likewise.
10469 * config/sh/sh-protos.h: Likewise.
10470 * config/sh/ushmedia.h: Likewise.
10471 * config/sh/linux.h: Likewise.
10472 * config/sh/sh.c: Likewise.
10473 * config/sh/superh.h: Likewise.
10474 * config/sh/elf.h: Likewise.
10475 * config/sh/sh4.md: Likewise.
10476 * config/sh/sh.h: Likewise.
10478 2013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10480 * config/pa/constraints.md: Adjust unused letters. Change "T"
10481 constraint to match_test floating_point_store_memory_operand().
10482 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
10483 (base14_operand): New.
10484 (floating_point_store_memory_operand): New.
10485 (integer_store_memory_operand): Revise to use base14_operand and
10486 reg_plus_base_memory_operand.
10487 (move_dest_operand): Allow symbolic_memory_operands.
10488 (symbolic_memory_operand): Check for LO_SOM.
10489 (symbolic_operand): Change default case to break.
10490 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
10491 CONST_DOUBLE values to be reloaded by putting them into memory when
10492 the destination is a floating point register.
10493 (movdf): Remove code to handle CONST_DOUBLE.
10495 (reload_indf_r1): New.
10496 (reload_insf_r1): New.
10497 Consistently use "Q" and "T" constraints with integer and floating
10498 point move instructions, respectively.
10499 (movdi): Remove FAIL.
10500 Change predicate for source operand unamed DImode move from
10501 general_operand to move_src_operand.
10502 (umulsidi3): Change predicate for destination operand to
10504 Likewise for similar unamed patterns.
10505 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
10506 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
10507 (hppa_legitimize_address): Simplify mask calculation.
10508 (pa_emit_move_sequence): Revised handling of secondary reloads from
10509 REG+D addresses for floating point loads and stores. Directly handle
10510 loading CONST0_RTX (mode) to a floating point register.
10511 (pa_secondary_reload): Handle reloading DF and SFmode constant values
10512 to floating point registers. Don't restrict secondary reloads to
10513 floating point registers to integer modes. Revise some comments and
10515 (TARGET_LEGITIMATE_ADDRESS_P): Define.
10516 (pa_legitimate_address_p): New.
10517 (pa_legitimize_reload_address): New.
10518 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
10519 (STRICT_REG_OK_FOR_BASE_P): New.
10520 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
10521 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
10523 2013-02-03 David Edelsohn <dje.gcc@gmail.com>
10524 Andrew Dixie <andrewd@gentrack.com>
10526 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
10529 2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
10531 * expmed.c (extract_bit_field_1): Pass the full width of the
10532 structure to get_best_reg_extraction_insn.
10534 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
10537 * configure.ac (use_cxa_atexit): Add AIX.
10538 * configure: Regenerate.
10540 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
10542 2013-02-01 Jakub Jelinek <jakub@redhat.com>
10545 * final.c (need_profile_function): New variable.
10546 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
10547 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
10548 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
10549 notes, targetm.asm_out.function_prologue doesn't emit anything,
10550 HAVE_prologue and profiler should be emitted before prologue,
10551 set need_profile_function instead of emitting it.
10552 (final_scan_insn): If need_profile_function, emit
10553 profile_function on the first NOTE_INSN_BASIC_BLOCK or
10554 NOTE_INSN_FUNCTION_BEG note.
10556 2013-02-01 Richard Henderson <rth@redhat.com>
10558 * config/rs6000/rs6000.md (smulditi3): New.
10561 * config/alpha/alpha.md (umulditi3): New.
10563 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
10565 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
10566 (ASM_OUTPUT_ALIGNED_LOCAL): New.
10568 2013-02-01 Richard Biener <rguenther@suse.de>
10570 PR tree-optimization/56113
10571 * tree-ssa-structalias.c (label_visit): Reduce work for
10572 single-predecessor nodes.
10574 2013-02-01 Eric Botcazou <ebotcazou@adacore.com>
10576 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
10577 range isn't testing for zero.
10579 2013-01-31 Steven Bosscher <steven@gcc.gnu.org>
10581 PR middle-end/56113
10582 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
10584 2013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
10585 Nick Clifton <nickc@redhat.com>
10587 * config/v850/constraints.md (Q): Define as a memory constraint.
10588 * config/v850/predicates.md (label_ref_operand): New predicate.
10589 (e3v5_shift_operand): New predicate.
10590 (ior_operator): New predicate.
10591 * config/v850/t-v850: Add e3v5 multilib.
10592 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
10593 (v850_gen_movdi): Prototype.
10594 * config/v850/v850.c: Add support for e3v5 architecture.
10595 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
10597 (construct_save_jarl): Add e3v5 long JARL support.
10598 (v850_adjust_insn_length): New function. Adjust length of call
10599 insns when using e3v5 instructions.
10600 (v850_gen_movdi): New function: Generate instructions to move a
10602 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
10603 (CPP_SPEC): Define __v850e3v5__ as appropriate.
10604 (TARGET_USE_FPU): Enable for e3v5.
10605 (CONST_OK_FOR_W): New macro.
10606 (ADJUST_INSN_LENGTH): Define.
10607 * config/v850/v850.md (UNSPEC_LOOP): Define.
10608 (attr cpu): Add v850e3v5.
10609 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
10610 (movdi): New pattern.
10611 (movdi_internal): New pattern.
10612 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
10613 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
10614 (cstoresf4): Likewise.
10615 (cstoredf4): Likewise.
10616 (insv): New pattern.
10617 (rotlso3_a): New pattern.
10618 (rotlsi3_b): New pattern
10619 (rotlsi3_v850e3v5): New pattern.
10620 (doloop_begin): New pattern.
10621 (fix_loop_counter): New pattern.
10622 (doloop_end): New pattern.
10623 (branch_normal): Add e3v5 long branch support.
10624 (branch_invert): Likewise.
10625 (branch_z_normal): Likewise.
10626 (branch_z_invert): Likewise.
10627 (branch_nz_normal): Likewise.
10628 (branch_nz_invert): Likewise.
10629 (call_internal_short): Add e3v5 register-indirect JARL support.
10630 (call_internal_long): Likewise.
10631 (call_value_internal_short): Likewise.
10632 (call_value_internal_long): Likewise.
10633 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
10634 (mloop): New option.
10635 * config.gcc: Add support for configuring v840e3v5 target.
10636 * doc/invoke.texi: Document new v850 specific command line options.
10638 2013-01-31 Paul Koning <ni1d@arrl.net>
10642 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
10643 children if parent is a class.
10644 (prune_unused_types_prune): Don't add DW_AT_declaration.
10646 2013-01-31 Richard Biener <rguenther@suse.de>
10648 PR tree-optimization/56157
10649 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
10650 match up operand with SLP child.
10652 2013-01-31 Jason Merrill <jason@redhat.com>
10655 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
10656 parameters the first time.
10657 (gen_scheduled_generic_parms_dies): Check completeness here.
10659 2013-01-31 Richard Biener <rguenther@suse.de>
10661 PR middle-end/53073
10662 * common.opt (faggressive-loop-optimizations): New flag,
10663 enabled by default.
10664 * doc/invoke.texi (faggressive-loop-optimizations): Document.
10665 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
10666 infer_loop_bounds_from_undefined by it.
10668 2013-01-31 Richard Biener <rguenther@suse.de>
10670 PR tree-optimization/56150
10671 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
10672 visit virtual operands.
10673 (find_uses_to_rename_bb): Likewise.
10675 2013-01-31 Richard Biener <rguenther@suse.de>
10677 PR tree-optimization/56150
10678 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
10679 mixed store non-store stmts.
10681 2013-01-30 Jakub Jelinek <jakub@redhat.com>
10684 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
10685 LIBASAN_EARLY_SPEC is defined.
10686 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
10687 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
10689 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
10692 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
10693 invalid args instead of ICEing on it.
10694 (ix86_valid_target_attribute_tree): Return error_mark_node if
10695 ix86_valid_target_attribute_inner_p failed.
10696 (ix86_valid_target_attribute_p): Return false only if
10697 ix86_valid_target_attribute_tree returned error_mark_node. Allow
10698 target("default") attribute.
10699 (sorted_attr_string): Change argument from const char * to tree,
10700 merge in all target attribute arguments rather than just one.
10701 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
10702 instead of free. Avoid using strcat.
10703 (ix86_mangle_function_version_assembler_name): Mangle
10704 target("default") as if no target attribute is present. Adjust
10705 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
10706 instead of xmalloc and XDELETEVEC instead of free.
10707 (ix86_function_versions): Don't return true if one of the decls
10708 doesn't have target attribute. If they don't and one of the decls
10709 is DECL_FUNCTION_VERSIONED, report an error. Adjust
10710 sorted_attr_string caller. Use XDELETEVEC instead of free.
10711 (ix86_supports_function_versions): Remove.
10712 (make_name): Fix up formatting.
10713 (make_dispatcher_decl): Remove resolver_name and its initialization.
10714 Avoid leaking memory.
10715 (is_function_default_version): Return true if there is
10716 target("default") attribute rather than no target attribute at all.
10717 (make_resolver_func): Avoid leaking memory.
10718 (ix86_generate_version_dispatcher_body): Likewise.
10719 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
10720 * target.def (supports_function_versions): Remove.
10721 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
10722 * doc/tm.texi: Regenerated.
10724 2013-01-30 Vladimir Makarov <vmakarov@redhat.com>
10726 PR rtl-optimization/56144
10727 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
10728 for values with side effects.
10730 2013-01-30 Richard Biener <rguenther@suse.de>
10732 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
10733 (sparseset_pop): Likewise.
10734 * cfganal.c (compute_idf): Likewise. Increase work-stack size
10735 to be able to use quick_push in the worker loop.
10737 2013-01-30 Marek Polacek <polacek@redhat.com>
10739 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
10741 2013-01-30 Richard Biener <rguenther@suse.de>
10744 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
10746 2013-01-30 Georg-Johann Lay <avr@gjlay.de>
10748 PR tree-optimization/56064
10749 * fixed-value.c (fixed_from_double_int): New function.
10750 * fixed-value.h (fixed_from_double_int): New prototype.
10751 (const_fixed_from_double_int): New static inline function.
10752 * fold-const.c (native_interpret_fixed): New static function.
10753 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
10754 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
10755 (native_encode_fixed): New static function.
10756 (native_encode_expr) <FIXED_CST>: Use it.
10757 (native_interpret_int): Move double_int worker code to...
10758 * double-int.c (double_int::from_buffer): ...this new static method.
10759 * double-int.h (double_int::from_buffer): Prototype it.
10761 2013-01-30 Richard Biener <rguenther@suse.de>
10763 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
10764 New pointer-map and obstack.
10765 (init_alias_vars): Allocate pointer-map and obstack.
10766 (delete_points_to_sets): Free them.
10767 (find_what_var_points_to): Cache result.
10768 (find_what_p_points_to): Adjust for changed interface of
10769 find_what_var_points_to.
10770 (compute_points_to_sets): Likewise.
10771 (ipa_pta_execute): Likewise.
10773 2013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10775 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
10776 * configure: Regenerate.
10777 * config.in: Regenerate.
10778 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
10779 #nobits/#progbits if supported.
10781 2013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
10784 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
10785 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
10786 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
10788 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
10790 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
10791 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
10793 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
10795 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
10796 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
10798 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
10800 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
10802 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
10803 * config/arm/cortex-a7.md: New bypasses using
10804 arm_mac_accumulator_is_result.
10806 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
10808 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
10809 (cortex_a7_neon_mla): Likewise.
10810 (cortex_a7_fpfmad): New reservation.
10811 (cortex_a7_fpmacs): Use ffmas and update required units.
10812 (cortex_a7_fpmuld): Update required units and latency.
10813 (cortex_a7_fpmacd): Likewise.
10814 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
10815 (cortex_a7_neon). Likewise.
10816 (bypass) Update participating units.
10818 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
10820 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
10821 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
10823 * config/arm/vfp11.md (vfp_farith): Use ffmas.
10824 (vfp_fmul): Use ffmad.
10825 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
10826 (cortex_r4_fmacd): Use ffmad.
10827 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
10828 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
10829 (cortex_a9_fmacd): Use ffmad.
10830 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
10831 (cortex_a8_vfp_macd): Use ffmad.
10832 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
10833 (cortex_a5_fpmacd): Use ffmad.
10834 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
10835 (cortex_a15_vfp_macd): Use ffmad.
10836 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
10838 2013-01-29 Jason Merrill <jason@redhat.com>
10841 * varasm.c (default_assemble_visibility): Don't warn about
10842 visibility on artificial decls.
10844 2013-01-29 Richard Biener <rguenther@suse.de>
10846 PR tree-optimization/56113
10847 * tree-ssa-structalias.c (equiv_class_lookup): Also return
10849 (label_visit): Free duplicate bitmaps and record the leader instead.
10850 (perform_var_substitution): Adjust.
10852 2013-01-29 Richard Biener <rguenther@suse.de>
10854 PR tree-optimization/55270
10855 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
10856 the CFG, schedule loops for fixup.
10858 2013-01-29 Nick Clifton <nickc@redhat.com>
10860 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
10863 2013-01-28 Leif Ekblad <leif@rdos.net>
10865 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
10866 * config/i386/i386.h (TARGET_RDOS): New macro.
10867 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
10868 * config/i386/i386.c (ix86_option_override_internal): For 64bit
10869 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
10870 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
10871 DEFAULT_LARGE_SECTION_THRESHOLD.
10872 * config/i386/i386.md (R14_REG, R15_REG): New constants.
10873 * config/i386/rdos.h: New file.
10874 * config/i386/rdos64.h: New file.
10876 2013-01-28 Bernd Schmidt <bernds@codesourcery.com>
10879 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
10882 2013-01-28 Jakub Jelinek <jakub@redhat.com>
10884 PR rtl-optimization/56117
10885 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
10886 call cselib_lookup_from_insn on the MEM before calling
10887 add_insn_mem_dependence.
10889 2013-01-28 Richard Biener <rguenther@suse.de>
10891 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
10892 to a stmt that didn't have one.
10893 (copy_phis_for_bb): Likewise for PHI arguments.
10894 (copy_debug_stmt): Likewise for debug stmts.
10896 2013-01-28 Richard Biener <rguenther@suse.de>
10898 PR tree-optimization/56034
10899 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
10900 (partition_builtin_p): Adjust.
10901 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
10902 it is the last partition.
10903 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
10904 up the vertex for the definition.
10905 (classify_partition): Classify whether a partition is a
10906 PKIND_REDUCTION, thus has uses outside of the loop.
10907 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
10908 Merge all PKIND_REDUCTION partitions into the last partition.
10909 (tree_loop_distribution): Seed partitions from reductions as well.
10911 2013-01-28 Jakub Jelinek <jakub@redhat.com>
10913 PR tree-optimization/56125
10914 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
10915 pow(x,c) into sqrt(x) * powi(x, n/2) or
10916 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
10917 optimizing for size.
10918 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
10919 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
10922 PR tree-optimization/56094
10923 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
10924 to UNKNOWN_LOCATION while gimplifying expr.
10926 2013-01-27 Uros Bizjak <ubizjak@gmail.com>
10929 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
10930 operand 0 in movabs insn template for -masm=intel asm alternative.
10931 (*movabs<mode>_2): Ditto for operand 1.
10933 2013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
10936 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
10939 2013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10941 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
10944 2013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
10946 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
10947 Undef to avoid warning.
10949 2013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
10951 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
10952 * configure: Regenerate.
10954 2013-01-25 Jakub Jelinek <jakub@redhat.com>
10956 PR tree-optimization/56098
10957 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
10958 for stmts with volatile ops.
10959 (cond_store_replacement): Don't optimize if assign has volatile ops.
10960 (cond_if_else_store_replacement_1): Don't optimize if either
10961 then_assign or else_assign have volatile ops.
10962 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
10965 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
10967 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
10969 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
10971 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
10972 missing ':' in asm example.
10974 2013-01-25 Tejas Belagod <tejas.belagod@arm.com>
10976 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
10977 entries into lane and laneq entries.
10978 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
10979 Remove AdvSIMD scalar modes.
10980 (aarch64_sq<r>dmulh_laneq<mode>): New.
10981 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
10983 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
10984 builtin implementations to relfect changes in RTL in aarch64-simd.md.
10985 * config/aarch64/iterators.md (VCOND): New.
10988 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
10991 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
10992 Add NULL LIBNAME argument to existing definitions.
10993 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
10994 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
10995 * config/avr/avr.c (DEF_BUILTIN): Same.
10996 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
10997 (avr_expand_builtin): Expand to a vanilla call if a libgcc
10998 implementation is available (DECL_ASSEMBLER_NAME is set).
10999 (avr_fold_absfx): New static function.
11000 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
11001 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
11002 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
11003 AVR_BUILTIN_ABSLLK.
11004 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
11005 (abshk, absk, abslk, absllk): Provide as static inline functions.
11007 2013-01-25 Marek Polacek <polacek@redhat.com>
11009 PR tree-optimization/56035
11010 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
11012 2012-01-24 Uros Bizjak <ubizjak@gmail.com>
11014 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
11015 (*movtf_internal_rex64): Add (!o,C) alternative
11016 (*movxf_internal_rex64): Ditto.
11017 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
11019 2013-01-24 Shenghou Ma <minux.ma@gmail.com>
11021 * doc/invoke.texi: fix typo.
11022 * doc/objc.texi: fix typo.
11024 2013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
11026 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
11027 for the first two alternatives.
11029 2013-01-24 Diego Novillo <dnovillo@google.com>
11031 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
11032 (ggc-zone.o): Remove.
11033 * configure.ac: Remove option --with-gc.
11034 * configure: Re-generate.
11035 * doc/install.texi: Remove documentation for --with-gc.
11036 * gengtype.c (write_enum_defn): Remove. Update all users.
11037 (write_Types_process_field): Remove generation of gt_e_* argument.
11038 (output_type_enum): Remove. Update all users.
11039 (write_enum_defn): Remove. Update all users.
11040 (enum alloc_zone): Remove. Update all users.
11041 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
11042 * ggc-common.c (ggc_splay_alloc): Remove first argument.
11043 Update all callers.
11044 (struct ptr_data): Remove field TYPE. Update all users.
11045 (gt_pch_note_object): Remove argument TYPE. Update all users.
11046 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
11048 * ggc-none.c (ggc_alloc_typed_stat): Remove.
11049 (struct alloc_zone): Remove.
11050 (ggc_internal_alloc_zone_stat): Remove.
11051 (ggc_internal_cleared_alloc_zone_stat): Remove.
11052 * ggc-page.c (ggc_alloc_typed_stat): Remove.
11053 (ggc_pch_count_object): Remove last argument. Update all users.
11054 (ggc_pch_alloc_object): Remove last argument. Update all users.
11055 (struct alloc_zone): Remove.
11056 * ggc-zone.c: Remove.
11057 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
11058 (struct alloc_zone): Remove.
11059 (ggc_alloc_typed_stat): Remove.
11060 (ggc_alloc_typed): Remove.
11061 (ggc_splay_alloc): Remove first argument.
11062 (rtl_zone): Remove. Update all users.
11063 (tree_zone): Remove. Update all users.
11064 (tree_id_zone): Remove. Update all users.
11065 (ggc_internal_zone_alloc_stat): Remove. Update all users.
11066 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
11067 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
11068 * tree-ssanames.c: Remove references to zone allocator in comments.
11070 2013-01-24 Georg-Johann Lay <avr@gjlay.de>
11072 * config/avr/avr.c (avr_out_fract): Make register numbers that
11073 might be outside of source operand signed.
11075 2013-01-24 Uros Bizjak <ubizjak@gmail.com>
11077 * config/i386/constraints.md (Yf): New constraint.
11078 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
11079 of f constraint to conditionaly disable x87 register preferences.
11080 (*movdf_internal): Ditto.
11081 (*movsf_internal): Ditto.
11083 2013-01-24 Steven Bosscher <steven@gcc.gnu.org>
11085 PR inline-asm/55934
11086 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
11087 that have operands with impossible constraints.
11088 Add a FIXME for a speed-up opportunity.
11089 * lra-constraints.c (process_alt_operands): Verify that a class
11090 selected from constraints on asms is valid for the operand mode.
11091 (curr_insn_transform): Remove incorrect comment.
11093 2013-01-23 David Edelsohn <dje.gcc@gmail.com>
11095 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
11096 TOC operand is a valid symbol ref in the constant pool.
11098 2013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
11100 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
11102 2013-01-23 Georg-Johann Lay <avr@gjlay.de>
11105 * config/avr/stdfix.h: New file.
11106 * t-avr (stdfix-gcc.h): New rule to build it.
11107 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
11109 2013-01-23 Kostya Serebryany <kcc@google.com>
11111 * config/darwin.h: remove dependency on
11112 CoreFoundation (asan on Mac OS).
11114 2013-01-23 Jakub Jelinek <jakub@redhat.com>
11117 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
11118 instead of cmpdi_operand for first comparison operand.
11119 Don't assert that comparison operands aren't both constants.
11121 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
11123 * doc/install.texi (Downloading the Source): Update references to
11124 downloading separate components.
11126 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
11128 * doc/extend.texi (__int128): Improve grammar.
11130 2013-01-22 Uros Bizjak <ubizjak@gmail.com>
11133 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
11134 alternative to (o,r).
11135 (*movdi_internal_rex64): Remove (!o,n) alternative.
11136 (DImode immediate->memory splitter): Remove.
11137 (DImode immediate->memory peephole2): Remove.
11138 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
11139 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
11140 alternative to (!o,*r).
11141 (*movtf_internal_sse): New pattern.
11142 (*movxf_internal_rex64): New pattern.
11143 (*movxf_internal): Disable for TARGET_64BIT.
11144 (*movdf_internal_rex64): Remove (!o,F) alternative.
11146 2013-01-22 Jakub Jelinek <jakub@redhat.com>
11148 PR middle-end/56074
11149 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
11150 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
11151 * tree-vect-loop-manip.c (find_loop_location): Also ignore
11152 stmt locations where LOCATION_LOCUS of the stmt location is
11153 UNKNOWN_LOCATION or BUILTINS_LOCATION.
11156 * config/i386/i386.md (UNSPEC_STOS): New.
11157 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
11158 *strsetqi_1): Add UNSPEC_STOS.
11160 2013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
11163 * doc/invoke.texi: Remove left over -Wsynth example.
11165 2013-01-21 Jakub Jelinek <jakub@redhat.com>
11167 PR tree-optimization/56051
11168 * fold-const.c (fold_binary_loc): Don't fold
11169 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
11170 a narrowing conversion, or widening conversion from signed
11173 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
11175 PR rtl-optimization/56023
11176 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
11177 dependent on debug instruction.
11179 2013-01-21 Martin Jambor <mjambor@suse.cz>
11181 PR middle-end/56022
11182 * function.c (allocate_struct_function): Call
11183 invoke_set_current_function_hook earlier.
11185 2013-01-21 Jakub Jelinek <jakub@redhat.com>
11187 * reload1.c (init_reload): Only initialize reload_obstack
11188 during the first call.
11190 2013-01-21 Marek Polacek <polacek@redhat.com>
11192 * cfgloop.c (verify_loop_structure): Fix up grammar.
11194 2013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
11196 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
11197 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
11199 2013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11202 * config/arm/marvell-pj4.md: Update copyright year.
11203 Fix up use of alu to alu_reg and simple_alu_imm.
11205 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
11207 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
11209 2013-01-20 Vladimir Makarov <vmakarov@redhat.com>
11212 * lra-constraints.c (curr_insn_transform): Don't reuse original
11213 insn for secondary memory move when memory mode should be different.
11215 2013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11217 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
11218 atomic_storedi_1): New patterns.
11220 2013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
11222 btver2 pipeline descriptions.
11223 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
11225 * config/i386/i386.md (btver2_decode): New type attributes.
11226 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
11228 * config/i386/btver2.md: New file describing btver2 pipelines.
11230 2013-01-19 Andrew Pinski <apinski@cavium.com>
11232 PR tree-optimization/52631
11233 * tree-ssa-sccvn (visit_use): Before looking up the original
11234 statement, try looking up the simplified expression.
11236 2013-01-19 Anthony Green <green@moxielogic.com>
11238 * config/moxie/moxie.c (moxie_expand_prologue): Set
11239 current_function_static_stack_size.
11241 2013-01-18 Jakub Jelinek <jakub@redhat.com>
11243 PR tree-optimization/56029
11244 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
11245 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
11247 2013-01-18 Sharad Singhai <singhai@google.com>
11249 PR tree-optimization/55995
11250 * dumpfile.c (dump_loc): Print location only if available.
11251 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
11253 2013-01-18 Vladimir Makarov <vmakarov@redhat.com>
11256 * lra-constraints.c (curr_insn_transform): Reuse original insn for
11257 secondary memory move.
11258 (inherit_reload_reg): Use rclass instead of cl for
11259 check_secondary_memory_needed_p.
11261 2013-01-18 Jakub Jelinek <jakub@redhat.com>
11263 PR middle-end/56015
11264 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
11265 the case where writing real complex part of target modifies op1.
11267 2013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
11269 * config/aarch64/aarch64-simd.md
11270 (aarch64_vcond_internal<mode>): Handle unordered cases.
11271 * config/aarch64/iterators.md (v_cmp_result): New.
11273 2013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
11274 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11276 * config/arm/marvell-pj4.md: New file.
11277 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
11278 * config/arm/arm.md (generic_sched): Add marvell_pj4.
11279 (generic_vfp): Likewise.
11280 * config/arm/arm-cores.def: Add marvell-pj4.
11281 * config/arm/arm-tune.md: Regenerate.
11282 * config/arm/arm-tables.opt: Regenerate.
11283 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
11284 * doc/invoke.texi: Document marvell-pj4.
11286 2013-01-18 Tejas Belagod <tejas.belagod@arm.com>
11288 * config/aarch64/arm_neon.h: Map scalar types to standard types.
11290 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
11295 * var-tracking.c (negative_power_of_two_p): New.
11296 (global_get_addr_cache, local_get_addr_cache): New.
11297 (get_addr_from_global_cache, get_addr_from_local_cache): New.
11298 (vt_canonicalize_addr): Rewrite using the above. Adjust the
11300 (vt_stack_offset_p): Remove.
11301 (vt_canon_true_dep): Always canonicalize loc's address.
11302 (clobber_overlapping_mems): Make sure we have a MEM.
11303 (local_get_addr_clear_given_value): New.
11304 (val_reset): Clear local cached entries.
11305 (compute_bb_dataflow): Create and release the local cache.
11306 Disable duplicate MEMs clobbering.
11307 (emit_notes_in_bb): Clobber MEMs likewise.
11308 (vt_emit_notes): Create and release the local cache.
11309 (vt_initialize, vt_finalize): Create and release the global
11310 cache, respectively.
11311 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
11313 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
11315 PR libmudflap/53359
11316 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
11317 not found in the symtab.
11319 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
11322 PR rtl-optimization/55547
11323 PR rtl-optimization/53827
11326 * alias.c (offset_overlap_p): New, factored out of...
11327 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
11328 the conservative special case for symbolic constants. Don't
11329 adjust zero sizes on alignment.
11331 2013-01-18 Bernd Schmidt <bernds@codesourcery.com>
11333 PR rtl-optimization/52573
11334 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
11335 REG_UNUSED for the same register.
11337 2013-01-17 Richard Biener <rguenther@suse.de>
11338 Marek Polacek <polacek@redhat.com>
11340 PR rtl-optimization/55833
11341 * loop-unswitch.c (unswitch_loops): Move loop verification...
11342 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
11343 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
11344 Set it to true when we're removing a loop from hierarchy tree in
11345 an irreducible region.
11346 (fix_bb_placements): Adjust caller.
11347 (fix_loop_placements): Likewise.
11349 2013-01-17 Georg-Johann Lay <avr@gjlay.de>
11351 * config/avr/builtins.def (DEF_BUILTIN): Factor out
11352 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
11353 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
11354 Remove ID. Adjust comments.
11355 * config/avr/avr-c.c (avr_builtin_name): Remove.
11356 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
11357 * config/avr/avr.c (avr_tolower): New static function.
11358 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
11359 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
11360 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
11363 2013-01-17 Jan Hubicka <jh@suse.cz>
11365 PR tree-optimization/55273
11366 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
11368 2013-01-17 Uros Bizjak <ubizjak@gmail.com>
11371 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
11372 store through atomic_store<mode>_1.
11373 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
11375 2013-01-17 Martin Jambor <mjambor@suse.cz>
11377 PR tree-optimizations/55264
11378 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
11379 for virtual methods.
11380 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
11381 virtual methods before inlining is over.
11382 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
11384 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
11387 2013-01-16 Vladimir Makarov <vmakarov@redhat.com>
11389 PR rtl-optimization/56005
11390 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
11391 pending reads for prefetch.
11393 2013-01-16 Ian Bolton <ian.bolton@arm.com>
11395 * config/aarch64/aarch64.md
11396 (*cstoresi_neg_uxtw): New pattern.
11397 (*cmovsi_insn_uxtw): New pattern.
11398 (*<optab>si3_uxtw): New pattern.
11399 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
11400 (*<optab>si3_insn_uxtw): New pattern.
11401 (*bswapsi2_uxtw): New pattern.
11403 2013-01-16 Richard Biener <rguenther@suse.de>
11405 * tree-inline.c (tree_function_versioning): Remove set but
11406 never used variable.
11408 2013-01-16 Richard Biener <rguenther@suse.de>
11410 PR tree-optimization/55964
11411 * tree-flow.h (rename_variables_in_loop): Remove.
11412 (rename_variables_in_bb): Likewise.
11413 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
11414 (copy_loop_before): Adjust and delete update-ssa status.
11415 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
11416 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
11417 (rename_variables_in_loop): Remove.
11418 (slpeel_update_phis_for_duplicate_loop): Likewise.
11419 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
11420 use available cfg machinery instead of duplicating it.
11421 Update PHI nodes and perform poor-mans SSA update here.
11422 (slpeel_tree_peel_loop_to_edge): Adjust.
11424 2013-01-16 Richard Biener <rguenther@suse.de>
11426 PR tree-optimization/54767
11427 PR tree-optimization/53465
11428 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
11429 (vrp_visit_phi_node): For PHI arguments coming via backedges
11430 drop all symbolical range information.
11431 (execute_vrp): Compute backedges.
11433 2013-01-16 Richard Biener <rguenther@suse.de>
11435 * doc/install.texi: Update CLooG and ISL requirements to
11438 2013-01-16 Christian Bruel <christian.bruel@st.com>
11441 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
11442 (broken_move): Handle UNSPECV_SP_SWITCH_B.
11443 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
11445 2013-01-16 DJ Delorie <dj@redhat.com>
11447 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
11448 (UNSPECV_SP_SWITCH_E): New.
11449 (sp_switch_1): Change to an unspec.
11450 (sp_switch_2): Change to an unspec. Don't use post-inc when we
11453 2013-01-16 Uros Bizjak <ubizjak@gmail.com>
11455 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
11456 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
11457 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
11458 (expand_mem_thread_fence): Ditto.
11459 (expand_mem_signal_fence): Ditto.
11460 (expand_atomic_load): Ditto.
11461 (expand_atomic_store): Ditto.
11463 2013-01-16 Alexandre Oliva <aoliva@redhat.com>
11465 PR rtl-optimization/55547
11466 PR rtl-optimization/53827
11469 * alias.c (memrefs_conflict_p): Set sizes to negative after
11472 2013-01-15 Jakub Jelinek <jakub@redhat.com>
11475 * function.c (thread_prologue_and_epilogue_insns): Always
11476 add crtl->drap_reg to set_up_by_prologue.set, even if
11477 stack_realign_drap is false.
11479 2013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11481 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
11482 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
11483 *call): Fix indention.
11485 2013-01-15 Tom de Vries <tom@codesourcery.com>
11488 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
11491 2013-01-15 Vladimir Makarov <vmakarov@redhat.com>
11493 PR rtl-optimization/55153
11494 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
11496 2013-01-15 Martin Jambor <mjambor@suse.cz>
11498 PR tree-optimization/55920
11499 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
11500 accesses as grp_to_be_debug_replaced.
11502 2013-01-15 Jakub Jelinek <jakub@redhat.com>
11504 PR tree-optimization/55920
11505 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
11506 there is non-useless type conversion needed from debug rhs to lhs,
11507 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
11509 2013-01-15 Joseph Myers <joseph@codesourcery.com>
11510 Mikael Pettersson <mikpe@it.uu.se>
11513 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
11515 (ASM_OUTPUT_CASE_LABEL): Remove.
11516 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
11517 * final.c (shorten_branches): Update alignment of labels before
11518 jump tables if CASE_VECTOR_SHORTEN_MODE.
11520 2013-01-15 Richard Biener <rguenther@suse.de>
11523 * system.h: Do not include gmp.h for building host tools.
11525 2013-01-15 Richard Biener <rguenther@suse.de>
11527 PR middle-end/55882
11528 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
11529 account for bitpos when computing alignment.
11531 2013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
11533 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
11534 (ix86_target_macros_internal): Likewise.
11536 * config/i386/i386.c (m_CORE2I7): Removed.
11537 (m_CORE_HASWELL): New macro.
11538 (m_CORE_ALL): Likewise.
11539 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
11540 (initial_ix86_arch_features): Likewise.
11541 (processor_target_table): Initializations for Core avx2.
11542 (cpu_names): New names "core-avx2".
11543 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
11544 PROCESSOR_CORE_HASWELL.
11545 (ix86_issue_rate): New case.
11546 (ia32_multipass_dfa_lookahead): Likewise.
11547 (ix86_sched_init_global): Likewise.
11549 * config/i386/i386.h (TARGET_HASWELL): New macro.
11550 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
11551 (processor_type): New PROCESSOR_HASWELL.
11553 2013-01-15 Jakub Jelinek <jakub@redhat.com>
11555 PR tree-optimization/55955
11556 * tree-vect-loop.c (vectorizable_reduction): Give up early on
11557 *SHIFT_EXPR and *ROTATE_EXPR codes.
11559 PR tree-optimization/48766
11560 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
11561 -ftrapv disable -fwrapv.
11563 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
11566 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
11567 etc. to 1 and not to __flash.
11568 Use LL suffix for __INT24_MAX__ with -mint8.
11569 Use ULL suffix for __UINT24_MAX__ with -mint8.
11571 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
11573 * config/avr/avr-arch.h
11574 (struct base_arch_s): Use typedef avr_arch_t instead.
11575 (struct arch_info_s): Use typedef avr_arch_info_t instead.
11576 (struct mcu_type_s): Use typedef avr_mcu_t instead.
11577 * config/avr/avr.c: Same.
11578 * config/avr/avr-devices.c: Same.
11579 * config/avr/driver-avr.c: Same.
11580 * config/avr/gen-avr-mmcu-texi.c: Same.
11581 * config/avr/avr-mcus.def: Adjust comment.
11583 2013-01-14 Tejas Belagod <tejas.belagod@arm.com>
11585 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
11586 * config/aarch64/iterators.md (VALLDI): New.
11588 2013-01-14 Uros Bizjak <ubizjak@gmail.com>
11589 Andi Kleen <ak@linux.intel.com>
11592 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
11593 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
11596 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
11598 * config/avr/avr-stdint.h: Remove trailing blanks.
11599 * config/avr/avr-log.h: Same.
11600 * config/avr/avr-arch.h: Same.
11601 * config/avr/avr-devices.c: Same.
11602 * config/avr/avr-dimode.md: Same.
11603 * config/avr/predicates.md: Same.
11604 * config/avr/avr-c.c: Same. And fix typo.
11606 * config/avr/avr-protos.h: Same. And:
11607 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
11608 (init_cumulative_args): Rename to avr_init_cumulative_args.
11609 (expand_prologue): Rename to avr_expand_prologue.
11610 (expand_epilogue): Rename to avr_expand_epilogue.
11611 (adjust_insn_length): Rename to avr_adjust_insn_length.
11612 (notice_update_cc): Rename to avr_notice_update_cc.
11613 (final_prescan_insn): Rename to avr_final_prescan_insn.
11614 * config/avr/avr.c: Same.
11615 * config/avr/avr.h: Same.
11616 * config/avr/avr.md: Remove trailing blanks.
11617 (prologue): Use avr_expand_prologue.
11618 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
11620 2013-01-14 Richard Biener <rguenther@suse.de>
11622 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
11623 verify_location, collect_subblocks): New functions.
11624 (verify_gimple_in_cfg): Verify that locations only reference
11625 BLOCKs in the functions BLOCK tree.
11627 2013-01-14 Richard Biener <rguenther@suse.de>
11629 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
11631 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
11633 (insert_out_of_ssa_copy_on_edge): Likewise.
11634 (rewrite_close_phi_out_of_ssa): Likewise.
11635 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
11637 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
11638 propagated constants.
11639 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
11642 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
11644 * config/avr/avr-modes.def: Add GPL copyright notice.
11646 2013-01-13 Uros Bizjak <ubizjak@gmail.com>
11648 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
11649 MEMMODEL_MASK to determine memory model.
11650 (atomic_store<mode>): Ditto from operands[2].
11651 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
11653 2013-01-13 Jakub Jelinek <jakub@redhat.com>
11656 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
11657 (fold_gimple_assign): Don't call unshare_expr here.
11658 (fold_ctor_reference): Call unshare_expr.
11660 2013-01-13 Terry Guo <terry.guo@arm.com>
11662 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
11663 * doc/fragments.texi: Document MULTILIB_REUSE.
11664 * gcc.c (multilib_reuse): New internal spec.
11665 (set_multilib_dir): Also search multilib from multilib_reuse.
11666 * genmultilib (tmpmultilib3): Refactor code.
11667 (tmpmultilib4): Ditto.
11668 (multilib_reuse): New multilib argument.
11670 2013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
11672 * Makefile.in: Update copyright.
11674 2013-01-12 Tom de Vries <tom@codesourcery.com>
11676 PR middle-end/55890
11677 * calls.c (expand_call): Check if arg_nr is valid.
11679 2013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
11681 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
11682 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
11683 documentation. Add missing '__' in front of
11684 __builtin_ia32_packssdw256.
11686 2013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11689 * config/s390/s390.c (s390_preferred_reload_class): Do not return
11690 NO_REGS for larl operands.
11691 (s390_reload_larl_operand): Use s390_load_address instead of
11694 2013-01-11 Richard Biener <rguenther@suse.de>
11696 * tree-cfg.c (verify_node_sharing_1): Split out from ...
11697 (verify_node_sharing): ... here.
11698 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
11700 2013-01-11 Eric Botcazou <ebotcazou@adacore.com>
11702 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
11703 Substitute TREECHECKING.
11704 * configure: Regenerate.
11705 * Makefile.in (TREECHECKING): New.
11707 2013-01-11 Richard Guenther <rguenther@suse.de>
11709 PR tree-optimization/44061
11710 * tree-vrp.c (extract_range_basic): Compute zero as
11711 value-range for __builtin_constant_p of function parameters.
11713 2013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
11715 Update copyright years.
11717 2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
11719 PR rtl-optimization/55672
11720 * lra-eliminations.c (mark_not_eliminable): Permit addition with
11721 const to be eliminable.
11723 2013-01-10 David Edelsohn <dje.gcc@gmail.com>
11725 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
11726 * configure: Regenerate.
11728 2013-01-10 Richard Biener <rguenther@suse.de>
11730 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
11732 2013-01-10 Richard Biener <rguenther@suse.de>
11735 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
11736 locations for virtual PHI arguments.
11737 (rewrite_update_phi_arguments): Likewise.
11739 2013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
11741 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
11744 2013-01-10 Jakub Jelinek <jakub@redhat.com>
11746 PR tree-optimization/55921
11747 * tree-complex.c (expand_complex_asm): New function.
11748 (expand_complex_operations_1): Call it for GIMPLE_ASM.
11750 2013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11753 * config/s390/s390.c (s390_symref_operand_p)
11754 (s390_loadrelative_operand_p): Merge the two functions.
11755 (s390_check_qrst_address, print_operand_address): Add parameters
11756 to s390_loadrelative_operand_p invokation.
11757 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
11758 (s390_reload_larl_operand, s390_secondary_reload): Use
11759 s390_loadrelative_operand_p instead of s390_symref_operand_p.
11760 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
11762 2013-01-09 Mike Stump <mikestump@comcast.net>
11764 * dse.c (record_store): Remove unnecessary assert.
11766 2013-01-09 Jan Hubicka <jh@suse.cz>
11768 PR tree-optimization/55569
11769 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
11770 * cfgloop.h (scale_loop_profile): Likewise.
11772 2013-01-09 Jan Hubicka <jh@suse.cz>
11775 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
11777 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
11779 2013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
11781 PR middle-end/55114
11782 * expr.h (maybe_emit_group_store): Declare.
11783 * expr.c (maybe_emit_group_store): New function.
11784 * builtins.c (expand_builtin_int_roundingfn): Call it.
11785 (expand_builtin_int_roundingfn_2): Likewise.
11787 2013-01-09 Vladimir Makarov <vmakarov@redhat.com>
11789 PR rtl-optimization/55829
11790 * lra-constraints.c (match_reload): Add code for absent output.
11791 (curr_insn_transform): Add code for reloads of matched inputs
11794 2013-01-09 Uros Bizjak <ubizjak@gmail.com>
11796 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
11797 attribute of movddup insn to DF.
11798 (*vec_interleave_lowv2df): Ditto.
11799 (vec_dupv2df): Ditto.
11801 2013-01-09 Jan Hubicka <jh@suse.cz>
11803 PR tree-optimiation/55875
11804 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
11805 EVERY_ITERATION parameter.
11806 (number_of_iterations_exit): Check if exit is executed every iteration.
11807 (idx_infer_loop_bounds): Similarly here.
11808 (n_of_executions_at_most): Simplify
11809 to only test for cases where statement is dominated by the
11810 particular bound; handle correctly the "postdominance" test.
11811 (scev_probably_wraps_p): Use max loop iterations info
11812 as a global bound first.
11814 2013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
11815 Nick Clifton <nickc@redhat.com>
11817 * config/v850/v850.md (cbranchsf4): New pattern.
11818 (cstoresf4): New pattern.
11819 (cbranchdf4): New pattern.
11820 (cstoredf4): New pattern.
11821 (movsicc): Disallow floating point comparisons.
11822 (cmpsf_le_insn): Fix order of operators.
11823 (cmpsf_lt_insn): Likewise.
11824 (cmpsf_eq_insn): Likewise.
11825 (cmpdf_le_insn): Likewise.
11826 (cmpdf_lt_insn): Likewise.
11827 (cmpdf_eq_insn): Likewise.
11828 (cmpsf_ge_insn): Use LE comparison.
11829 (cmpdf_ge_insn): Likewise.
11830 (cmpsf_gt_insn): Use LT comparison.
11831 (cmpdf_gt_insn): Likewise.
11832 (cmpsf_ne_insn): Delete pattern.
11833 (cmpdf_ne_insn): Delete pattern.
11834 * config/v850/v850.c (v850_gen_float_compare): Use
11835 gen_cmpdf_eq_insn for NE comparison.
11836 (v850_float_z_comparison_operator)
11837 (v850_float_nz_comparison_operator): Move from here ...
11838 * config/v850/predicates.md: ... to here. Move GT and GE
11839 comparisons into v850_float_z_comparison_operator.
11840 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
11842 (v850_float_nz_comparison_operator): Likewise.
11844 2013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11846 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
11847 with calls to gen_insvsi/gen_insvdi.
11849 2013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
11851 * config/i386/i386.c (initial_ix86_tune_features): Set up
11852 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
11854 2013-01-09 Steven Bosscher <steven@gcc.gnu.org>
11855 Jakub Jelinek <jakub@redhat.com>
11857 PR tree-optimization/48189
11858 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
11859 If nitercst is 0, don't predict the exit edge.
11861 2013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
11863 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
11864 in asm_fprintf with reg_names.
11865 (aarch64_print_operand_address): Likewise.
11866 (aarch64_return_addr): Likewise.
11867 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
11869 2013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11871 * config/pa/pa.h (VAL_U6_BITS_P): Define.
11872 (INT_U6_BITS): Likewise.
11873 * config/pa/predicates.md (uint6_operand): New predicate.
11874 (shift5_operand, shift6_operand): Likewise.
11875 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
11877 (lshrdi3): Use shift6_operand.
11878 (shrpsi4, shrpdi4): New insn patterns.
11879 (extzv): Delete expander.
11880 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
11881 predicates in unamed zero extract patterns. Tighten common constraint.
11882 (extv): Delete expander.
11883 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
11884 predicates in unamed sign extract patterns. Tighten common constraint.
11885 (insv): Delete expander.
11886 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
11887 predicates in unamed insert patterns. Tighten common constraint.
11888 Change uint32_operand predicate to uint6_operand predicate in unamed
11889 DImode pattern to insert constant values of type 1...1xxxx.
11891 2013-01-04 Jan Hubicka <jh@suse.cz>
11893 PR tree-optimization/55823
11894 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
11897 2013-01-08 Jakub Jelinek <jakub@redhat.com>
11898 Uros Bizjak <ubizjak@gmail.com>
11900 PR rtl-optimization/55845
11901 * df-problems.c (can_move_insns_across): Stop scanning at
11902 volatile_insn_p source instruction or give up if
11903 across_from .. across_to range contains any volatile_insn_p
11906 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
11908 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
11909 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
11911 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
11912 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
11914 2013-01-08 Jakub Jelinek <jakub@redhat.com>
11917 * asan.c (asan_clear_shadow): New function.
11918 (asan_emit_stack_protection): Use it.
11920 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
11922 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
11923 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
11924 with tab instead of space.
11926 2013-01-08 Nick Clifton <nickc@redhat.com>
11928 * config/rl78/rl78.c (rl78_expand_prologue): Always select
11929 register bank 0 at the start of an interrupt handler.
11930 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
11933 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
11935 * config/aarch64/aarch64-simd.md
11936 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
11937 (aarch64_simd_bsl): Likewise.
11938 (aarch64_vcond_internal<mode>): Likewise.
11939 (vcond<mode><mode>): Likewise.
11940 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
11941 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
11943 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
11945 * config/aarch64/aarch64-builtins.c
11946 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
11948 2013-01-08 Martin Jambor <mjambor@suse.cz>
11951 * tree-sra.c (analyze_access_subtree): Return true also after
11952 potentially creating a debug-only replacement.
11954 2013-01-08 Jakub Jelinek <jakub@redhat.com>
11956 PR middle-end/55890
11957 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
11959 PR tree-optimization/54120
11960 * tree-vrp.c (range_fits_type_p): Don't allow
11961 src_precision < precision from signed vr to unsigned_p
11962 if vr->min or vr->max is negative.
11963 (simplify_float_conversion_using_ranges): Test can_float_p
11964 against CODE_FOR_nothing.
11966 2013-01-08 Jakub Jelinek <jakub@redhat.com>
11967 Richard Biener <rguenther@suse.de>
11969 PR middle-end/55851
11970 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
11971 types instead of just INTEGER_TYPE types.
11973 2013-01-07 Mark Kettenis <kettenis@openbsd.org>
11975 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
11978 2013-01-07 Steve Ellcey <sellcey@mips.com>
11981 * config/mips/mips.opt: Change mad to mmad to match documentation.
11983 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
11986 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
11987 .progmemx.data now.
11989 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
11992 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
11993 (avr_addrspace_t): Add .section_name field.
11994 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
11996 (avr_addrspace): Same. Initialize .section_name. Remove last
11997 NULL entry. Put __memx into .progmemx.data.
11998 (progmem_section_prefix): Remove.
11999 (avr_asm_init_sections): No need to initialize progmem_section.
12000 (avr_asm_named_section): Use avr_addrspace[].section_name to get
12001 section name prefix.
12002 (avr_asm_select_section): Ditto. And use get_unnamed_section to
12003 retrieve the progmem section.
12004 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
12005 boundary to run over avr_addrspace[].
12006 (avr_register_target_pragmas): Ditto.
12008 2013-01-06 Jakub Jelinek <jakub@redhat.com>
12010 * varasm.c (output_constant_def_contents): For asan_protect_global
12011 protected strings, adjust DECL_ALIGN if needed, before testing for
12013 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
12014 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
12016 (output_object_block): For asan protected decls, emit asan padding
12017 after their contents.
12018 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
12019 (asan_finish_file): Test it here instead.
12021 2013-01-07 Nick Clifton <nickc@redhat.com>
12022 Matthias Klose <doko@debian.org>
12023 Doug Kwan <dougkwan@google.com>
12024 H.J. Lu <hongjiu.lu@intel.com>
12027 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
12029 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
12031 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
12033 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
12035 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
12037 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
12040 * doc/install.texi (Cross-Compiler-Specific Options): Document
12043 2013-01-07 Tejas Belagod <tejas.belagod@arm.com>
12045 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
12046 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
12047 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
12048 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
12049 vqmovun_high_s64): Fix source operand number and update copyright.
12051 2013-01-07 Richard Biener <rguenther@suse.de>
12053 PR middle-end/55890
12054 * gimple.h (gimple_call_builtin_p): New overload.
12055 * gimple.c (validate_call): New function.
12056 (gimple_call_builtin_p): Likewise.
12057 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12058 Use gimple_call_builtin_p.
12059 (find_func_clobbers): Likewise.
12060 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
12061 (strlen_optimize_stmt): Likewise.
12063 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
12065 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
12066 (vld1q_dup_*): Likewise.
12067 (vld1_*): Likewise.
12068 (vld1q_*): Likewise.
12069 (vld1_lane_*): Likewise.
12070 (vld1q_lane_*): Likewise.
12072 2013-01-07 Richard Biener <rguenther@suse.de>
12074 * lto-streamer.h (LTO_minor_version): Bump to 2.
12076 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
12078 * config/aarch64/aarch64-protos.h
12079 (aarch64_const_double_zero_rtx_p): Rename to...
12080 (aarch64_float_const_zero_rtx_p): ...this.
12081 (aarch64_float_const_representable_p): New.
12082 (aarch64_output_simd_mov_immediate): Likewise.
12083 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
12084 move immediate case.
12085 * config/aarch64/aarch64.c
12086 (aarch64_const_double_zero_rtx_p): Rename to...
12087 (aarch64_float_const_zero_rtx_p): ...this.
12088 (aarch64_print_operand): Allow printing of new constants.
12089 (aarch64_valid_floating_const): New.
12090 (aarch64_legitimate_constant_p): Check for valid floating-point
12092 (aarch64_simd_valid_immediate): Likewise.
12093 (aarch64_vect_float_const_representable_p): New.
12094 (aarch64_float_const_representable_p): Likewise.
12095 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
12096 (aarch64_output_simd_mov_immediate): New.
12097 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
12098 (*movdf_aarch64): Likewise.
12099 * config/aarch64/constraints.md (Ufc): New.
12100 (Y): call aarch64_float_const_zero_rtx.
12101 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
12103 2013-01-07 Richard Biener <rguenther@suse.de>
12105 PR tree-optimization/55888
12106 PR tree-optimization/55862
12107 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
12108 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
12109 not if it is contained therein.
12111 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
12113 * config/avr/t-avr: Typo.
12115 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
12118 * config/avr/t-avr: Don't automatically rebuild
12119 $(srcdir)/config/avr/t-multilib
12120 $(srcdir)/config/avr/avr-tables.opt
12121 $(srcdir)/doc/avr-mmcu.texi
12122 (avr-mcus): New phony target to build them on request.
12123 (s-avr-mlib, s-avr-mmcu-texi): Remove.
12124 * avr/avr-mcus.def: Adjust comments.
12126 2013-01-07 Uros Bizjak <ubizjak@gmail.com>
12128 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
12130 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
12132 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
12134 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
12136 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
12138 2013-01-05 David Edelsohn <dje.gcc@gmail.com>
12140 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
12141 to generate profiling.
12142 * config/rs6000/aix64.h (LIB_SPEC): Same.
12144 2013-01-04 Andrew Pinski <apinski@cavium.com>
12146 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
12148 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
12150 2013-01-04 Uros Bizjak <ubizjak@gmail.com>
12152 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
12154 (ix86_expand_move): Ditto.
12155 (ix86_zero_extend_to_Pmode): Ditto.
12156 (ix86_expand_call): Ditto.
12157 (ix86_expand_special_args_builtin): Ditto.
12158 (ix86_expand_builtin): Ditto.
12160 2013-01-04 Richard Biener <rguenther@suse.de>
12162 PR tree-optimization/55862
12163 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
12164 translating them through PHI nodes.
12166 2013-01-04 Martin Jambor <mjambor@suse.cz>
12168 PR tree-optimization/55755
12169 * tree-sra.c (sra_modify_assign): Do not check that an access has no
12170 children when trying to avoid producing a VIEW_CONVERT_EXPR.
12172 2013-01-04 Marek Polacek <polacek@redhat.com>
12174 PR middle-end/55859
12175 * opts.c (default_options_optimization): Clarify error message.
12177 2013-01-04 Richard Biener <rguenther@suse.de>
12179 PR middle-end/55863
12180 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
12183 2013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12186 * config/pa/pa.md (movsi): Revert previous change.
12187 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
12190 2013-01-03 Richard Henderson <rth@redhat.com>
12192 * config/i386/i386.c (ix86_expand_move): Always assign to op1
12193 after eliminating TLS symbols.
12195 2013-01-03 Marc Glisse <marc.glisse@inria.fr>
12198 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
12199 * graphite-poly.c (debug_gmp_value): Likewise.
12201 2013-01-03 Uros Bizjak <ubizjak@gmail.com>
12204 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
12205 selected code model, define __code_mode_small__, __code_model_medium__,
12206 __code_model_large__, __code_model_32__ or __code_model_kernel__.
12207 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
12208 xchg temporary register with %k. Declare temporary register as
12210 [__x86_64__]: For medium and large code models, preserve %rbx register.
12212 2013-01-03 Richard Biener <rguenther@suse.de>
12214 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
12215 (dump_subscript): Adjust.
12216 (finalize_ddr_dependent): Do not dump redundant info.
12217 (analyze_siv_subscript): Adjust.
12218 (subscript_dependence_tester): Likewise.
12219 (compute_affine_dependence): Likewise.
12221 2013-01-03 Richard Biener <rguenther@suse.de>
12224 2013-01-03 Richard Biener <rguenther@suse.de>
12226 PR tree-optimization/55857
12227 * tree-vect-stmts.c (vectorizable_load): Do not setup
12228 re-alignment for invariant loads.
12230 2013-01-02 Richard Biener <rguenther@suse.de>
12232 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
12233 invariant load do not generate a vector load from the scalar location.
12235 2013-01-03 Richard Biener <rguenther@suse.de>
12237 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
12238 for not vectorizing.
12239 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
12240 not build INDIRECT_REFs, call get_name once only.
12241 (vect_create_data_ref_ptr): Likewise. Dump base object kind
12242 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
12244 2013-01-03 Richard Biener <rguenther@suse.de>
12246 PR tree-optimization/55857
12247 * tree-vect-stmts.c (vectorizable_load): Do not setup
12248 re-alignment for invariant loads.
12250 2013-01-03 Richard Biener <rguenther@suse.de>
12253 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
12254 prefer a built-in decl.
12256 2013-01-03 Jakub Jelinek <jakub@redhat.com>
12258 * gcc.c (process_command): Update copyright notice dates.
12259 * gcov.c (print_version): Likewise.
12260 * gcov-dump.c (print_version): Likewise.
12262 PR rtl-optimization/55838
12263 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
12264 iv0.step, iv1.step and step.
12266 2013-01-03 Jakub Jelinek <jakub@redhat.com>
12267 Marc Glisse <marc.glisse@inria.fr>
12269 PR tree-optimization/55832
12270 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
12271 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
12272 integer_{one,zero}_node.
12274 2013-01-03 Jakub Jelinek <jakub@redhat.com>
12277 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
12278 * var-tracking.c (reverse_op): Don't add reverse ops to
12279 VALUEs that have already
12280 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
12282 2013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
12284 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
12286 2013-01-02 Teresa Johnson <tejohnson@google.com>
12288 * dumpfile.c (dump_loc): Print filename with location.
12289 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
12290 new location_t parameter to emit complete unroll message with
12291 new dump framework.
12292 (canonicalize_loop_induction_variables): Compute loops location
12293 and pass to try_unroll_loop_completely.
12294 * loop-unroll.c (report_unroll_peel): New function.
12295 (peel_loops_completely): Use new dump format with location
12296 for main dumpfile message, and invoke report_unroll_peel on success.
12297 (decide_unrolling_and_peeling): Ditto.
12298 (decide_peel_once_rolling): Remove old dumpfile message subsumed
12299 by report_unroll_peel.
12300 (decide_peel_completely): Ditto.
12301 (decide_unroll_constant_iterations): Ditto.
12302 (decide_unroll_runtime_iterations): Ditto.
12303 (decide_peel_simple): Ditto.
12304 (decide_unroll_stupid): Ditto.
12305 * cfgloop.c (get_loop_location): New function.
12306 * cfgloop.h (get_loop_location): Declare.
12308 2013-01-02 Sriraman Tallam <tmsriram@google.com>
12310 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
12313 2013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12315 PR middle-end/55198
12316 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
12317 BLKmode objects when EXPAND_MEMORY is specified.
12319 2013-01-02 Sriraman Tallam <tmsriram@google.com>
12321 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
12323 (fold_builtin_cpu): Do not share cpu model decls across statements.
12325 2013-01-02 Jason Merrill <jason@redhat.com>
12328 * tree.c (build_array_type_1): Revert earlier change.
12330 2013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
12332 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
12334 * config/aarch64/aarch64-tune.md: Re-generate.
12336 2013-01-02 Richard Biener <rguenther@suse.de>
12338 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
12339 invariant load do not generate a vector load from the scalar location.
12341 2013-01-02 Richard Biener <rguenther@suse.de>
12344 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
12345 * configure: Regenerate.
12347 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
12349 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
12350 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
12351 (expand_builtin_int_roundingfn_2): Keep the original target around
12352 for the fallback case.
12354 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
12356 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
12357 to be clear for sign changes.
12359 2013-01-01 Jan Hubicka <jh@suse.cz>
12361 * ipa-inline-analysis.c: Fix formatting.
12363 2013-01-01 Jakub Jelinek <jakub@redhat.com>
12365 PR tree-optimization/55831
12366 * tree-vect-loop.c (get_initial_def_for_induction): Use
12367 gsi_after_labels instead of gsi_start_bb.
12369 Copyright (C) 2013 Free Software Foundation, Inc.
12371 Copying and distribution of this file, with or without modification,
12372 are permitted in any medium without royalty provided the copyright
12373 notice and this notice are preserved.