1 2014-05-06 Richard Biener <rguenther@suse.de>
4 2014-04-14 Richard Biener <rguenther@suse.de>
7 * fold-const.c (negate_expr_p): Don't negate directional rounding
9 (fold_negate_expr): Likewise.
11 2014-05-06 Richard Biener <rguenther@suse.de>
13 Backport from mainline
14 2014-04-17 Richard Biener <rguenther@suse.de>
17 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
18 boolean results for comparisons.
20 2014-04-07 Richard Biener <rguenther@suse.de>
22 PR tree-optimization/60766
23 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an
25 (may_eliminate_iv): Convert cand_value_at result to desired
28 2014-04-23 Richard Biener <rguenther@suse.de>
30 PR tree-optimization/60903
31 * tree-ssa-loop-im.c (execute_sm_if_changed): Properly apply
32 IRREDUCIBLE_LOOP loop flags to newly created BBs and edges.
34 2014-05-05 Richard Biener <rguenther@suse.de>
36 Backport from mainline
37 2014-04-23 Richard Biener <rguenther@suse.de>
40 * tree-inline.c (declare_return_variable): Use mark_addressable.
42 2014-04-07 Richard Biener <rguenther@suse.de>
45 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
47 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
49 2014-04-14 Richard Biener <rguenther@suse.de>
51 PR tree-optimization/59817
52 PR tree-optimization/60453
53 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
54 recursion to catch all CHRECs in the scalar evolution and restrict
55 the predicate for the remains appropriately.
57 2014-04-17 Richard Biener <rguenther@suse.de>
59 PR tree-optimization/60836
60 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
61 initial PHI args to be gimple values.
63 2014-05-05 Jakub Jelinek <jakub@redhat.com>
65 Backported from mainline
66 2014-04-25 Jakub Jelinek <jakub@redhat.com>
68 PR tree-optimization/60960
69 * tree-vect-generic.c (expand_vector_operation): Only call
70 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
72 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
74 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
75 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
76 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
77 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
78 Use RS6000_BTM_HARD_FLOAT.
79 (BU_MISC_2): Likewise.
80 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
81 RS6000_BTM_HARD_FLOAT.
82 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
84 (rs6000_invalid_builtin): Add hard floating builtin support.
85 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
87 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
89 2014-05-03 Joey Ye <joey.ye@arm.com>
91 Backport from mainline r209463
92 2014-04-17 Joey Ye <joey.ye@arm.com>
94 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
96 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
98 Back port from mainline
100 * config/sh/sh.c: Include stdlib headers before everything else.
102 2014-05-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
104 PR tree-optimization/60930
105 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
106 creating a multiply candidate by folding two constant
107 multiplicands when the result overflows.
109 2014-05-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
111 * config/aarch64/aarch64.h (TARGET_SIMD): Take AARCH64_ISA_SIMD
113 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
115 2014-04-30 Michael Meissner <meissner@linux.vnet.ibm.com>
117 Back port from mainline
118 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
120 * doc/extend.texi (PowerPC Built-in Functions): Document new
121 powerpc extended divide, bcd, pack/unpack 128-bit, builtin
123 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
125 * config/rs6000/predicates.md (const_0_to_3_operand): New
126 predicate to match 0..3 integer constants.
128 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
129 to support adding miscellaneous builtin functions.
130 (BU_DFP_MISC_2): Likewise.
131 (BU_P7_MISC_1): Likewise.
132 (BU_P7_MISC_2): Likewise.
133 (BU_P8V_MISC_3): Likewise.
134 (BU_MISC_1): Likewise.
135 (BU_MISC_2): Likewise.
136 (DIVWE): Add extended divide builtin functions.
144 (DXEX): Add decimal floating-point builtin functions.
156 (CDTBCD): Add new BCD builtin functions.
160 (BCDADD_LT): Likewise.
161 (BCDADD_EQ): Likewise.
162 (BCDADD_GT): Likewise.
163 (BCDADD_OV): Likewise.
165 (BCDSUB_LT): Likewise.
166 (BCDSUB_EQ): Likewise.
167 (BCDSUB_GT): Likewise.
168 (BCDSUB_OV): Likewise.
169 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
170 (UNPACK_TD): Likewise.
172 (UNPACK_TF): Likewise.
173 (UNPACK_TF_0): Likewise.
174 (UNPACK_TF_1): Likewise.
175 (PACK_V1TI): Likewise.
176 (UNPACK_V1TI): Likewise.
178 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
179 support for decimal floating point builtin functions.
180 (rs6000_expand_ternop_builtin): Add checks for the new builtin
181 functions that take constant arguments.
182 (rs6000_invalid_builtin): Add decimal floating point builtin
184 (rs6000_init_builtins): Setup long double, _Decimal64, and
185 _Decimal128 types for new builtin functions.
186 (builtin_function_type): Set the unsigned flags appropriately for
187 the new builtin functions.
188 (rs6000_opt_masks): Add support for decimal floating point builtin
191 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
192 floating point builtin functions.
193 (RS6000_BTM_COMMON): Likewise.
194 (RS6000_BTI_long_double): Likewise.
195 (RS6000_BTI_dfloat64): Likewise.
196 (RS6000_BTI_dfloat128): Likewise.
197 (long_double_type_internal_node): Likewise.
198 (dfloat64_type_internal_node): Likewise.
199 (dfloat128_type_internal_node): Likewise.
201 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
202 2.07 bcd arithmetic instructions.
203 (UNSPEC_BCDSUB): Likewise.
204 (UNSPEC_BCD_OVERFLOW): Likewise.
205 (UNSPEC_BCD_ADD_SUB): Likewise.
206 (bcd_add_sub): Likewise.
207 (BCD_TEST): Likewise.
208 (bcd<bcd_add_sub>): Likewise.
209 (bcd<bcd_add_sub>_test): Likewise.
210 (bcd<bcd_add_sub>_test2): Likewise.
211 (bcd<bcd_add_sub>_<code>): Likewise.
212 (peephole2 for combined bcd ops): Likewise.
214 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
215 decimal floating point builtin functions.
216 (UNSPEC_DENBCD): Likewise.
217 (UNSPEC_DXEX): Likewise.
218 (UNSPEC_DIEX): Likewise.
219 (UNSPEC_DSCLI): Likewise.
220 (UNSPEC_DSCRI): Likewise.
221 (D64_D128): Likewise.
222 (dfp_suffix): Likewise.
223 (dfp_ddedpd_<mode>): Likewise.
224 (dfp_denbcd_<mode>): Likewise.
225 (dfp_dxex_<mode>): Likewise.
226 (dfp_diex_<mode>): Likewise.
227 (dfp_dscli_<mode>): Likewise.
228 (dfp_dscri_<mode>): Likewise.
230 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
232 (UNSPEC_CDTBCD): Likewise.
233 (UNSPEC_CBCDTD): Likewise.
234 (UNSPEC_DIVE): Add support for new extended divide builtin
236 (UNSPEC_DIVEO): Likewise.
237 (UNSPEC_DIVEU): Likewise.
238 (UNSPEC_DIVEUO): Likewise.
239 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
240 pack/unpack 128-bit types.
241 (UNSPEC_PACK_128BIT): Likewise.
242 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
243 (udiv<mode>3): Use idiv_ldiv mode attribute.
244 (div<mode>3): Likewise.
245 (addg6s): Add new BCD builtin functions.
248 (UNSPEC_DIV_EXTEND): Add support for new extended divide
250 (div_extend): Likewise.
251 (div<div_extend>_<mode>"): Likewise.
252 (FP128_64): Add support for new builtin functions to pack/unpack
254 (unpack<mode>): Likewise.
255 (unpacktf_0): Likewise.
256 (unpacktf_1): Likewise.
257 (unpack<mode>_dm): Likewise.
258 (unpack<mode>_nodm): Likewise.
259 (pack<mode>): Likewise.
260 (unpackv1ti): Likewise.
261 (packv1ti): Likewise.
263 2014-04-29 Pat Haugen <pthaugen@us.ibm.com>
265 Backport from mainline
266 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
268 * config/rs6000/rs6000.md (addti3, subti3): New.
270 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
272 Backport from mainline
273 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
275 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
276 (loadsync_<mode>): Change mode.
277 (load_quadpti, store_quadpti): New.
278 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
279 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
281 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
283 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
284 * configure: Regenerate.
285 * config/sparc/sparc.opt (muser-mode): New option.
286 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
288 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
289 * doc/invoke.texi (SPARC options): Document -muser-mode.
291 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
294 * config/sparc/sparc.md (ashlsi3_extend): Delete.
296 2014-04-22 Michael Meissner <meissner@linux.vnet.ibm.com>
298 Back port from main line:
299 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
301 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
304 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
307 * config/rs6000/altivec.md (UNSPEC_VBPERMQ): Add support for the
309 (altivec_vbpermq): Likewise.
312 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
313 enable use of xxsldwi and xxpermdi builtin functions.
314 (vec_xxpermdi): Likewise.
316 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
317 Document use of vec_xxsldwi and vec_xxpermdi builtins.
319 2014-04-23 Uros Bizjak <ubizjak@gmail.com>
321 Backport from mainline
322 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
325 * config/i386/i386.c (ix86_expand_builtin)
326 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
327 register for target RTX.
328 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
330 2014-04-23 Richard Biener <rguenther@suse.de>
332 Backport from mainline
333 2014-04-02 Richard Biener <rguenther@suse.de>
336 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
337 MODE_INTs. Properly use negv_optab.
338 (expand_abs): Likewise.
340 2014-04-03 Richard Biener <rguenther@suse.de>
342 PR tree-optimization/60740
343 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
344 over all GIMPLE_COND operands.
346 2014-04-23 Richard Biener <rguenther@suse.de>
349 * gimplify.c (gimple_regimplify_operands): Update the
352 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
354 Back port from the trunk, subversion id 209546.
356 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
359 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
360 If mode is DDmode and TARGET_E500_DOUBLE allow move.
362 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
363 more debug information for E500 if -mdebug=reg.
365 2014-04-18 Richard Henderson <rth@redhat.com>
367 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
368 to GET_MODE_SIZE, not a reg_class_t.
370 2014-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
372 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
374 (vsx_xxmrglw_<mode>): Likewise.
376 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
379 Revert the following patch
381 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
383 Back port mainline subversion id 209025.
384 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
387 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
388 software floating point or no floating point registers, do not
389 allow any type in the FPRs. Eliminate a test for SPE SIMD types
390 in GPRs that occurs after we tested for GPRs that would never be
393 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
394 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
395 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
396 specifically allow DDmode, since that does not use the SPE SIMD
399 2014-04-10 Vladimir Makarov <vmakarov@redhat.com>
401 PR rtl-optimization/60769
402 * lra-constraints.c (simplify_operand_subreg): Force reload of
403 paradoxical subreg if it is not in the class contents.
405 2014-04-10 Jakub Jelinek <jakub@redhat.com>
407 Backport from mainline
408 2014-03-12 Jakub Jelinek <jakub@redhat.com>
409 Marc Glisse <marc.glisse@inria.fr>
411 PR tree-optimization/60502
412 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
413 instead of build_low_bits_mask.
415 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
417 * tree.c (build_all_ones_cst): New function.
418 * tree.h (build_all_ones_cst): Declare it.
420 2013-05-10 Marc Glisse <marc.glisse@inria.fr>
422 * tree.c (build_minus_one_cst): New function.
423 * tree.h (build_minus_one_cst): Declare new function.
425 2014-04-10 Jakub Jelinek <jakub@redhat.com>
427 Backport from mainline
428 2014-03-28 Jakub Jelinek <jakub@redhat.com>
431 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
432 also if addr has VOIDmode.
434 2014-03-17 Jakub Jelinek <jakub@redhat.com>
437 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
438 note creation for the 2010-08-31 changes.
440 2014-03-06 Jakub Jelinek <jakub@redhat.com>
441 Meador Inge <meadori@codesourcery.com>
444 * config/arm/arm.c (arm_tls_symbol_p): Remove.
445 (arm_legitimize_address): Call legitimize_tls_address for any
446 arm_tls_referenced_p expression, handle constant addend. Call it
447 before testing for !TARGET_ARM.
448 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
450 2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
452 Backport from mainline r208750
453 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
455 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
456 pattern for vector nor instead of subtract from splat(-1).
457 (altivec_expand_vec_perm_const_le): Likewise.
459 Backport from mainline r209235
460 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
462 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
463 instead of vnor to exploit possible fusion opportunity in the
465 (altivec_expand_vec_perm_const_le): Likewise.
467 2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
469 Revert following patch
470 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
472 Backport from mainline
473 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
475 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
476 (loadsync_<mode>): Change mode.
477 (load_quadpti, store_quadpti): New.
478 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
479 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
481 2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
483 Backport from mainline r202642
484 2013-09-17 Alan Modra <amodra@gmail.com>
487 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
490 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
492 Backport from mainline
493 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
495 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
496 (loadsync_<mode>): Change mode.
497 (load_quadpti, store_quadpti): New.
498 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
499 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
501 2014-04-07 Martin Jambor <mjambor@suse.cz>
504 * ipa-cp.c (propagate_constants_accross_call): Do not propagate
507 2014-04-07 Dominique d'Humieres <dominiq@lps.ens.fr>
509 Backport from mainline
510 2013-09-14 Iain Sandoe <iains@gcc.gnu.org>
513 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata
515 (darwin_objc1_section): Likewise.
516 (darwin_file_end): Emit Image Info section when required.
518 2014-04-05 Alan Modra <amodra@gmail.com>
521 2014-01-28 Alan Modra <amodra@gmail.com>
522 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
523 * configure.ac <recursive call for build != host>: Define
524 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
525 and LD_FOR_BUILD too.
526 * configure: Regenerate.
528 2014-04-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
530 Backport from mainline r208895:
531 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
533 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
534 if it would clobber the stack pointer, even temporarily.
536 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
538 Back port from main line:
539 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
541 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
544 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
546 Back port mainline subversion id 209025.
547 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
550 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
551 software floating point or no floating point registers, do not
552 allow any type in the FPRs. Eliminate a test for SPE SIMD types
553 in GPRs that occurs after we tested for GPRs that would never be
556 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
557 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
558 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
559 specifically allow DDmode, since that does not use the SPE SIMD
562 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
564 Backport from mainline r205308
565 2013-11-23 David Edelsohn <dje.gcc@gmail.com>
567 * config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro.
568 (rs6000_xcoff_select_section): Place decls with stricter alignment
570 (rs6000_xcoff_unique_section): Allow unique sections for
571 uninitialized data with strict alignment.
573 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
575 Backport from mainline
576 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
578 * gcc/configure: Regenerate.
580 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
583 2013-04-25 Alan Modra <amodra@gmail.com>
586 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
587 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
588 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
589 Repeat for many other rotate/shift and mask patterns using subregs.
591 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
594 2013-06-07 Alan Modra <amodra@gmail.com>
596 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
597 override user -mfp-in-toc.
598 (offsettable_ok_by_alignment): Consider just the current access
599 rather than the whole object, unless BLKmode. Handle
600 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
601 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
603 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
604 override user -mfp-in-toc or -msum-in-toc. Default to
605 -mno-fp-in-toc for -mcmodel=medium.
607 2013-06-18 Alan Modra <amodra@gmail.com>
609 * config/rs6000/rs6000.h (enum data_align): New.
610 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
611 (DATA_ABI_ALIGNMENT): Define.
612 (CONSTANT_ALIGNMENT): Correct comment.
613 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
614 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
616 2013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
618 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
619 Require GOT register as additional operand in UNSPEC.
620 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
621 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
622 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
623 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
624 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
625 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
626 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
628 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
630 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
631 force flag_ira_loop_pressure if set via command line.
633 2014-02-06 Alan Modra <amodra@gmail.com>
636 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
637 change SDmode to DDmode when lra_in_progress.
639 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
643 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
645 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
649 (VEC_base): Likewise.
650 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
651 registers, we need to swap double words in little endian mode.
653 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
654 to be a container mode for 128-bit integer operations added in ISA
655 2.07. Unlike TImode and PTImode, the preferred register set is
656 the Altivec/VMX registers for the 128-bit operations.
658 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
660 (rs6000_split_128bit_ok_p): Likewise.
662 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
663 macros for creating ISA 2.07 normal and overloaded builtin
664 functions with 3 arguments.
665 (BU_P8V_OVERLOAD_3): Likewise.
666 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
667 for use as overloaded functions.
668 (VPERM_1TI_UNS): Likewise.
669 (VSEL_1TI): Likewise.
670 (VSEL_1TI_UNS): Likewise.
671 (ST_INTERNAL_1ti): Likewise.
672 (LD_INTERNAL_1ti): Likewise.
673 (XXSEL_1TI): Likewise.
674 (XXSEL_1TI_UNS): Likewise.
675 (VPERM_1TI): Likewise.
676 (VPERM_1TI_UNS): Likewise.
677 (XXPERMDI_1TI): Likewise.
679 (LXVD2X_V1TI): Likewise.
680 (STXVD2X_V1TI): Likewise.
681 (VEC_INIT_V1TI): Likewise.
682 (VEC_SET_V1TI): Likewise.
683 (VEC_EXT_V1TI): Likewise.
684 (EQV_V1TI): Likewise.
685 (NAND_V1TI): Likewise.
686 (ORC_V1TI): Likewise.
687 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
688 added in ISA 2.07. Add both normal 'altivec' builtins, and the
692 (VADDEUQM): Likewise.
693 (VADDECUQ): Likewise.
694 (VSUBEUQM): Likewise.
695 (VSUBECUQ): Likewise.
697 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
698 __int128_t and __uint128_t types.
699 (__uint128_type): Likewise.
700 (altivec_categorize_keyword): Add support for vector __int128_t,
701 vector __uint128_t, vector __int128, and vector unsigned __int128
702 as a container type for TImode operations that need to be done in
703 VSX/Altivec registers.
704 (rs6000_macro_to_expand): Likewise.
705 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
706 to support 128-bit integer instructions vaddcuq, vadduqm,
707 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
708 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
710 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
711 for V1TImode, and set up preferences to use VSX/Altivec
712 registers. Setup VSX reload handlers.
713 (rs6000_debug_reg_global): Likewise.
714 (rs6000_init_hard_regno_mode_ok): Likewise.
715 (rs6000_preferred_simd_mode): Likewise.
716 (vspltis_constant): Do not allow V1TImode as easy altivec
718 (easy_altivec_constant): Likewise.
719 (output_vec_const_move): Likewise.
720 (rs6000_expand_vector_set): Convert V1TImode set and extract to
722 (rs6000_expand_vector_extract): Likewise.
723 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
725 (rs6000_const_vec): Add support for V1TImode.
726 (rs6000_emit_le_vsx_load): Swap double words when loading or
727 storing TImode/V1TImode.
728 (rs6000_emit_le_vsx_store): Likewise.
729 (rs6000_emit_le_vsx_move): Likewise.
730 (rs6000_emit_move): Add support for V1TImode.
731 (altivec_expand_ld_builtin): Likewise.
732 (altivec_expand_st_builtin): Likewise.
733 (altivec_expand_vec_init_builtin): Likewise.
734 (altivec_expand_builtin): Likewise.
735 (rs6000_init_builtins): Add support for V1TImode type. Add
736 support for ISA 2.07 128-bit integer builtins. Define type names
737 for the VSX/Altivec vector types.
738 (altivec_init_builtins): Add support for overloaded vector
739 functions with V1TImode type.
740 (rs6000_preferred_reload_class): Prefer Altivec registers for
742 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
744 (rs6000_split_128bit_ok_p): Likewise.
745 (rs6000_handle_altivec_attribute): Create V1TImode from vector
746 __int128_t and vector __uint128_t.
748 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
756 (VS_scalar): Likewise.
757 (VS_double): Likewise.
758 (vsx_set_v1ti): New builtin function to create V1TImode from
761 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say
762 whether we support the ISA 2.07 128-bit integer arithmetic
764 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
765 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
766 and TImode types for use with the builtin functions.
767 (V1TI_type_node): Likewise.
768 (unsigned_V1TI_type_node): Likewise.
769 (intTI_type_internal_node): Likewise.
770 (uintTI_type_internal_node): Likewise.
772 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA
773 2.07 128-bit builtin functions.
774 (UNSPEC_VADDEUQM): Likewise.
775 (UNSPEC_VADDECUQ): Likewise.
776 (UNSPEC_VSUBCUQ): Likewise.
777 (UNSPEC_VSUBEUQM): Likewise.
778 (UNSPEC_VSUBECUQ): Likewise.
779 (VM): Add V1TImode to vector mode iterators.
782 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
783 (altivec_vaddcuq): Likewise.
784 (altivec_vsubuqm): Likewise.
785 (altivec_vsubcuq): Likewise.
786 (altivec_vaddeuqm): Likewise.
787 (altivec_vaddecuq): Likewise.
788 (altivec_vsubeuqm): Likewise.
789 (altivec_vsubecuq): Likewise.
791 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
793 (BOOL_128): Likewise.
794 (BOOL_REGS_OUTPUT): Likewise.
795 (BOOL_REGS_OP1): Likewise.
796 (BOOL_REGS_OP2): Likewise.
797 (BOOL_REGS_UNARY): Likewise.
798 (BOOL_REGS_AND_CR0): Likewise.
800 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
801 128-bit integer builtin support.
802 (vec_vadduqm): Likewise.
803 (vec_vaddecuq): Likewise.
804 (vec_vaddeuqm): Likewise.
805 (vec_vsubecuq): Likewise.
806 (vec_vsubeuqm): Likewise.
807 (vec_vsubcuq): Likewise.
808 (vec_vsubuqm): Likewise.
810 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
811 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
812 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
813 128-bit integer add/subtract to ISA 2.07.
815 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
817 Apply mainline r207798
818 2014-02-26 Alan Modra <amodra@gmail.com>
821 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
822 find_replacement on parts of insn rtl that might be reloaded.
824 Backport from mainline r208287
825 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
827 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
828 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
829 constraint on constants to permit them being loaded into
830 GENERAL_REGS or BASE_REGS.
832 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
834 Backport from mainline r207699.
835 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
838 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
839 for VSX/Altivec vectors that land in GPR registers.
841 Backport from mainline r207808.
842 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
845 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
846 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
847 into 64-bit and 32-bit moves. On 64-bit moves, add support for
848 using direct move instructions on ISA 2.07. Also adjust
849 instruction length for 64-bit.
850 (mov<mode>_64bit, TFmode/TDmode): Likewise.
851 (mov<mode>_32bit, TFmode/TDmode): Likewise.
853 Backport from mainline r207868.
854 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
857 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
858 Split 64-bit moves into 2 patterns. Do not allow the use of
859 direct move for TDmode in little endian, since the decimal value
860 has little endian bytes within a word, but the 64-bit pieces are
861 ordered in a big endian fashion, and normal subreg's of TDmode are
863 (mov<mode>_64bit_dm): Likewise.
864 (movtd_64bit_nodm): Likewise.
866 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
868 Backport from mainline r207658
869 2014-02-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
871 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
872 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
873 -mcall-openbsd, or -mcall-linux.
874 (CC1_ENDIAN_BIG_SPEC): Remove.
875 (CC1_ENDIAN_LITTLE_SPEC): Remove.
876 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
877 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
878 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
879 and %cc1_endian_default.
880 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
882 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
884 Little Endian Vector API Support
885 Backport from mainline r206443
886 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
888 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
889 two duplicate entries.
891 Backport from mainline r206494
892 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
894 * doc/invoke.texi: Add -maltivec={be,le} options, and document
895 default element-order behavior for -maltivec.
896 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
897 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
898 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
899 when targeting big endian, at least for now.
900 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
902 Backport from mainline r206541
903 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
905 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
907 Backport from mainline r206590
908 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
910 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
911 Implement -maltivec=be for vec_insert and vec_extract.
913 Backport from mainline r206641
914 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
916 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
917 and vmulosh rather than call gen_vec_widen_smult_*.
918 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
919 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
920 (vec_widen_smult_even_v16qi): Likewise.
921 (vec_widen_umult_even_v8hi): Likewise.
922 (vec_widen_smult_even_v8hi): Likewise.
923 (vec_widen_umult_odd_v16qi): Likewise.
924 (vec_widen_smult_odd_v16qi): Likewise.
925 (vec_widen_umult_odd_v8hi): Likewise.
926 (vec_widen_smult_odd_v8hi): Likewise.
927 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
928 vmuloub rather than call gen_vec_widen_umult_*.
929 (vec_widen_umult_lo_v16qi): Likewise.
930 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
931 vmulosb rather than call gen_vec_widen_smult_*.
932 (vec_widen_smult_lo_v16qi): Likewise.
933 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
934 rather than call gen_vec_widen_umult_*.
935 (vec_widen_umult_lo_v8hi): Likewise.
936 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
937 rather than call gen_vec_widen_smult_*.
938 (vec_widen_smult_lo_v8hi): Likewise.
940 Backport from mainline r207062
941 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
943 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
944 correction for little endian...
945 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
948 Backport from mainline r207262
949 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
951 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
952 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
953 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
954 -maltivec=be with LE targets.
955 (vsx_mergeh_<mode>): Likewise.
956 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New
958 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
959 (altivec_vmrghb): Replace with define_expand and new
960 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE
962 (altivec_vmrghb_direct): New define_insn.
963 (altivec_vmrghh): Replace with define_expand and new
964 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE
966 (altivec_vmrghh_direct): New define_insn.
967 (altivec_vmrghw): Replace with define_expand and new
968 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE
970 (altivec_vmrghw_direct): New define_insn.
971 (*altivec_vmrghsf): Adjust for endianness.
972 (altivec_vmrglb): Replace with define_expand and new
973 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE
975 (altivec_vmrglb_direct): New define_insn.
976 (altivec_vmrglh): Replace with define_expand and new
977 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE
979 (altivec_vmrglh_direct): New define_insn.
980 (altivec_vmrglw): Replace with define_expand and new
981 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE
983 (altivec_vmrglw_direct): New define_insn.
984 (*altivec_vmrglsf): Adjust for endianness.
985 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
986 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
987 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
988 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
989 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
990 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
991 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
992 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
994 Backport from mainline r207318
995 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
997 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
998 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
999 remove element index adjustment for endian (now handled in vsx.md
1001 (altivec_expand_vec_perm_const): Use
1002 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
1003 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
1004 (vsx_xxspltw_<mode>): Adjust element index for little endian.
1005 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
1006 define_expand and a new define_insn *altivec_vspltb_internal;
1007 adjust for -maltivec=be on a little endian target.
1008 (altivec_vspltb_direct): New.
1009 (altivec_vsplth): Divide into a define_expand and a new
1010 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
1011 little endian target.
1012 (altivec_vsplth_direct): New.
1013 (altivec_vspltw): Divide into a define_expand and a new
1014 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
1015 little endian target.
1016 (altivec_vspltw_direct): New.
1017 (altivec_vspltsf): Divide into a define_expand and a new
1018 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
1019 a little endian target.
1021 Backport from mainline r207326
1022 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1024 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
1025 unused variable "field".
1026 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
1027 (vsx_mergeh_<mode>): Likewise.
1028 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
1029 (altivec_vmrghh): Likewise.
1030 (altivec_vmrghw): Likewise.
1031 (altivec_vmrglb): Likewise.
1032 (altivec_vmrglh): Likewise.
1033 (altivec_vmrglw): Likewise.
1034 (altivec_vspltb): Add missing uses.
1035 (altivec_vsplth): Likewise.
1036 (altivec_vspltw): Likewise.
1037 (altivec_vspltsf): Likewise.
1039 Backport from mainline r207414
1040 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1042 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
1043 (altivec_vsumsws): Add handling for -maltivec=be with a little
1045 (altivec_vsumsws_direct): New.
1046 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
1047 gen_altivec_vsumsws.
1049 Backport from mainline r207415
1050 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1052 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
1053 for vector types other than V16QImode.
1054 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
1055 define_expand, and call altivec_expand_vec_perm_le when producing
1056 code with little endian element order.
1057 (*altivec_vperm_<mode>_internal): New insn having previous
1058 behavior of altivec_vperm_<mode>.
1059 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
1060 altivec_expand_vec_perm_le when producing code with little endian
1062 (*altivec_vperm_<mode>_uns_internal): New insn having previous
1063 behavior of altivec_vperm_<mode>_uns.
1065 Backport from mainline r207520
1066 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1068 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
1069 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
1070 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
1071 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
1072 gen_altivec_vpkuwum.
1073 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
1075 (altivec_vpks<VI_char>ss): Likewise.
1076 (altivec_vpks<VI_char>us): Likewise.
1077 (altivec_vpku<VI_char>us): Likewise.
1078 (altivec_vpku<VI_char>um): Likewise.
1079 (altivec_vpku<VI_char>um_direct): New (copy of
1080 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
1082 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
1083 target is little endian and -maltivec=be is not specified.
1084 (*altivec_vupkhs<VU_char>_direct): New (copy of
1085 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal
1087 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
1088 target is little endian and -maltivec=be is not specified.
1089 (*altivec_vupkls<VU_char>_direct): New (copy of
1090 altivec_vupkls<VU_char> that always emits vupkls*, for internal
1092 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
1093 little endian and -maltivec=be is not specified.
1094 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
1095 little endian and -maltivec=be is not specified.
1097 Backport from mainline r207521
1098 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1100 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
1101 generation for -maltivec=be.
1102 (altivec_vsumsws): Simplify redundant test.
1104 Backport from mainline r207525
1105 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1107 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
1108 CODE_FOR_altivec_vpku[hw]um to
1109 CODE_FOR_altivec_vpku[hw]um_direct.
1110 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
1111 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
1112 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
1113 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
1115 Backport from mainline r207814.
1116 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1118 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
1121 Backport from mainline r207815.
1122 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1124 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian
1126 (p8_vmrgow): Likewise.
1128 Backport from mainline r207919.
1129 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1131 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
1134 Backport from mainline 208019
1135 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1137 * config/rs6000/altivec.md (altivec_lvxl): Rename as
1138 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of
1140 (altivec_lvxl_<mode>): New define_expand incorporating
1141 -maltivec=be semantics where needed.
1142 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
1143 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
1144 semantics where needed.
1145 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
1146 (altivec_stvx_<mode>): New define_expand incorporating
1147 -maltivec=be semantics where needed.
1148 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
1149 VM2 iterator instead of V4SI.
1150 (altivec_stvxl_<mode>): New define_expand incorporating
1151 -maltivec=be semantics where needed.
1152 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
1153 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
1154 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI,
1155 STVX_V2DF, STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI,
1156 STVXL_V2DF, STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI,
1158 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
1159 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
1160 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
1161 ALTIVEC_BUILTIN_STVXL.
1162 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New
1164 (altivec_expand_stvx_be): Likewise.
1165 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
1166 (altivec_expand_lvx_be): Likewise.
1167 (altivec_expand_stvx_be): Likewise.
1168 (altivec_expand_builtin): Add cases for
1169 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
1170 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
1171 (altivec_init_builtins): Add definitions for
1172 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
1173 __builtin_altivec_stvx_<mode>, and
1174 __builtin_altivec_stvxl_<mode>.
1176 Backport from mainline 208021
1177 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1179 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
1181 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
1182 gen_altivec_vsumsws.
1184 Backport from mainline 208049
1185 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1187 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
1188 define_insn with define_expand and new define_insn
1189 *altivec_lve<VI_char>x_internal.
1190 (altivec_stve<VI_char>x): Replace define_insn with define_expand
1191 and new define_insn *altivec_stve<VI_char>x_internal.
1192 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
1194 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
1196 (altivec_expand_stvex_be): New function.
1198 Backport from mainline
1199 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1200 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
1203 Backport from mainline
1204 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1205 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
1206 to use canonical form for nor<mode>3.
1208 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1210 Backport from mainline
1211 2014-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
1213 * config/rs6000/rs6000.opt (-mlra): Add switch to enable the LRA
1216 * config/rs6000/rs6000.c (TARGET_LRA_P): Add support for -mlra to
1217 enable the LRA register allocator. Back port the changes from the
1218 trunk to enable LRA.
1219 (rs6000_legitimate_offset_address_p): Likewise.
1220 (legitimate_lo_sum_address_p): Likewise.
1221 (use_toc_relative_ref): Likewise.
1222 (rs6000_legitimate_address_p): Likewise.
1223 (rs6000_emit_move): Likewise.
1224 (rs6000_secondary_memory_needed_mode): Likewise.
1225 (rs6000_alloc_sdmode_stack_slot): Likewise.
1226 (rs6000_lra_p): Likewise.
1228 * config/rs6000/sync.md (load_lockedti): Copy TI/PTI variables by
1229 64-bit parts to force the register allocator to allocate even/odd
1230 register pairs for the quad word atomic instructions.
1231 (store_conditionalti): Likewise.
1233 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1235 Back port from mainline
1236 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1239 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1240 -mquad-memory-atomic. Update -mquad-memory documentation to say
1241 it is only used for non-atomic loads/stores.
1243 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
1244 -mquad-memory or -mquad-memory-atomic switches.
1246 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
1247 -mquad-memory-atomic to ISA 2.07 support.
1249 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
1250 to separate support of normal quad word memory operations (ldq,
1251 stq) from the atomic quad word memory operations.
1253 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
1254 support to separate non-atomic quad word operations from atomic
1255 quad word operations. Disable non-atomic quad word operations in
1256 little endian mode so that we don't have to swap words after the
1257 load and before the store.
1258 (quad_load_store_p): Add comment about atomic quad word support.
1259 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
1260 options printed with -mdebug=reg.
1262 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
1263 -mquad-memory-atomic as the test for whether we have quad word
1264 atomic instructions.
1265 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic,
1266 -mquad-memory, or -mp8-vector are used, allow byte/half-word
1269 * config/rs6000/sync.md (load_lockedti): Insure that the address
1270 is a proper indexed or indirect address for the lqarx instruction.
1271 On little endian systems, swap the hi/lo registers after the lqarx
1273 (load_lockedpti): Use indexed_or_indirect_operand predicate to
1274 insure the address is valid for the lqarx instruction.
1275 (store_conditionalti): Insure that the address is a proper indexed
1276 or indirect address for the stqcrx. instruction. On little endian
1277 systems, swap the hi/lo registers before doing the stqcrx.
1279 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
1280 insure the address is valid for the stqcrx. instruction.
1282 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
1283 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
1284 type of quad memory support is available.
1286 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1288 Apply mainline r202190, powerpc64le multilibs and multiarch dir
1289 2013-09-03 Alan Modra <amodra@gmail.com>
1291 * config.gcc (powerpc*-*-linux*): Add support for little-endian
1292 multilibs to big-endian target and vice versa.
1293 * config/rs6000/t-linux64: Use := assignment on all vars.
1294 (MULTILIB_EXTRA_OPTS): Remove fPIC.
1295 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
1296 * config/rs6000/t-linux64le: New file.
1297 * config/rs6000/t-linux64bele: New file.
1298 * config/rs6000/t-linux64lebe: New file.
1300 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1302 Back port from mainline
1303 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
1306 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
1307 endian support, remove tests for WORDS_BIG_ENDIAN.
1308 (p8_mfvsrd_3_<mode>): Likewise.
1309 (reload_gpr_from_vsx<mode>): Likewise.
1310 (reload_gpr_from_vsxsf): Likewise.
1311 (p8_mfvsrd_4_disf): Likewise.
1313 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1315 Backport from mainline
1316 2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1319 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
1320 (rs6000_emit_swdiv_low_precision): Remove.
1321 (rs6000_emit_swdiv): Rewrite to handle between one and four
1322 iterations of Newton-Raphson generally; modify required number of
1323 iterations for some cases.
1324 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
1326 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1328 Backport from mainline
1329 2013-08-19 Peter Bergner <bergner@vnet.ibm.com>
1330 Jakub Jelinek <jakub@redhat.com>
1332 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
1333 (BUILT_IN_FABSD64): Likewise.
1334 (BUILT_IN_FABSD128): Likewise.
1335 * builtins.c (expand_builtin): Add support for
1336 new DFP ABS builtins.
1337 (fold_builtin_1): Likewise.
1338 * config/rs6000/dfp.md
1339 (*abstd2_fpr): Handle non-overlapping destination
1340 and source operands.
1341 (*nabstd2_fpr): Likewise.
1343 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1345 Apply mainline r205060.
1346 2013-11-20 Alan Modra <amodra@gmail.com>
1347 * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
1348 * config/rs6000/rs6000.c (rs6000_option_override_internal): Default
1349 to strict alignment on older processors when little-endian.
1350 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
1353 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1355 POWER ELFv2 ABI Support
1356 Backport from mainline r204842:
1358 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1360 * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document.
1362 Backport from mainline r204809:
1364 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1366 * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define.
1368 Backport from mainline r204808:
1370 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1371 Alan Modra <amodra@gmail.com>
1373 * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2.
1374 (RS6000_SAVE_TOC): Remove.
1375 (RS6000_TOC_SAVE_SLOT): New macro.
1376 * config/rs6000/rs6000.c (rs6000_parm_offset): New function.
1377 (rs6000_parm_start): Use it.
1378 (rs6000_function_arg_advance_1): Likewise.
1379 (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT.
1380 (rs6000_emit_epilogue): Likewise.
1381 (rs6000_call_aix): Likewise.
1382 (rs6000_output_function_prologue): Do not save/restore r11
1383 around calling _mcount for ABI_ELFv2.
1385 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1386 Alan Modra <amodra@gmail.com>
1388 * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space):
1390 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove.
1391 (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space.
1392 * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function.
1393 (rs6000_function_parms_need_stack): Likewise.
1394 (rs6000_reg_parm_stack_space): Likewise.
1395 (rs6000_function_arg): Do not replace BLKmode by Pmode when
1396 returning a register argument.
1398 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1399 Michael Gschwind <mkg@us.ibm.com>
1401 * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro.
1402 (ALTIVEC_ARG_MAX_RETURN): Likewise.
1403 (FUNCTION_VALUE_REGNO_P): Use them.
1404 * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define.
1405 (rs6000_return_in_msb): New function.
1406 (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates.
1407 Handle aggregates of up to 16 bytes for ELFv2.
1408 (rs6000_function_value): Handle ELFv2 homogeneous aggregates.
1410 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1411 Michael Gschwind <mkg@us.ibm.com>
1413 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
1414 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
1415 (rs6000_discover_homogeneous_aggregate): Likewise.
1416 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
1417 (rs6000_function_arg_advance_1): Likewise.
1418 (rs6000_function_arg): Likewise.
1419 (rs6000_arg_partial_bytes): Likewise.
1420 (rs6000_psave_function_arg): Handle BLKmode arguments.
1422 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1423 Michael Gschwind <mkg@us.ibm.com>
1425 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
1426 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
1427 (rs6000_discover_homogeneous_aggregate): Likewise.
1428 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
1429 (rs6000_function_arg_advance_1): Likewise.
1430 (rs6000_function_arg): Likewise.
1431 (rs6000_arg_partial_bytes): Likewise.
1432 (rs6000_psave_function_arg): Handle BLKmode arguments.
1434 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1436 * config/rs6000/rs6000.c (machine_function): New member
1438 (rs6000_emit_prologue): Set r2_setup_needed if necessary.
1439 (rs6000_output_mi_thunk): Set r2_setup_needed.
1440 (rs6000_output_function_prologue): Output global entry point
1441 prologue and local entry point marker if needed for ABI_ELFv2.
1442 Output -mprofile-kernel code here.
1443 (output_function_profiler): Do not output -mprofile-kernel
1444 code here; moved to rs6000_output_function_prologue.
1445 (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2.
1447 (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2.
1448 (rs6000_output_function_entry): Likewise.
1449 (rs6000_assemble_integer): Likewise.
1450 (rs6000_elf_encode_section_info): Likewise.
1451 (rs6000_elf_declare_function_name): Do not create dot symbols
1452 or .opd section for ABI_ELFv2.
1454 (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines.
1455 (rs6000_trampoline_init): Likewise.
1456 (rs6000_elf_file_end): Call file_end_indicate_exec_stack
1459 (rs6000_call_aix): Handle ELFv2 indirect calls. Do not check
1460 for function descriptors in ABI_ELFv2.
1462 * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support
1463 on ABI_AIX only, not ABI_ELFv2.
1464 ("*call_value_indirect_aix<mode>"): Likewise.
1465 ("*call_indirect_elfv2<mode>"): New pattern.
1466 ("*call_value_indirect_elfv2<mode>"): Likewise.
1468 * config/rs6000/predicates.md ("symbol_ref_operand"): Do not
1469 check for function descriptors in ABI_ELFv2.
1470 ("current_file_function_operand"): Likewise.
1472 * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]:
1474 (FUNC_NAME): Define ELFv2 variant.
1475 (JUMP_TARGET): Likewise.
1476 (FUNC_START): Likewise.
1477 (HIDDEN_FUNC): Likewise.
1478 (FUNC_END): Likeiwse.
1480 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1482 * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1
1483 and --with-abi=elfv2.
1484 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi".
1485 * config/rs6000/rs6000.opt (mabi=elfv1): New option.
1486 (mabi=elfv2): Likewise.
1487 * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2.
1488 * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI
1490 (ELFv2_ABI_CHECK): New macro.
1491 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
1492 rs6000_current_abi to ABI_AIX or ABI_ELFv2.
1493 (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version.
1494 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
1495 _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate.
1497 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2.
1498 (debug_stack_info): Likewise.
1499 (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX.
1500 (rs6000_legitimize_tls_address): Likewise.
1501 (rs6000_conditional_register_usage): Likewise.
1502 (rs6000_emit_move): Likewise.
1503 (init_cumulative_args): Likewise.
1504 (rs6000_function_arg_advance_1): Likewise.
1505 (rs6000_function_arg): Likewise.
1506 (rs6000_arg_partial_bytes): Likewise.
1507 (rs6000_output_function_entry): Likewise.
1508 (rs6000_assemble_integer): Likewise.
1509 (rs6000_savres_strategy): Likewise.
1510 (rs6000_stack_info): Likewise.
1511 (rs6000_function_ok_for_sibcall): Likewise.
1512 (rs6000_emit_load_toc_table): Likewise.
1513 (rs6000_savres_routine_name): Likewise.
1514 (ptr_regno_for_savres): Likewise.
1515 (rs6000_emit_prologue): Likewise.
1516 (rs6000_emit_epilogue): Likewise.
1517 (rs6000_output_function_epilogue): Likewise.
1518 (output_profile_hook): Likewise.
1519 (output_function_profiler): Likewise.
1520 (rs6000_trampoline_size): Likewise.
1521 (rs6000_trampoline_init): Likewise.
1522 (rs6000_elf_output_toc_section_asm_op): Likewise.
1523 (rs6000_elf_encode_section_info): Likewise.
1524 (rs6000_elf_reloc_rw_mask): Likewise.
1525 (rs6000_elf_declare_function_name): Likewise.
1526 (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX,
1527 except that rs6000_compat_align_parm is always assumed false.
1528 (rs6000_gimplify_va_arg): Likewise.
1529 (rs6000_call_aix): Update comment.
1530 (rs6000_sibcall_aix): Likewise.
1531 * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"):
1532 Treat ABI_ELFv2 the same as ABI_AIX.
1533 ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
1534 ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise.
1535 ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
1536 ("load_toc_aix_si"): Likewise.
1537 ("load_toc_aix_di"): Likewise.
1539 ("call_value"): Likewise.
1540 ("*call_local_aix<mode>"): Likewise.
1541 ("*call_value_local_aix<mode>"): Likewise.
1542 ("*call_nonlocal_aix<mode>"): Likewise.
1543 ("*call_value_nonlocal_aix<mode>"): Likewise.
1544 ("*call_indirect_aix<mode>"): Likewise.
1545 ("*call_value_indirect_aix<mode>"): Likewise.
1546 ("sibcall"): Likewise.
1547 ("sibcall_value"): Likewise.
1548 ("*sibcall_aix<mode>"): Likewise.
1549 ("*sibcall_value_aix<mode>"): Likewise.
1550 * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise.
1551 ("current_file_function_operand"): Likewise.
1553 Backport from mainline r204807:
1555 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1557 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic
1558 by making use of the fact that for vector / floating point arguments
1559 passed both in VRs/FPRs and in the fixed parameter area, the partial
1560 bytes mechanism is in fact not used.
1562 Backport from mainline r204806:
1564 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1566 * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function.
1567 (rs6000_finish_function_arg): Likewise.
1568 (rs6000_function_arg): Use rs6000_psave_function_arg and
1569 rs6000_finish_function_arg to handle both vector and floating
1570 point arguments that are also passed in GPRs / the stack.
1572 Backport from mainline r204805:
1574 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1576 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument.
1577 (USE_ALTIVEC_FOR_ARG_P): Likewise.
1578 (rs6000_darwin64_record_arg_advance_recurse): Update uses.
1579 (rs6000_function_arg_advance_1):Likewise.
1580 (rs6000_darwin64_record_arg_recurse): Likewise.
1581 (rs6000_function_arg): Likewise.
1582 (rs6000_arg_partial_bytes): Likewise.
1584 Backport from mainline r204804:
1586 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1588 * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace
1589 "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN.
1590 (rs6000_savres_strategy): Likewise.
1591 (rs6000_return_addr): Likewise.
1592 (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by
1593 testing for ABI_V4 (since ABI_DARWIN is impossible here).
1594 (rs6000_emit_prologue): Likewise.
1595 (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test.
1596 (rs6000_elf_declare_function_name): Remove duplicated test.
1597 * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test
1598 for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test).
1599 ("load_toc_v4_PIC_1_normal"): Likewise.
1600 ("load_toc_v4_PIC_1_476"): Likewise.
1601 ("load_toc_v4_PIC_1b"): Likewise.
1602 ("load_toc_v4_PIC_1b_normal"): Likewise.
1603 ("load_toc_v4_PIC_1b_476"): Likewise.
1604 ("load_toc_v4_PIC_2"): Likewise.
1605 ("load_toc_v4_PIC_3b"): Likewise.
1606 ("load_toc_v4_PIC_3c"): Likewise.
1607 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test.
1608 (RS6000_SAVE_AREA): Likewise.
1609 (FP_ARG_MAX_REG): Likewise.
1610 (RETURN_ADDRESS_OFFSET): Likewise.
1611 * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead
1613 (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
1614 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1616 Backport from mainline r204803:
1618 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1620 * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ...
1621 (rs6000_call_aix): ... this. Handle both direct and indirect calls.
1622 Create call insn directly instead of via various gen_... routines.
1623 Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE.
1624 (rs6000_sibcall_aix): New function.
1625 * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove.
1626 (TOC_SAVE_OFFSET_64BIT): Likewise.
1627 (AIX_FUNC_DESC_TOC_32BIT): Likewise.
1628 (AIX_FUNC_DESC_TOC_64BIT): Likewise.
1629 (AIX_FUNC_DESC_SC_32BIT): Likewise.
1630 (AIX_FUNC_DESC_SC_64BIT): Likewise.
1631 ("call" expander): Call rs6000_call_aix.
1632 ("call_value" expander): Likewise.
1633 ("call_indirect_aix<ptrsize>"): Replace this pattern ...
1634 ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
1635 ("*call_indirect_aix<mode>"): ... by this insn pattern.
1636 ("call_value_indirect_aix<ptrsize>"): Replace this pattern ...
1637 ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
1638 ("*call_value_indirect_aix<mode>"): ... by this insn pattern.
1639 ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ...
1640 ("*call_nonlocal_aix<mode>"): ... this pattern.
1641 ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace
1642 ("*call_value_nonlocal_aix<mode>"): ... by this pattern.
1643 ("*call_local_aix<mode>"): New insn pattern.
1644 ("*call_value_local_aix<mode>"): Likewise.
1645 ("sibcall" expander): Call rs6000_sibcall_aix.
1646 ("sibcall_value" expander): Likewise. Move earlier in file.
1647 ("*sibcall_nonlocal_aix<mode>"): Replace by ...
1648 ("*sibcall_aix<mode>"): ... this pattern.
1649 ("*sibcall_value_nonlocal_aix<mode>"): Replace by ...
1650 ("*sibcall_value_aix<mode>"): ... this pattern.
1651 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove.
1652 (rs6000_call_aix): Add prototype.
1653 (rs6000_sibcall_aix): Likewise.
1655 Backport from mainline r204799:
1657 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1659 * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a
1660 RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn.
1661 Instead, add USEs of all modified call-saved CR fields to the
1662 insn storing the result to the stack slot, and provide an
1663 appropriate REG_FRAME_RELATED_EXPR for that insn.
1664 * config/rs6000/rs6000.md ("*crsave"): New insn pattern.
1665 * config/rs6000/predicates.md ("crsave_operation"): New predicate.
1667 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1669 ELFv2 ABI Call Support
1670 Backport from mainline r204798:
1672 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1673 Alan Modra <amodra@gmail.com>
1675 * function.c (assign_parms): Use all.reg_parm_stack_space instead
1676 of re-evaluating REG_PARM_STACK_SPACE target macro.
1677 (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE. Use it
1678 instead of evaluating target macro REG_PARM_STACK_SPACE every time.
1679 (assign_parm_find_entry_rtl): Update call.
1680 * calls.c (initialize_argument_information): Update call.
1681 (emit_library_call_value_1): Likewise.
1682 * expr.h (locate_and_pad_parm): Update prototype.
1684 Backport from mainline r204797:
1686 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1688 * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL
1691 Backport from mainline r197003:
1693 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
1695 * calls.c (expand_call): Add missing guard to code handling return
1696 of non-BLKmode structures in MSB.
1697 * function.c (expand_function_end): Likewise.
1699 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1701 Backport from mainline r201750.
1702 Note: Default setting of -mcompat-align-parm inverted!
1704 2013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1707 * doc/invoke.texi: Add documentation of mcompat-align-parm
1709 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
1710 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
1711 and Linux, correct BLKmode alignment when 128-bit alignment is
1712 required and compatibility flag is not set.
1713 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified
1714 alignment for zero-size arguments when compatibility flag is not
1717 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1719 Little Endian Vector Support
1720 Backport from mainline r205333
1721 2013-11-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1723 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct
1726 Backport from mainline r205241
1727 2013-11-21 Bill Schmidt <wschmidt@vnet.ibm.com>
1729 * config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous
1730 little endian change.
1731 (vec_pack_sfix_trunc_v2df): Likewise.
1732 (vec_pack_ufix_trunc_v2df): Likewise.
1733 * config/rs6000/rs6000.c (rs6000_expand_interleave): Correct
1734 double checking of endianness.
1736 Backport from mainline r205146
1737 2013-11-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1739 * config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian.
1740 (vsx_extract_<mode>): Likewise.
1741 (*vsx_extract_<mode>_one_le): New LE variant on
1742 *vsx_extract_<mode>_zero.
1743 (vsx_extract_v4sf): Adjust for little endian.
1745 Backport from mainline r205080
1746 2013-11-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1748 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust
1749 V16QI vector splat case for little endian.
1751 Backport from mainline r205045:
1753 2013-11-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1755 * config/rs6000/vector.md ("mov<mode>"): Do not call
1756 rs6000_emit_le_vsx_move to move into or out of GPRs.
1757 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
1758 source and destination are not GPR hard regs.
1760 Backport from mainline r204920
1761 2011-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1763 * config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg
1764 parameter and use it in REG_FRAME_RELATED_EXPR note.
1765 (emit_frame_save): Call rs6000_frame_related with extra NULL_RTX
1767 (rs6000_emit_prologue): Likewise, but for little endian VSX
1768 stores, pass the source register of the store instead.
1770 Backport from mainline r204862
1771 2013-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1773 * config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X):
1775 (altivec_vperm_<mode>): Revert earlier little endian change.
1776 (*altivec_vperm_<mode>_internal): Remove.
1777 (altivec_vperm_<mode>_uns): Revert earlier little endian change.
1778 (*altivec_vperm_<mode>_uns_internal): Remove.
1779 * config/rs6000/vector.md (vec_realign_load_<mode>): Revise
1782 Backport from mainline r204441
1783 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1785 * config/rs6000/rs6000.c (rs6000_option_override_internal):
1786 Remove restriction against use of VSX instructions when generating
1787 code for little endian mode.
1789 Backport from mainline r204440
1790 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1792 * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh
1793 for both big and little endian.
1794 (mulv8hi3): Swap input operands for merge high and merge low
1795 instructions for little endian.
1797 Backport from mainline r204439
1798 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1800 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change
1801 define_insn to define_expand that uses even patterns for big
1802 endian and odd patterns for little endian.
1803 (vec_widen_smult_even_v16qi): Likewise.
1804 (vec_widen_umult_even_v8hi): Likewise.
1805 (vec_widen_smult_even_v8hi): Likewise.
1806 (vec_widen_umult_odd_v16qi): Likewise.
1807 (vec_widen_smult_odd_v16qi): Likewise.
1808 (vec_widen_umult_odd_v8hi): Likewise.
1809 (vec_widen_smult_odd_v8hi): Likewise.
1810 (altivec_vmuleub): New define_insn.
1811 (altivec_vmuloub): Likewise.
1812 (altivec_vmulesb): Likewise.
1813 (altivec_vmulosb): Likewise.
1814 (altivec_vmuleuh): Likewise.
1815 (altivec_vmulouh): Likewise.
1816 (altivec_vmulesh): Likewise.
1817 (altivec_vmulosh): Likewise.
1819 Backport from mainline r204395
1820 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1822 * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
1824 (vec_pack_ufix_trunc_v2df): Likewise.
1826 Backport from mainline r204363
1827 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1829 * config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap
1830 arguments to merge instruction for little endian.
1831 (vec_widen_umult_lo_v16qi): Likewise.
1832 (vec_widen_smult_hi_v16qi): Likewise.
1833 (vec_widen_smult_lo_v16qi): Likewise.
1834 (vec_widen_umult_hi_v8hi): Likewise.
1835 (vec_widen_umult_lo_v8hi): Likewise.
1836 (vec_widen_smult_hi_v8hi): Likewise.
1837 (vec_widen_smult_lo_v8hi): Likewise.
1839 Backport from mainline r204350
1840 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1842 * config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D):
1843 Replace the define_insn_and_split with a define_insn and two
1844 define_splits, with the split after reload re-permuting the source
1845 register to its original value.
1846 (*vsx_le_perm_store_<mode> for VSX_W): Likewise.
1847 (*vsx_le_perm_store_v8hi): Likewise.
1848 (*vsx_le_perm_store_v16qi): Likewise.
1850 Backport from mainline r204321
1851 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1853 * config/rs6000/vector.md (vec_pack_trunc_v2df): Adjust for
1856 Backport from mainline r204321
1857 2013-11-02 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
1859 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for
1862 Backport from mainline r203980
1863 2013-10-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1865 * config/rs6000/altivec.md (mulv8hi3): Adjust for little endian.
1867 Backport from mainline r203930
1868 2013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com>
1870 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
1871 meaning of merge-high and merge-low masks for little endian; avoid
1872 use of vector-pack masks for little endian for mismatched modes.
1874 Backport from mainline r203877
1875 2013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1877 * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
1879 (vec_unpacku_hi_v8hi): Likewise.
1880 (vec_unpacku_lo_v16qi): Likewise.
1881 (vec_unpacku_lo_v8hi): Likewise.
1883 Backport from mainline r203863
1884 2013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1886 * config/rs6000/rs6000.c (vspltis_constant): Make sure we check
1887 all elements for both endian flavors.
1889 Backport from mainline r203714
1890 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1892 * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
1894 (vec_unpacks_lo_v4sf): Likewise.
1895 (vec_unpacks_float_hi_v4si): Likewise.
1896 (vec_unpacks_float_lo_v4si): Likewise.
1897 (vec_unpacku_float_hi_v4si): Likewise.
1898 (vec_unpacku_float_lo_v4si): Likewise.
1900 Backport from mainline r203713
1901 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1903 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
1904 (vsx_concat_v2sf): Likewise.
1906 Backport from mainline r203458
1907 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1909 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
1910 handle vector float as well.
1911 (*vsx_le_perm_load_v4si): Likewise.
1912 (*vsx_le_perm_store_v2di): Likewise.
1913 (*vsx_le_perm_store_v4si): Likewise.
1915 Backport from mainline r203457
1916 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1918 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
1919 directly to circumvent subtract from splat{31} workaround.
1920 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
1922 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
1923 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
1924 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
1925 (altivec_vperm_<mode>): Convert to define_insn_and_split to
1926 separate big and little endian logic.
1927 (*altivec_vperm_<mode>_internal): New define_insn.
1928 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
1929 separate big and little endian logic.
1930 (*altivec_vperm_<mode>_uns_internal): New define_insn.
1931 (vec_permv16qi): Add little endian logic.
1933 Backport from mainline r203247
1934 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1936 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
1937 (altivec_expand_vec_perm_const): Call it.
1939 Backport from mainline r203246
1940 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1942 * config/rs6000/vector.md (mov<mode>): Emit permuted move
1943 sequences for LE VSX loads and stores at expand time.
1944 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
1946 * config/rs6000/rs6000.c (rs6000_const_vec): New.
1947 (rs6000_gen_le_vsx_permute): New.
1948 (rs6000_gen_le_vsx_load): New.
1949 (rs6000_gen_le_vsx_store): New.
1950 (rs6000_gen_le_vsx_move): New.
1951 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
1952 (*vsx_le_perm_load_v4si): New.
1953 (*vsx_le_perm_load_v8hi): New.
1954 (*vsx_le_perm_load_v16qi): New.
1955 (*vsx_le_perm_store_v2di): New.
1956 (*vsx_le_perm_store_v4si): New.
1957 (*vsx_le_perm_store_v8hi): New.
1958 (*vsx_le_perm_store_v16qi): New.
1959 (*vsx_xxpermdi2_le_<mode>): New.
1960 (*vsx_xxpermdi4_le_<mode>): New.
1961 (*vsx_xxpermdi8_le_V8HI): New.
1962 (*vsx_xxpermdi16_le_V16QI): New.
1963 (*vsx_lxvd2x2_le_<mode>): New.
1964 (*vsx_lxvd2x4_le_<mode>): New.
1965 (*vsx_lxvd2x8_le_V8HI): New.
1966 (*vsx_lxvd2x16_le_V16QI): New.
1967 (*vsx_stxvd2x2_le_<mode>): New.
1968 (*vsx_stxvd2x4_le_<mode>): New.
1969 (*vsx_stxvd2x8_le_V8HI): New.
1970 (*vsx_stxvd2x16_le_V16QI): New.
1972 Backport from mainline r201235
1973 2013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
1974 Anton Blanchard <anton@au1.ibm.com>
1976 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
1977 (altivec_vpks<VI_char>ss): Likewise.
1978 (altivec_vpks<VI_char>us): Likewise.
1979 (altivec_vpku<VI_char>us): Likewise.
1980 (altivec_vpku<VI_char>um): Likewise.
1982 Backport from mainline r201208
1983 2013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
1984 Anton Blanchard <anton@au1.ibm.com>
1986 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
1987 operands to vperm for little endian.
1988 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
1989 of lvsl to create the control mask for a vperm for little endian.
1991 Backport from mainline r201195
1992 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1993 Anton Blanchard <anton@au1.ibm.com>
1995 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
1996 two operands for little-endian.
1998 Backport from mainline r201193
1999 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2000 Anton Blanchard <anton@au1.ibm.com>
2002 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
2003 selection of field for vector splat in little endian mode.
2005 Backport from mainline r201149
2006 2013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
2007 Anton Blanchard <anton@au1.ibm.com>
2009 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
2010 endianness when selecting field to splat.
2012 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2014 Backport from mainline r205123:
2016 2013-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2018 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not
2019 allow subregs of TDmode in FPRs of smaller size in little-endian.
2020 (rs6000_split_multireg_move): When splitting an access to TDmode
2021 in FPRs, do not use simplify_gen_subreg.
2023 Backport from mainline r204927:
2025 2013-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2027 * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
2028 sdmode_stack_slot also in little-endian mode.
2030 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2033 Backport from mainline
2034 2013-12-03 Peter Bergner <bergner@vnet.ibm.com>
2036 * config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix
2038 (_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise.
2040 Backport from mainline r205233.
2041 2013-11-21 Peter Bergner <bergner@vnet.ibm.com>
2043 * doc/extend.texi: Document htm builtins.
2045 Backport from mainline
2046 2013-07-17 Iain Sandoe <iain@codesourcery.com>
2048 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
2050 Backport from mainline
2051 2013-07-16 Peter Bergner <bergner@vnet.ibm.com>
2053 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
2054 enable extra ISA flags with TARGET_HTM.
2056 2013-07-16 Jakub Jelinek <jakub@redhat.com>
2057 Peter Bergner <bergner@vnet.ibm.com>
2059 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
2060 registers in the comment.
2061 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
2062 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
2063 rather than FIRST_PSEUDO_REGISTERS.
2065 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
2066 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
2067 * config/rs6000/rs6000.opt: Add -mhtm option.
2068 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
2069 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
2070 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
2071 __HTM__ if the HTM instructions are available.
2072 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand)
2073 (htm_spr_reg_operand): New define_predicates.
2074 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
2075 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
2077 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2)
2078 (BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
2079 HTM builtin functions.
2080 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
2081 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
2082 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
2083 (rs6000_builtin_mask_calculate): Likewise.
2084 (rs6000_option_override_internal): Likewise.
2085 (bdesc_htm): Add new HTM builtin support.
2086 (htm_spr_num): New function.
2087 (htm_spr_regno): Likewise.
2088 (rs6000_htm_spr_icode): Likewise.
2089 (htm_expand_builtin): Likewise.
2090 (htm_init_builtins): Likewise.
2091 (rs6000_expand_builtin): Add support for HTM builtin functions.
2092 (rs6000_init_builtins): Likewise.
2093 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm option.
2094 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
2095 (TARGET_HTM, MASK_HTM): Define macros.
2096 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
2097 (FIXED_REGISTERS): Likewise.
2098 (CALL_USED_REGISTERS): Likewise.
2099 (CALL_REALLY_USED_REGISTERS): Likewise.
2100 (REG_ALLOC_ORDER): Likewise.
2101 (enum reg_class): Likewise.
2102 (REG_CLASS_NAMES): Likewise.
2103 (REG_CLASS_CONTENTS): Likewise.
2104 (REGISTER_NAMES): Likewise.
2105 (ADDITIONAL_REGISTER_NAMES): Likewise.
2106 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT)
2107 (RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
2108 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
2109 * config/rs6000/htm.md: New file.
2110 * config/rs6000/htmintrin.h: New file.
2111 * config/rs6000/htmxlintrin.h: New file.
2113 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2117 2013-11-23 Alan Modra <amodra@gmail.com>
2118 * config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.
2120 Backport from mainline
2121 2013-11-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2124 * config/rs6000/rs6000.md (movdi_internal32): Eliminate
2125 constraints that would allow DImode into the traditional Altivec
2126 registers, but cause undesirable code generation when loading 0 as
2128 (movdi_internal64): Likewise.
2129 (cmp<mode>_fpr): Do not use %x for CR register output.
2130 (extendsfdf2_fpr): Fix constraints when -mallow-upper-df and
2131 -mallow-upper-sf debug switches are used.
2133 Backport from mainline
2134 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
2136 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
2137 fields to the reg_addr array that describes the valid addressing
2138 mode for any register, general purpose registers, floating point
2139 registers, and Altivec registers.
2140 (FIRST_RELOAD_REG_CLASS): Likewise.
2141 (LAST_RELOAD_REG_CLASS): Likewise.
2142 (struct reload_reg_map_type): Likewise.
2143 (reload_reg_map_type): Likewise.
2144 (RELOAD_REG_VALID): Likewise.
2145 (RELOAD_REG_MULTIPLE): Likewise.
2146 (RELOAD_REG_INDEXED): Likewise.
2147 (RELOAD_REG_OFFSET): Likewise.
2148 (RELOAD_REG_PRE_INCDEC): Likewise.
2149 (RELOAD_REG_PRE_MODIFY): Likewise.
2150 (reg_addr): Likewise.
2151 (mode_supports_pre_incdec_p): New helper functions to say whether
2152 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
2153 (mode_supports_pre_modify_p): Likewise.
2154 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
2155 print the valid address mode bits for each mode.
2156 (rs6000_debug_print_mode): Likewise.
2157 (rs6000_debug_reg_global): Likewise.
2158 (rs6000_setup_reg_addr_masks): New function to set up the address
2159 mask bits for each type.
2160 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
2161 Call rs6000_setup_reg_addr_masks to set up the address mask bits.
2162 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
2163 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
2164 PRE_MODIFY are supported.
2165 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
2166 registers, instead of {src,dest}_av_p.
2167 (rs6000_print_options_internal): Tweak the debug output slightly.
2169 Backport from mainline
2170 2013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2172 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
2173 ceildf2, btruncdf2, instead of vsx_* name.
2175 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
2176 iterators to only do V2DF and V4SF here. Move the DF code to
2177 rs6000.md where it is combined with SF mode. Replace <VSv> with
2178 just 'v' since only vector operations are handled with these insns
2179 after moving the DF support to rs6000.md.
2180 (vsx_sub<mode>3): Likewise.
2181 (vsx_mul<mode>3): Likewise.
2182 (vsx_div<mode>3): Likewise.
2183 (vsx_fre<mode>2): Likewise.
2184 (vsx_neg<mode>2): Likewise.
2185 (vsx_abs<mode>2): Likewise.
2186 (vsx_nabs<mode>2): Likewise.
2187 (vsx_smax<mode>3): Likewise.
2188 (vsx_smin<mode>3): Likewise.
2189 (vsx_sqrt<mode>2): Likewise.
2190 (vsx_rsqrte<mode>2): Likewise.
2191 (vsx_fms<mode>4): Likewise.
2192 (vsx_nfma<mode>4): Likewise.
2193 (vsx_copysign<mode>3): Likewise.
2194 (vsx_btrunc<mode>2): Likewise.
2195 (vsx_floor<mode>2): Likewise.
2196 (vsx_ceil<mode>2): Likewise.
2197 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
2198 (vsx_sminsf3): Likewise.
2199 (vsx_fmadf4): Likewise.
2200 (vsx_fmsdf4): Likewise.
2201 (vsx_nfmadf4): Likewise.
2202 (vsx_nfmsdf4): Likewise.
2203 (vsx_cmpdf_internal1): Likewise.
2205 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
2206 simpler to select whether a target has SPE or traditional floating
2207 point support in iterators.
2208 (TARGET_DF_SPE): Likewise.
2209 (TARGET_SF_FPR): Likewise.
2210 (TARGET_DF_FPR): Likewise.
2211 (TARGET_SF_INSN): Macros to say whether floating point support
2212 exists for a given operation for expanders.
2213 (TARGET_DF_INSN): Likewise.
2215 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
2216 combining of SF/DF mode operations, using both traditional and VSX
2224 (abs<mode>2): Combine SF/DF modes using traditional floating point
2225 instructions. Add support for using the upper DF registers with
2226 VSX support, and SF registers with power8-vector support. Update
2227 expanders for operations supported by both the SPE and traditional
2228 floating point units.
2229 (abs<mode>2_fpr): Likewise.
2230 (nabs<mode>2): Likewise.
2231 (nabs<mode>2_fpr): Likewise.
2232 (neg<mode>2): Likewise.
2233 (neg<mode>2_fpr): Likewise.
2234 (add<mode>3): Likewise.
2235 (add<mode>3_fpr): Likewise.
2236 (sub<mode>3): Likewise.
2237 (sub<mode>3_fpr): Likewise.
2238 (mul<mode>3): Likewise.
2239 (mul<mode>3_fpr): Likewise.
2240 (div<mode>3): Likewise.
2241 (div<mode>3_fpr): Likewise.
2242 (sqrt<mode>3): Likewise.
2243 (sqrt<mode>3_fpr): Likewise.
2244 (fre<Fs>): Likewise.
2245 (rsqrt<mode>2): Likewise.
2246 (cmp<mode>_fpr): Likewise.
2247 (smax<mode>3): Likewise.
2248 (smin<mode>3): Likewise.
2249 (smax<mode>3_vsx): Likewise.
2250 (smin<mode>3_vsx): Likewise.
2251 (negsf2): Delete SF operations that are merged with DF.
2258 (fmasf4_fpr): Likewise.
2259 (fmssf4_fpr): Likewise.
2260 (nfmasf4_fpr): Likewise.
2261 (nfmssf4_fpr): Likewise.
2262 (sqrtsf2): Likewise.
2263 (rsqrtsf_internal1): Likewise.
2264 (smaxsf3): Likewise.
2265 (sminsf3): Likewise.
2266 (cmpsf_internal1): Likewise.
2267 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
2268 (negdf2): Delete DF operations that are merged with SF.
2270 (nabsdf2): Likewise.
2276 (rsqrtdf_internal1): Likewise.
2277 (fmadf4_fpr): Likewise.
2278 (fmsdf4_fpr): Likewise.
2279 (nfmadf4_fpr): Likewise.
2280 (nfmsdf4_fpr): Likewise.
2281 (sqrtdf2): Likewise.
2282 (smaxdf3): Likewise.
2283 (smindf3): Likewise.
2284 (cmpdf_internal1): Likewise.
2285 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
2286 (btrunc<mode>2): Delete separate expander, and combine with the
2287 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
2288 (btrunc<mode>2_fpr): Likewise.
2289 (ceil<mode>2): Likewise.
2290 (ceil<mode>2_fpr): Likewise.
2291 (floor<mode>2): Likewise.
2292 (floor<mode>2_fpr): Likewise.
2293 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
2294 Add support for using the upper registers with VSX and
2295 power8-vector. Move insns to be closer to the define_expands. On
2296 VSX systems, prefer the traditional form of FMA over the VSX
2297 version, since the traditional form allows the target not to
2298 overlap with the inputs.
2299 (fms<mode>4_fpr): Likewise.
2300 (nfma<mode>4_fpr): Likewise.
2301 (nfms<mode>4_fpr): Likewise.
2303 Backport from mainline
2304 2013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
2306 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
2307 DFmode, DImode, and SFmode in the upper VSX registers based on the
2308 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
2309 if -mpower8-vector. Combine -mvsx-timode handling with the rest
2310 of the VSX register handling.
2312 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
2314 (zero_extendsidi2_lfiwzx): Add support for loading into the
2315 Altivec registers with -mpower8-vector. Use wu/wv constraints to
2316 only do VSX memory options on Altivec registers.
2317 (extendsidi2_lfiwax): Likewise.
2318 (extendsfdf2_fpr): Likewise.
2319 (mov<mode>_hardfloat, SF/SD modes): Likewise.
2320 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
2321 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
2322 (movdi_internal64): Likewise.
2324 Backport from mainline
2325 2013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2327 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
2328 reload helper function arrays into a single array reg_addr.
2329 (reload_fpr_gpr): Likewise.
2330 (reload_gpr_vsx): Likewise.
2331 (reload_vsx_gpr): Likewise.
2332 (struct rs6000_reg_addr): Likewise.
2333 (reg_addr): Likewise.
2334 (rs6000_debug_reg_global): Change rs6000_vector_reload,
2335 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
2336 (rs6000_init_hard_regno_mode_ok): Likewise.
2337 (rs6000_secondary_reload_direct_move): Likewise.
2338 (rs6000_secondary_reload): Likewise.
2340 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
2341 constraints: wu, ww, and wy. Repurpose wv constraint added during
2342 power8 changes. Put wg constraint in alphabetical order.
2344 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
2345 for future work to add ISA 2.07 VSX single precision support.
2346 (-mvsx-scalar-double): Change default from -1 to 1, update
2347 documentation comment.
2348 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
2349 (-mupper-regs-df): New debug switch to control whether DF values
2350 can go in the traditional Altivec registers.
2351 (-mupper-regs-sf): New debug switch to control whether SF values
2352 can go in the traditional Altivec registers.
2354 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
2356 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
2357 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
2358 Add new constraints, wu/ww/wy. Repurpose wv constraint.
2359 (rs6000_debug_legitimate_address_p): Print if we are running
2360 before, during, or after reload.
2361 (rs6000_secondary_reload): Add a comment.
2362 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
2364 * config/rs6000/constraints.md (wa constraint): Sort w<x>
2365 constraints. Update documentation string.
2366 (wd constraint): Likewise.
2367 (wf constraint): Likewise.
2368 (wg constraint): Likewise.
2369 (wn constraint): Likewise.
2370 (ws constraint): Likewise.
2371 (wt constraint): Likewise.
2372 (wx constraint): Likewise.
2373 (wz constraint): Likewise.
2374 (wu constraint): New constraint for ISA 2.07 SFmode scalar
2376 (ww constraint): Likewise.
2377 (wy constraint): Likewise.
2378 (wv constraint): Repurpose ISA 2.07 constraint that did not use in
2379 the previous submissions.
2380 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
2382 Backport from mainline
2383 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
2386 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
2387 restrict TImode addresses to single indirect registers if both
2388 -mquad-memory and -mvsx-timode are used.
2389 (rs6000_output_move_128bit): Use quad_load_store_p to determine if
2390 we should emit load/store quad. Remove using %y for quad memory
2393 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
2394 constraints to allow load/store quad on machines where TImode is
2395 not allowed in VSX registers. Use 'n' instead of 'F' constraint
2396 for TImode to load integer constants.
2398 Backport from mainline
2399 2013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2402 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
2403 setting -mvsx-timode by default until the underlying problem is
2405 (RS6000_CPU, power7 defaults): Likewise.
2408 2013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
2411 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
2412 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
2414 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
2415 array instead of each individual operand as a separate argument.
2416 (emit_fusion_gpr_load): Likewise.
2417 (expand_fusion_gpr_load): Add new function declaration.
2419 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
2420 signature to have the operands passed as an array, instead of as
2421 separate arguments. Allow ZERO_EXTEND to be in the memory
2422 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
2423 depend on the register live/dead flags when peepholes are run.
2424 (expand_fusion_gpr_load): New function to be called from the
2425 peephole2 pass, to change the register that addis sets to be the
2427 (emit_fusion_gpr_load): Change the calling signature to have the
2428 operands passed as an array, instead of as separate arguments.
2429 Allow ZERO_EXTEND to be in the memory address, and also
2430 SIGN_EXTEND if -mpower8-fusion-sign.
2432 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
2434 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
2435 adjust the register addis loads up in the peephole2 pass. Do not
2436 depend on the register live/dead state when the peephole pass is
2440 2013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2442 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
2443 expanders to rs6000.md.
2444 (ior<mode>3): Likewise.
2445 (and<mode>3): Likewise.
2446 (one_cmpl<mode>2): Likewise.
2447 (nor<mode>3): Likewise.
2448 (andc<mode>3): Likewise.
2449 (eqv<mode>3): Likewise.
2450 (nand<mode>3): Likewise.
2451 (orc<mode>3): Likewise.
2453 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
2456 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
2457 to split multi-word logical operations.
2458 (rs6000_split_logical_di): Likewise.
2459 (rs6000_split_logical): Likewise.
2461 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
2462 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
2463 and allow TImode operations in 32-bit.
2464 (vsx_and<mode>3_64bit): Likewise.
2465 (vsx_ior<mode>3_32bit): Likewise.
2466 (vsx_ior<mode>3_64bit): Likewise.
2467 (vsx_xor<mode>3_32bit): Likewise.
2468 (vsx_xor<mode>3_64bit): Likewise.
2469 (vsx_one_cmpl<mode>2_32bit): Likewise.
2470 (vsx_one_cmpl<mode>2_64bit): Likewise.
2471 (vsx_nor<mode>3_32bit): Likewise.
2472 (vsx_nor<mode>3_64bit): Likewise.
2473 (vsx_andc<mode>3_32bit): Likewise.
2474 (vsx_andc<mode>3_64bit): Likewise.
2475 (vsx_eqv<mode>3_32bit): Likewise.
2476 (vsx_eqv<mode>3_64bit): Likewise.
2477 (vsx_nand<mode>3_32bit): Likewise.
2478 (vsx_nand<mode>3_64bit): Likewise.
2479 (vsx_orc<mode>3_32bit): Likewise.
2480 (vsx_orc<mode>3_64bit): Likewise.
2482 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
2483 logical types in GPRs.
2485 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
2486 logical insns to rs6000.md, and allow TImode operations in
2488 (altivec_ior<mode>3): Likewise.
2489 (altivec_xor<mode>3): Likewise.
2490 (altivec_one_cmpl<mode>2): Likewise.
2491 (altivec_nor<mode>3): Likewise.
2492 (altivec_andc<mode>3): Likewise.
2494 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
2495 attributes for moving the 128-bit logical operations into
2497 (BOOL_REGS_OUTPUT): Likewise.
2498 (BOOL_REGS_OP1): Likewise.
2499 (BOOL_REGS_OP2): Likewise.
2500 (BOOL_REGS_UNARY): Likewise.
2501 (BOOL_REGS_AND_CR0): Likewise.
2502 (one_cmpl<mode>2): Add support for DI logical operations on
2503 32-bit, splitting the operations to 32-bit.
2507 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
2508 changes to combine the 32/64-bit code, allow logical operations on
2509 TI mode in 32-bit, and to use similar match_operator patterns like
2510 scalar mode uses. Combine the Altivec and VSX code for logical
2511 operations, and move it here.
2512 (ior<mode>3, 128-bit types): Likewise.
2513 (xor<mode>3, 128-bit types): Likewise.
2514 (one_cmpl<mode>3, 128-bit types): Likewise.
2515 (nor<mode>3, 128-bit types): Likewise.
2516 (andc<mode>3, 128-bit types): Likewise.
2517 (eqv<mode>3, 128-bit types): Likewise.
2518 (nand<mode>3, 128-bit types): Likewise.
2519 (orc<mode>3, 128-bit types): Likewise.
2520 (and<mode>3_internal): Likewise.
2521 (bool<mode>3_internal): Likewise.
2522 (boolc<mode>3_internal1): Likewise.
2523 (boolc<mode>3_internal2): Likewise.
2524 (boolcc<mode>3_internal1): Likewise.
2525 (boolcc<mode>3_internal2): Likewise.
2526 (eqv<mode>3_internal1): Likewise.
2527 (eqv<mode>3_internal2): Likewise.
2528 (one_cmpl1<mode>3_internal): Likewise.
2530 Back port from mainline:
2531 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
2532 Pat Haugen <pthaugen@us.ibm.com>
2533 Peter Bergner <bergner@vnet.ibm.com>
2535 * lib/target-supports.exp (check_p8vector_hw_available) Add power8
2537 (check_effective_target_powerpc_p8vector_ok): Likewise.
2538 (is-effective-target): Likewise.
2539 (check_vect_support_and_set_flags): Likewise.
2541 Backport from mainline
2542 2013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
2544 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
2545 to support power8 load fusion.
2546 (fusion_gpr_mem_load): Likewise.
2548 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
2550 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
2551 declarations for power8 load fusion.
2552 (emit_fusion_gpr_load): Likewise.
2554 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
2555 tuning for power8, turn on fusion mode by default. Turn on sign
2556 extending fusion mode if normal fusion mode is on, and we are at
2558 (fusion_gpr_load_p): New function, return true if we can fuse an
2559 addis instruction with a dependent load to a GPR.
2560 (emit_fusion_gpr_load): Emit the instructions for power8 load
2563 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion
2565 (VSX load fusion peepholes): New peepholes to fuse together an
2566 addi instruction with a VSX load instruction.
2568 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
2569 peepholes to fuse an addis instruction with a load to a GPR base
2570 register. If we are supporting sign extending fusions, convert
2571 sign extending loads to zero extending loads and add an explicit
2574 Backport from mainline
2575 2013-07-18 Pat Haugen <pthaugen@us.ibm.com>
2577 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
2578 interaction for new Power8 flags and VSX.
2580 Back port from the trunk
2581 2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
2584 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
2585 to tie with any other modes. Eliminate Altivec vector mode tests,
2586 since these are a subset of ALTIVEC or VSX vector modes. Simplify
2587 code, to return 0 if testing MODE2 for a condition, if we've
2588 already tested MODE1 for the same condition.
2590 Backport from mainline
2591 2013-06-28 Pat Haugen <pthaugen@us.ibm.com>
2593 * config/rs6000/rs6000.md (define_insn ""): Fix insn type.
2595 Back port from the trunk
2596 2013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
2597 Pat Haugen <pthaugen@us.ibm.com>
2598 Peter Bergner <bergner@vnet.ibm.com>
2600 * config/rs6000/power8.md: New.
2601 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
2602 setting for power8 entry.
2603 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
2604 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
2605 test for Power4/Power5 only.
2606 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
2608 (force_new_group): Adjust comment.
2609 * config/rs6000/rs6000.md: Include power8.md.
2611 Back port from the trunk
2612 2013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
2615 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
2616 rs6000_output_move_128bit to handle emitting quad memory
2617 operations. Set attribute length to 8 bytes.
2619 Back port from the trunk
2620 2013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
2622 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2623 test for clearing quad memory on 32-bit later.
2625 Back port from the trunk
2627 2013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2628 Pat Haugen <pthaugen@us.ibm.com>
2629 Peter Bergner <bergner@vnet.ibm.com>
2631 * config/rs6000/rs6000.c (emit_load_locked): Add support for
2632 power8 byte, half-word, and quad-word atomic instructions.
2633 (emit_store_conditional): Likewise.
2634 (rs6000_expand_atomic_compare_and_swap): Likewise.
2635 (rs6000_expand_atomic_op): Likewise.
2637 * config/rs6000/sync.md (larx): Add new modes for power8.
2639 (AINT): New mode iterator to include TImode as well as normal
2640 integer modes on power8.
2641 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
2642 that VSX registers are not considered. Use AINT mode iterator
2643 instead of INT1 to allow inclusion of quad word atomic operations
2645 (load_locked<mode>): Likewise.
2646 (store_conditional<mode>): Likewise.
2647 (atomic_compare_and_swap<mode>): Likewise.
2648 (atomic_exchange<mode>): Likewise.
2649 (atomic_nand<mode>): Likewise.
2650 (atomic_fetch_<fetchop_name><mode>): Likewise.
2651 (atomic_nand_fetch<mode>): Likewise.
2652 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
2654 (ATOMIC): On power8, add QImode, HImode modes.
2655 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
2656 modes that promote to SImode.
2657 (load_lockedti): Convert TImode arguments to PTImode, so that we
2658 get a guaranteed even/odd register pair.
2659 (load_lockedpti): Likewise.
2660 (store_conditionalti): Likewise.
2661 (store_conditionalpti): Likewise.
2663 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
2664 atomic load/store instructions.
2667 Back port from the trunk
2669 2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2670 Pat Haugen <pthaugen@us.ibm.com>
2671 Peter Bergner <bergner@vnet.ibm.com>
2673 * config/rs6000/vector.md (GPR move splitter): Do not split moves
2674 of vectors in GPRS if they are direct moves or quad word load or
2677 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
2679 (direct_move_p): Likewise.
2680 (quad_load_store_p): Likewise.
2682 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
2683 classes into bins based on the physical register type.
2684 (reg_class_to_reg_type): Likewise.
2685 (IS_STD_REG_TYPE): Likewise.
2686 (IS_FP_VECT_REG_TYPE): Likewise.
2687 (reload_fpr_gpr): Arrays to determine what insn to use if we can
2688 use direct move instructions.
2689 (reload_gpr_vsx): Likewise.
2690 (reload_vsx_gpr): Likewise.
2691 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
2692 information that is a simplification of register classes. Also
2693 precalculate direct move reload helpers.
2694 (direct_move_p): New function to return true if the operation can
2695 be done as a direct move instruciton.
2696 (quad_load_store_p): New function to return true if the operation
2697 is a quad memory operation.
2698 (rs6000_legitimize_address): If quad memory, only allow register
2699 indirect for TImode addresses.
2700 (rs6000_legitimate_address_p): Likewise.
2701 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
2702 (rs6000_reload_register_type): Likewise.
2703 (register_to_reg_type): Return register type.
2704 (rs6000_secondary_reload_simple_move): New helper function for
2705 secondary reload and secondary memory needed to identify anything
2706 that is a simple move, and does not need reloading.
2707 (rs6000_secondary_reload_direct_move): New helper function for
2708 secondary reload to identify cases that can be done with several
2709 instructions via the direct move instructions.
2710 (rs6000_secondary_reload_move): New helper function for secondary
2711 reload to identify moves between register types that can be done.
2712 (rs6000_secondary_reload): Add support for quad memory operations
2713 and for direct move.
2714 (rs6000_secondary_memory_needed): Likewise.
2715 (rs6000_debug_secondary_memory_needed): Change argument names.
2716 (rs6000_output_move_128bit): New function to return the move to
2717 use for 128-bit moves, including knowing about the various
2718 limitations of quad memory operations.
2720 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
2721 memory operations. call rs6000_output_move_128bit for the actual
2722 instruciton(s) to generate.
2723 (vsx_movti_64bit): Likewise.
2725 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
2726 (UNSPEC_P8V_MTVSRWZ): Likewise.
2727 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
2728 (UNSPEC_P8V_MTVSRD): Likewise.
2729 (UNSPEC_P8V_XXPERMDI): Likewise.
2730 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
2731 (UNSPEC_FUSION_GPR): Likewise.
2732 (FMOVE128_GPR): New iterator for direct move.
2733 (f32_lv): New mode attribute for load/store of SFmode/SDmode
2737 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
2738 loads and direct move instructions.
2739 (zero_extendsidi2_lfiwzx): Likewise.
2740 (extendsidi2_lfiwax): Likewise.
2741 (extendsidi2_nocell): Likewise.
2742 (floatsi<mode>2_lfiwax): Likewise.
2744 (floatunssi<mode>2_lfiwzx): Likewise.
2746 (fix_trunc<mode>_stfiwx): Likewise.
2747 (fixuns_trunc<mode>_stfiwx): Likewise.
2748 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
2749 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
2750 (parity<mode>2_cmpb): Set length/type attr.
2751 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
2752 for 'mr.' to fast_compare.
2753 (bpermd_<mode>): Change type attr to popcnt.
2754 (p8_fmrgow_<mode>): New insns for power8 direct move support.
2755 (p8_mtvsrwz_1): Likewise.
2756 (p8_mtvsrwz_2): Likewise.
2757 (reload_fpr_from_gpr<mode>): Likewise.
2758 (p8_mtvsrd_1): Likewise.
2759 (p8_mtvsrd_2): Likewise.
2760 (p8_xxpermdi_<mode>): Likewise.
2761 (reload_vsx_from_gpr<mode>): Likewise.
2762 (reload_vsx_from_gprsf): Likewise.
2763 (p8_mfvsrd_3_<mode>): LIkewise.
2764 (reload_gpr_from_vsx<mode>): Likewise.
2765 (reload_gpr_from_vsxsf): Likewise.
2766 (p8_mfvsrd_4_disf): Likewise.
2767 (multi-word GPR splits): Do not split direct moves or quad memory
2770 Backport from the trunk
2772 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
2773 Pat Haugen <pthaugen@us.ibm.com>
2774 Peter Bergner <bergner@vnet.ibm.com>
2776 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
2777 Document new power8 builtins.
2779 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
2780 condition code register, to allow 128-bit logical operations to be
2781 done in the VSX or GPR registers.
2782 (nor<mode>3): Use the canonical form for nor.
2783 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
2784 vclz*, and vpopcnt* vector instructions.
2785 (nand<mode>3): Likewise.
2786 (orc<mode>3): Likewise.
2787 (clz<mode>2): LIkewise.
2788 (popcount<mode>2): Likewise.
2790 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
2791 that only the GPRs are recognized.
2793 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2794 support for new power8 builtins.
2796 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
2798 (xscvdpspn): Likewise.
2804 (vpopcnt): Likewise.
2805 (vpopcntb): Likewise.
2806 (vpopcnth): Likewise.
2807 (vpopcntw): Likewise.
2808 (vpopcntd): Likewise.
2813 (eqv_v16qi3): Likewise.
2814 (eqv_v8hi3): Likewise.
2815 (eqv_v4si3): Likewise.
2816 (eqv_v2di3): Likewise.
2817 (eqv_v4sf3): Likewise.
2818 (eqv_v2df3): Likewise.
2820 (nand_v16qi3): Likewise.
2821 (nand_v8hi3): Likewise.
2822 (nand_v4si3): Likewise.
2823 (nand_v2di3): Likewise.
2824 (nand_v4sf3): Likewise.
2825 (nand_v2df3): Likewise.
2827 (orc_v16qi3): Likewise.
2828 (orc_v8hi3): Likewise.
2829 (orc_v4si3): Likewise.
2830 (orc_v2di3): Likewise.
2831 (orc_v4sf3): Likewise.
2832 (orc_v2df3): Likewise.
2834 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
2835 allow power8 quad mode in 64-bit.
2836 (rs6000_builtin_vectorized_function): Add support to vectorize
2837 ISA 2.07 count leading zeros, population count builtins.
2838 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
2839 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
2840 (builtin_function_type): Add vgbbd builtin function which takes an
2842 (altivec_expand_vec_perm_const): Add support for new power8 merge
2845 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
2846 that does not include TImdoe for use with 32-bit.
2847 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
2849 (UNSPEC_VSX_CVDPSPN): Likewise.
2850 (vsx_xscvdpspn): Likewise.
2851 (vsx_xscvspdpn): Likewise.
2852 (vsx_xscvdpspn_scalar): Likewise.
2853 (vsx_xscvspdpn_directmove): Likewise.
2854 (vsx_and<mode>3): Split logical operations into 32-bit and
2855 64-bit. Add support to do logical operations on TImode as well as
2856 VSX vector types. Allow logical operations to be done in either
2857 VSX registers or in general purpose registers in 64-bit mode. Add
2858 splitters if GPRs were used. For AND, add clobber of CCmode to
2859 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
2861 (vsx_and<mode>3_32bit): Likewise.
2862 (vsx_and<mode>3_64bit): Likewise.
2863 (vsx_ior<mode>3): Likewise.
2864 (vsx_ior<mode>3_32bit): Likewise.
2865 (vsx_ior<mode>3_64bit): Likewise.
2866 (vsx_xor<mode>3): Likewise.
2867 (vsx_xor<mode>3_32bit): Likewise.
2868 (vsx_xor<mode>3_64bit): Likewise.
2869 (vsx_one_cmpl<mode>2): Likewise.
2870 (vsx_one_cmpl<mode>2_32bit): Likewise.
2871 (vsx_one_cmpl<mode>2_64bit): Likewise.
2872 (vsx_nor<mode>3): Likewise.
2873 (vsx_nor<mode>3_32bit): Likewise.
2874 (vsx_nor<mode>3_64bit): Likewise.
2875 (vsx_andc<mode>3): Likewise.
2876 (vsx_andc<mode>3_32bit): Likewise.
2877 (vsx_andc<mode>3_64bit): Likewise.
2878 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
2879 and xxlorc instructions.
2880 (vsx_eqv<mode>3_64bit): Likewise.
2881 (vsx_nand<mode>3_32bit): Likewise.
2882 (vsx_nand<mode>3_64bit): Likewise.
2883 (vsx_orc<mode>3_32bit): Likewise.
2884 (vsx_orc<mode>3_64bit): Likewise.
2886 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
2888 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
2890 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
2891 (p8_vmrgow): Likewise.
2892 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
2893 GPRs to be split under VSX.
2894 (p8v_clz<mode>2): Add power8 count leading zero support.
2895 (p8v_popcount<mode>2): Add power8 population count support.
2896 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
2899 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
2902 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
2904 (vec_nand): Likewise.
2905 (vec_vclz): Likewise.
2906 (vec_vclzb): Likewise.
2907 (vec_vclzd): Likewise.
2908 (vec_vclzh): Likewise.
2909 (vec_vclzw): Likewise.
2910 (vec_vgbbd): Likewise.
2911 (vec_vmrgew): Likewise.
2912 (vec_vmrgow): Likewise.
2913 (vec_vpopcnt): Likewise.
2914 (vec_vpopcntb): Likewise.
2915 (vec_vpopcntd): Likewise.
2916 (vec_vpopcnth): Likewise.
2917 (vec_vpopcntw): Likewise.
2921 2013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
2922 Pat Haugen <pthaugen@us.ibm.com>
2923 Peter Bergner <bergner@vnet.ibm.com>
2925 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
2929 (vrotl<mode>3): Likewise.
2930 (vashl<mode>3): Likewise.
2931 (vlshr<mode>3): Likewise.
2932 (vashr<mode>3): Likewise.
2934 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2935 support for power8 V2DI builtins.
2937 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
2938 power8 V2DI builtins.
2939 (vupkhsw): Likewise.
2940 (vupklsw): Likewise.
2941 (vaddudm): Likewise.
2946 (vpkudum): Likewise.
2947 (vpksdss): Likewise.
2948 (vpkudus): Likewise.
2949 (vpksdus): Likewise.
2954 (vsubudm): Likewise.
2955 (vcmpequd): Likewise.
2956 (vcmpgtsd): Likewise.
2957 (vcmpgtud): Likewise.
2958 (vcmpequd_p): Likewise.
2959 (vcmpgtsd_p): Likewise.
2960 (vcmpgtud_p): Likewise.
2961 (vupkhsw): Likewise.
2962 (vupklsw): Likewise.
2963 (vaddudm): Likewise.
2968 (vpksdss): Likewise.
2969 (vpksdus): Likewise.
2970 (vpkudum): Likewise.
2971 (vpkudus): Likewise.
2976 (vsubudm): Likewise.
2978 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2979 support for power8 V2DI instructions.
2981 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
2982 power8 V2DI instructions. Combine pack and unpack insns to use an
2983 iterator for each mode. Check whether a particular mode supports
2984 Altivec instructions instead of just checking TARGET_ALTIVEC.
2985 (UNSPEC_VPKUWUM): Likewise.
2986 (UNSPEC_VPKSHSS): Likewise.
2987 (UNSPEC_VPKSWSS): Likewise.
2988 (UNSPEC_VPKUHUS): Likewise.
2989 (UNSPEC_VPKSHUS): Likewise.
2990 (UNSPEC_VPKUWUS): Likewise.
2991 (UNSPEC_VPKSWUS): Likewise.
2992 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
2993 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
2994 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
2995 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
2996 (UNSPEC_VUPKHSB): Likewise.
2997 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
2998 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
2999 (UNSPEC_VUPKHSH): Likewise.
3000 (UNSPEC_VUPKLSB): Likewise.
3001 (UNSPEC_VUPKLSH): Likewise.
3003 (VI_char): Likewise.
3004 (VI_scalar): Likewise.
3005 (VI_unit): Likewise.
3007 (VP_small): Likewise.
3008 (VP_small_lc): Likewise.
3009 (VU_char): Likewise.
3010 (add<mode>3): Likewise.
3011 (altivec_vaddcuw): Likewise.
3012 (altivec_vaddu<VI_char>s): Likewise.
3013 (altivec_vadds<VI_char>s): Likewise.
3014 (sub<mode>3): Likewise.
3015 (altivec_vsubcuw): Likewise.
3016 (altivec_vsubu<VI_char>s): Likewise.
3017 (altivec_vsubs<VI_char>s): Likewise.
3018 (altivec_vavgs<VI_char>): Likewise.
3019 (altivec_vcmpbfp): Likewise.
3020 (altivec_eq<mode>): Likewise.
3021 (altivec_gt<mode>): Likewise.
3022 (altivec_gtu<mode>): Likewise.
3023 (umax<mode>3): Likewise.
3024 (smax<mode>3): Likewise.
3025 (umin<mode>3): Likewise.
3026 (smin<mode>3): Likewise.
3027 (altivec_vpkuhum): Likewise.
3028 (altivec_vpkuwum): Likewise.
3029 (altivec_vpkshss): Likewise.
3030 (altivec_vpkswss): Likewise.
3031 (altivec_vpkuhus): Likewise.
3032 (altivec_vpkshus): Likewise.
3033 (altivec_vpkuwus): Likewise.
3034 (altivec_vpkswus): Likewise.
3035 (altivec_vpks<VI_char>ss): Likewise.
3036 (altivec_vpks<VI_char>us): Likewise.
3037 (altivec_vpku<VI_char>us): Likewise.
3038 (altivec_vpku<VI_char>um): Likewise.
3039 (altivec_vrl<VI_char>): Likewise.
3040 (altivec_vsl<VI_char>): Likewise.
3041 (altivec_vsr<VI_char>): Likewise.
3042 (altivec_vsra<VI_char>): Likewise.
3043 (altivec_vsldoi_<mode>): Likewise.
3044 (altivec_vupkhsb): Likewise.
3045 (altivec_vupkhs<VU_char>): Likewise.
3046 (altivec_vupkls<VU_char>): Likewise.
3047 (altivec_vupkhsh): Likewise.
3048 (altivec_vupklsb): Likewise.
3049 (altivec_vupklsh): Likewise.
3050 (altivec_vcmpequ<VI_char>_p): Likewise.
3051 (altivec_vcmpgts<VI_char>_p): Likewise.
3052 (altivec_vcmpgtu<VI_char>_p): Likewise.
3053 (abs<mode>2): Likewise.
3054 (vec_unpacks_hi_v16qi): Likewise.
3055 (vec_unpacks_hi_v8hi): Likewise.
3056 (vec_unpacks_lo_v16qi): Likewise.
3057 (vec_unpacks_hi_<VP_small_lc>): Likewise.
3058 (vec_unpacks_lo_v8hi): Likewise.
3059 (vec_unpacks_lo_<VP_small_lc>): Likewise.
3060 (vec_pack_trunc_v8h): Likewise.
3061 (vec_pack_trunc_v4si): Likewise.
3062 (vec_pack_trunc_<mode>): Likewise.
3064 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
3066 (vec_vmaxsd): Likewise.
3067 (vec_vmaxud): Likewise.
3068 (vec_vminsd): Likewise.
3069 (vec_vminud): Likewise.
3070 (vec_vpksdss): Likewise.
3071 (vec_vpksdus): Likewise.
3072 (vec_vpkudum): Likewise.
3073 (vec_vpkudus): Likewise.
3074 (vec_vrld): Likewise.
3075 (vec_vsld): Likewise.
3076 (vec_vsrad): Likewise.
3077 (vec_vsrd): Likewise.
3078 (vec_vsubudm): Likewise.
3079 (vec_vupkhsw): Likewise.
3080 (vec_vupklsw): Likewise.
3082 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
3083 Pat Haugen <pthaugen@us.ibm.com>
3084 Peter Bergner <bergner@vnet.ibm.com>
3086 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
3087 documentation for the power8 crypto builtins.
3089 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
3091 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
3092 macros for defining power8 builtin functions.
3093 (BU_P8V_AV_2): Likewise.
3094 (BU_P8V_AV_P): Likewise.
3095 (BU_P8V_VSX_1): Likewise.
3096 (BU_P8V_OVERLOAD_1): Likewise.
3097 (BU_P8V_OVERLOAD_2): Likewise.
3098 (BU_CRYPTO_1): Likewise.
3099 (BU_CRYPTO_2): Likewise.
3100 (BU_CRYPTO_3): Likewise.
3101 (BU_CRYPTO_OVERLOAD_1): Likewise.
3102 (BU_CRYPTO_OVERLOAD_2): Likewise.
3103 (XSCVSPDP): Fix typo, point to the correct instruction.
3104 (VCIPHER): Add power8 crypto builtins.
3105 (VCIPHERLAST): Likewise.
3106 (VNCIPHER): Likewise.
3107 (VNCIPHERLAST): Likewise.
3108 (VPMSUMB): Likewise.
3109 (VPMSUMH): Likewise.
3110 (VPMSUMW): Likewise.
3111 (VPERMXOR_V2DI): Likewise.
3112 (VPERMXOR_V4SI: Likewise.
3113 (VPERMXOR_V8HI: Likewise.
3114 (VPERMXOR_V16QI: Likewise.
3115 (VSHASIGMAW): Likewise.
3116 (VSHASIGMAD): Likewise.
3118 (VPERMXOR): Likewise.
3119 (VSHASIGMA): Likewise.
3121 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3122 __CRYPTO__ if the crypto instructions are available.
3123 (altivec_overloaded_builtins): Add support for overloaded power8
3126 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
3127 support for power8 crypto builtins.
3128 (builtin_function_type): Likewise.
3129 (altivec_init_builtins): Add support for builtins that take vector
3130 long long (V2DI) arguments.
3132 * config/rs6000/crypto.md: New file, define power8 crypto
3135 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
3136 Pat Haugen <pthaugen@us.ibm.com>
3137 Peter Bergner <bergner@vnet.ibm.com>
3139 * doc/invoke.texi (Option Summary): Add power8 options.
3140 (RS/6000 and PowerPC Options): Likewise.
3142 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
3143 constraints.md instead of rs6000.h. Reorder w* constraints. Add
3144 wm, wn, wr documentation.
3146 * gcc/config/rs6000/constraints.md (wm): New constraint for VSX
3147 registers if direct move instructions are enabled.
3148 (wn): New constraint for no registers.
3149 (wq): New constraint for quad word even GPR registers.
3150 (wr): New constraint if 64-bit instructions are enabled.
3151 (wv): New constraint if power8 vector instructions are enabled.
3152 (wQ): New constraint for quad word memory locations.
3154 * gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
3155 constraint for 0..15 for crypto instructions.
3156 (gpc_reg_operand): If VSX allow registers in VSX registers as well
3157 as GPR and floating point registers.
3158 (int_reg_operand): New predicate to match only GPR registers.
3159 (base_reg_operand): New predicate to match base registers.
3160 (quad_int_reg_operand): New predicate to match even GPR registers
3161 for quad memory operations.
3162 (vsx_reg_or_cint_operand): New predicate to allow vector logical
3163 operations in both GPR and VSX registers.
3164 (quad_memory_operand): New predicate for quad memory operations.
3165 (reg_or_indexed_operand): New predicate for direct move support.
3167 * gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
3168 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
3169 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
3170 (POWERPC_MASKS): Add power8 options.
3171 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
3174 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
3175 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
3177 * gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
3178 (-mpower8-fusion): New power8 options.
3179 (-mpower8-fusion-sign): Likewise.
3180 (-mpower8-vector): Likewise.
3181 (-mcrypto): Likewise.
3182 (-mdirect-move): Likewise.
3183 (-mquad-memory): Likewise.
3185 * gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
3187 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
3189 (rs6000_debug_reg_print): Print the base register class if
3191 (rs6000_debug_vector_unit): Add p8_vector.
3192 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
3193 definitions. Also print fusion state.
3194 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
3195 (rs6000_builtin_mask_calculate): Add power8 builtin support.
3196 (rs6000_option_override_internal): Add support for power8.
3197 (rs6000_common_init_builtins): Add debugging for skipped builtins
3199 (rs6000_adjust_cost): Add power8 support.
3200 (rs6000_issue_rate): Likewise.
3201 (insn_must_be_first_in_group): Likewise.
3202 (insn_must_be_last_in_group): Likewise.
3203 (force_new_group): Likewise.
3204 (rs6000_register_move_cost): Likewise.
3205 (rs6000_opt_masks): Likewise.
3207 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
3208 power8 capable assembler, default to power7 options.
3209 (TARGET_DIRECT_MOVE): Likewise.
3210 (TARGET_CRYPTO): Likewise.
3211 (TARGET_P8_VECTOR): Likewise.
3212 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
3213 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
3214 (VECTOR_MEM_P8_VECTOR_P): Likewise.
3215 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
3216 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
3217 (TARGET_XSCVDPSPN): Likewise.
3218 (TARGET_XSCVSPDPN): Likewsie.
3219 (TARGET_SYNC_HI_QI): Likewise.
3220 (TARGET_SYNC_TI): Likewise.
3221 (MASK_CRYPTO): Likewise.
3222 (MASK_DIRECT_MOVE): Likewise.
3223 (MASK_P8_FUSION): Likewise.
3224 (MASK_P8_VECTOR): Likewise.
3225 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the
3226 TFmode temporary used by some of the direct move instructions to
3227 get two FP temporary registers does not force creation of a stack
3229 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
3230 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
3231 that any VSX registers are tieable, even if they are also an
3232 Altivec vector mode.
3233 (r6000_reg_class_enum): Add wm, wr, wv constraints.
3234 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
3235 (RS6000_BTM_CRYPTO): Likewise.
3236 (RS6000_BTM_COMMON): Likewise.
3238 * config/rs6000/rs6000.md (cpu attribute): Add power8.
3239 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
3240 (enum rs6000_vector): Add power8 vector support.
3243 Backport from mainline
3244 2013-03-20 Pat Haugen <pthaugen@us.ibm.com>
3246 * config/rs6000/predicates.md (indexed_address, update_address_mem
3247 update_indexed_address_mem): New predicates.
3248 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
3249 attribute for load/store instructions.
3250 * config/rs6000/dfp.md (movsd_store): Likewise.
3251 (movsd_load): Likewise.
3252 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
3253 (unnamed HI->DI extend define_insn): Likewise.
3254 (unnamed SI->DI extend define_insn): Likewise.
3255 (unnamed QI->SI extend define_insn): Likewise.
3256 (unnamed QI->HI extend define_insn): Likewise.
3257 (unnamed HI->SI extend define_insn): Likewise.
3258 (unnamed HI->SI extend define_insn): Likewise.
3259 (extendsfdf2_fpr): Likewise.
3260 (movsi_internal1): Likewise.
3261 (movsi_internal1_single): Likewise.
3262 (movhi_internal): Likewise.
3263 (movqi_internal): Likewise.
3264 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
3265 attribute for load/store instructions.
3266 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
3268 (mov<mode>_softfloat): Likewise.
3269 (mov<mode>_hardfloat32): Likewise.
3270 (mov<mode>_hardfloat64): Likewise.
3271 (mov<mode>_softfloat64): Likewise.
3272 (movdi_internal32): Likewise.
3273 (movdi_internal64): Likewise.
3274 (probe_stack_<mode>): Likewise.
3276 Backport from mainline
3277 2013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
3279 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
3280 floating point, and decimal floating point to reload iterator.
3282 * config/rs6000/constraints.md (wl constraint): New constraints to
3283 return FLOAT_REGS if certain options are used to reduce the number
3284 of separate patterns that exist in the file.
3285 (wx constraint): Likewise.
3286 (wz constraint): Likewise.
3288 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
3289 -mdebug=reg, print wg, wl, wx, and wz constraints.
3290 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
3291 Initialize the reload functions for 64-bit binary/decimal floating
3293 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
3294 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
3295 create the buffer on the stack to overcome not having a 32-bit
3297 (rs6000_emit_move): Likewise.
3298 (rs6000_secondary_memory_needed_rtx): Likewise.
3299 (rs6000_alloc_sdmode_stack_slot): Likewise.
3300 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
3301 via xxlxor, just like DFmode 0.0.
3303 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro)
3304 (define as 1 if we are running on a power7 or newer.
3305 (enum r6000_reg_class_enum): Add new constraints.
3307 * config/rs6000/dfp.md (movsd): Delete, combine with binary
3308 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
3309 with other moves by using conditional constraits (wg). Use LFIWZX
3310 and STFIWX for loading SDmode on power7. Use xxlxor to create
3312 (movsd splitter): Likewise.
3313 (movsd_hardfloat): Likewise.
3314 (movsd_softfloat): Likewise.
3316 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
3317 binary and decimal floating point moves.
3318 (fmove_ok): New attributes to combine binary and decimal floating
3319 point moves, and to combine power6x (mfpgpr) moves along normal
3321 (real_value_to_target): Likewise.
3328 (movsf): Combine binary and decimal floating point moves. Combine
3329 power6x (mfpgpr) moves with other moves by using conditional
3330 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on
3332 (mov<mode> for SFmode/SDmode); Likewise.
3333 (SFmode/SDmode splitters): Likewise.
3334 (movsf_hardfloat): Likewise.
3335 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
3336 (movsf_softfloat): Likewise.
3337 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
3339 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl)
3340 (wx and wz constraints.
3342 * config/rs6000/constraints.md (wg constraint): New constraint to
3343 return FLOAT_REGS if -mmfpgpr (power6x) was used.
3345 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
3348 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
3349 -mdebug=reg, print wg, wl, wx, and wz constraints.
3350 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
3351 Initialize the reload functions for 64-bit binary/decimal floating
3353 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
3354 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
3355 create the buffer on the stack to overcome not having a 32-bit
3357 (rs6000_emit_move): Likewise.
3358 (rs6000_secondary_memory_needed_rtx): Likewise.
3359 (rs6000_alloc_sdmode_stack_slot): Likewise.
3360 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
3361 via xxlxor, just like DFmode 0.0.
3364 * config/rs6000/dfp.md (movdd): Delete, combine with binary
3365 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
3366 with other moves by using conditional constraits (wg). Use LFIWZX
3367 and STFIWX for loading SDmode on power7.
3368 (movdd splitters): Likewise.
3369 (movdd_hardfloat32): Likewise.
3370 (movdd_softfloat32): Likewise.
3371 (movdd_hardfloat64_mfpgpr): Likewise.
3372 (movdd_hardfloat64): Likewise.
3373 (movdd_softfloat64): Likewise.
3375 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
3376 64-bit binary and decimal floating point moves.
3377 (FMOVE64X): Likewise.
3378 (movdf): Combine 64-bit binary and decimal floating point moves.
3379 Combine power6x (mfpgpr) moves with other moves by using
3380 conditional constraits (wg).
3381 (mov<mode> for DFmode/DDmode): Likewise.
3382 (DFmode/DDmode splitters): Likewise.
3383 (movdf_hardfloat32): Likewise.
3384 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
3385 (movdf_softfloat32): Likewise.
3386 (movdf_hardfloat64_mfpgpr): Likewise.
3387 (movdf_hardfloat64): Likewise.
3388 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
3389 (movdf_softfloat64): Likewise.
3390 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
3391 (reload_<mode>_load): Move to later in the file so they aren't in
3392 the middle of the floating point move insns.
3393 (reload_<mode>_store): Likewise.
3395 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
3398 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
3399 constraint if -mdebug=reg.
3400 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if
3401 -mfpgpr. Enable using dd reload support if needed.
3403 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
3404 binary and decimal floating point moves in rs6000.md.
3405 (movtd_internal): Likewise.
3407 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
3408 decimal floating point moves.
3410 (movtf_internal): Likewise.
3411 (mov<mode>_internal, TDmode/TFmode): Likewise.
3412 (movtf_softfloat): Likewise.
3413 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
3415 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
3416 movdi_internal64, using wg constraint for move direct operations.
3417 (movdi_internal64): Likewise.
3419 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
3420 MODES_TIEABLE_P for selected modes. Print the numerical value of
3421 the various virtual registers. Use GPR/FPR first/last values)
3422 (instead of hard coding the register numbers. Print which modes
3423 have reload functions registered.
3424 (rs6000_option_override_internal): If -mdebug=reg, trace the
3425 options settings before/after setting cpu, target and subtarget
3427 (rs6000_secondary_reload_trace): Improve the RTL dump for
3428 -mdebug=addr and for secondary reload failures in
3429 rs6000_secondary_reload_inner.
3430 (rs6000_secondary_reload_fail): Likewise.
3431 (rs6000_secondary_reload_inner): Likewise.
3433 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
3434 macros for first/last GPR and FPR registers.
3435 (LAST_GPR_REGNO): Likewise.
3436 (FIRST_FPR_REGNO): Likewise.
3437 (LAST_FPR_REGNO): Likewise.
3439 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
3440 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
3441 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
3442 (vcond<mode><mode>): Likewise.
3443 (vcondu<mode><mode>): Likewise.
3444 (vector_gtu<mode>): Likewise.
3445 (vector_gte<mode>): Likewise.
3446 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
3447 to prevent the compiler from converting DImode operations to
3449 (ior<mode>3): Likewise.
3450 (and<mode>3): Likewise.
3451 (one_cmpl<mode>2): Likewise.
3452 (nor<mode>3): Likewise.
3453 (andc<mode>3): Likewise.
3455 * config/rs6000/constraints.md (wt constraint): New constraint
3456 that returns VSX_REGS if TImode is allowed in VSX registers.
3458 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
3461 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
3462 similar to TImode, but it is restricted to being in the GPRs.
3464 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
3465 TImode to occupy a single VSX register.
3467 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
3468 -mvsx-timode for power7/power8.
3469 (power7 cpu): Likewise.
3470 (power8 cpu): Likewise.
3472 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
3473 sure that TFmode/TDmode take up two registers if they are ever
3474 allowed in the upper VSX registers.
3475 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
3477 (rs6000_init_hard_regno_mode_ok): Likewise.
3478 (rs6000_debug_reg_global): Add debugging for PTImode and wt
3479 constraint. Print if LRA is turned on.
3480 (rs6000_option_override_internal): Give an error if -mvsx-timode
3481 and VSX is not enabled.
3482 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
3483 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
3484 to reg+offset addressing. Use PTImode when checking offset
3485 addresses for validity.
3486 (reg_offset_addressing_ok_p): Likewise.
3487 (rs6000_legitimate_offset_address_p): Likewise.
3488 (rs6000_legitimize_address): Likewise.
3489 (rs6000_legitimize_reload_address): Likewise.
3490 (rs6000_legitimate_address_p): Likewise.
3491 (rs6000_eliminate_indexed_memrefs): Likewise.
3492 (rs6000_emit_move): Likewise.
3493 (rs6000_secondary_reload): Likewise.
3494 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
3495 reloads to fpr registers to continue to use reg+offset addressing)
3496 (but 64-bit reloads to altivec registers need reg+reg addressing.
3497 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
3498 it. Treat LO_SUM like a PLUS operation.
3499 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
3500 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset
3502 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
3503 registers to share a register with a smaller sized type, since VSX
3504 puts scalars in the upper 64-bits.
3505 (print_operand): Add support for PTImode.
3506 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
3507 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
3508 registers, but don't have arithmetic support.
3509 (rs6000_memory_move_cost): Add test for VSX.
3510 (rs6000_opt_masks): Add -mvsx-timode.
3512 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
3515 (VSr): Use wt constraint for TImode.
3516 (VSv): Drop TImode support.
3517 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
3518 (vsx_movti_64bit): Likewise.
3519 (vsx_movti_32bit): Likewise.
3520 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
3521 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
3522 one '?' on the appropriate output constraint. Do not allow TImode
3523 logical operations on 32-bit systems.
3524 (vsx_ior<mode>3): Likewise.
3525 (vsx_xor<mode>3): Likewise.
3526 (vsx_one_cmpl<mode>2): Likewise.
3527 (vsx_nor<mode>3): Likewise.
3528 (vsx_andc<mode>3): Likewise.
3529 (vsx_concat_<mode>): Likewise.
3530 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
3532 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
3533 OPTION_MASK_VSX_TIMODE.
3534 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
3535 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
3537 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
3538 (TI2 iterator): New iterator for TImode, PTImode.
3539 (wd mode attribute): Add values for vector types.
3540 (movti_string): Replace TI move operations with operations for
3541 TImode and PTImode. Add support for TImode being allowed in VSX
3543 (mov<mode>_string, TImode/PTImode): Likewise.
3544 (movti_ppc64): Likewise.
3545 (mov<mode>_ppc64, TImode/PTImode): Likewise.
3546 (TI mode splitters): Likewise.
3548 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
3551 2014-04-04 Richard Biener <rguenther@suse.de>
3553 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
3555 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3557 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
3559 2014-04-01 Richard Biener <rguenther@suse.de>
3561 * gimple.h (struct gimple_statement_base): Align subcode to
3564 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
3566 * doc/invoke.texi (mapp-regs): Clarify.
3568 2014-03-31 H.J. Lu <hongjiu.lu@intel.com>
3570 PR rtl-optimization/60700
3571 Backport from mainline
3572 2013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3574 PR rtl-optimization/57637
3575 * function.c (move_insn_for_shrink_wrap): Also check the
3576 GEN set of the LIVE problem for the liveness analysis
3577 if it exists, otherwise give up.
3579 2014-03-30 Kaz Kojima <kkojima@gcc.gnu.org>
3581 Backport from mainline
3582 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
3585 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
3587 2014-03-26 Martin Jambor <mjambor@suse.cz>
3590 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk and
3591 alias flags of nodes in the border.
3593 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
3595 PR rtl-optimization/60452
3596 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
3597 <case REG>: Return 1 for invalid offsets from the frame pointer.
3599 2014-03-24 Richard Biener <rguenther@suse.de>
3601 PR tree-optimization/60429
3602 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Remove
3605 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
3607 PR rtl-optimization/60601
3608 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
3610 * gcc.c (eval_spec_function): Initialize save_growing_value.
3612 2014-03-20 Jakub Jelinek <jakub@redhat.com>
3615 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
3616 into CONST, put pic register as first operand of PLUS. Use
3617 gen_const_mem for both 32-bit and 64-bit PIC got loads.
3619 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
3621 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
3622 around for store forwarding issue in the FPU on the UT699.
3623 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
3624 loads and operations if -mfix-ut699 is specified.
3625 (divtf3_hq): Tweak attribute.
3626 (sqrttf2_hq): Likewise.
3628 2014-03-18 Kai Tietz <ktietz@redhat.com>
3630 PR rtl-optimization/56356
3631 * sdbout.c (sdbout_parms): Verify that parms'
3632 incoming argument is valid.
3633 (sdbout_reg_parms): Likewise.
3635 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
3637 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
3638 proper constant for the store mode.
3640 2014-03-17 Mikael Pettersson <mikpelinux@gmail.com>
3641 Committed by Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3643 Backport from mainline:
3645 2013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
3647 PR rtl-optimization/57425
3648 PR rtl-optimization/57569
3649 * alias.c (write_dependence_p): Remove parameters mem_mode and
3650 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
3651 Changed all callers.
3652 (canon_anti_dependence): Get comments and semantics in sync.
3653 Add parameter mem_canonicalized. Changed all callers.
3654 * rtl.h (canon_anti_dependence): Update prototype.
3656 2013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
3658 PR rtl-optimization/57425
3659 PR rtl-optimization/57569
3660 * alias.c (write_dependence_p): Add new parameters mem_mode,
3661 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
3662 Changed all callers.
3663 (canon_anti_dependence): New function.
3664 * cse.c (check_dependence): Use canon_anti_dependence.
3665 * cselib.c (cselib_invalidate_mem): Likewise.
3666 * rtl.h (canon_anti_dependence): Declare.
3668 2014-03-17 Richard Biener <rguenther@suse.de>
3670 Backport from mainline
3671 2014-03-11 Richard Biener <rguenther@suse.de>
3673 PR tree-optimization/60429
3674 PR tree-optimization/60485
3675 * tree-ssa-structalias.c (set_union_with_increment): Properly
3676 take into account all fields that overlap the shifted vars.
3677 (do_sd_constraint): Likewise.
3678 (do_ds_constraint): Likewise.
3679 (get_constraint_for_ptr_offset): Likewise.
3681 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
3683 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
3684 (eligible_for_call_delay): New prototype.
3685 * config/sparc/sparc.c (tls_call_delay): Rename into...
3686 (eligible_for_call_delay): ...this. Return false if the instruction
3687 cannot be put in the delay slot of a branch.
3688 (eligible_for_restore_insn): Simplify.
3689 (eligible_for_return_delay): Return false if the instruction cannot be
3690 put in the delay slot of a branch and simplify.
3691 (eligible_for_sibcall_delay): Return false if the instruction cannot be
3692 put in the delay slot of a branch.
3693 * config/sparc/sparc.md (fix_ut699): New attribute.
3694 (tls_call_delay): Delete.
3695 (in_call_delay): Reimplement.
3696 (eligible_for_sibcall_delay): Rename into...
3697 (in_sibcall_delay): ...this.
3698 (eligible_for_return_delay): Rename into...
3699 (in_return_delay): ...this.
3700 (in_branch_delay): Reimplement.
3701 (in_uncond_branch_delay): Delete.
3702 (in_annul_branch_delay): Delete.
3704 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
3706 Backport from 2014-03-14 trunk r208562.
3709 * config/avr/avr.c (avr_set_current_function): Pass function name
3710 through default_strip_name_encoding before sanity checking instead
3711 of skipping the first char of the assembler name.
3713 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
3715 Backport from 2014-03-13 trunk r208532.
3718 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
3719 calls of avr_out_plus_1.
3721 2014-03-13 Joey Ye <joey.ye@arm.com>
3723 Backport from mainline
3724 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
3726 PR tree-optimization/60454
3727 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
3729 2014-03-06 Matthias Klose <doko@ubuntu.com>
3731 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
3732 MULTILIB_OSDIRNAMES is not defined.
3734 2014-03-06 Jakub Jelinek <jakub@redhat.com>
3736 PR tree-optimization/60276
3737 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Avoid
3738 a -Wsign-compare warning.
3740 * Makefile.in (tree-ssa-uninit.o): Depend on $(PARAMS_H).
3742 Backport from mainline
3743 2014-02-21 Jakub Jelinek <jakub@redhat.com>
3745 PR tree-optimization/56490
3746 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
3747 * tree-ssa-uninit.c: Include params.h.
3748 (compute_control_dep_chain): Add num_calls argument, return false
3749 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
3750 num_calls to recursive call.
3751 (find_predicates): Change dep_chain into normal array, add num_calls
3752 variable and adjust compute_control_dep_chain caller.
3753 (find_def_preds): Likewise.
3755 2014-02-13 Jakub Jelinek <jakub@redhat.com>
3758 * expr.c (compress_float_constant): If x is a hard register,
3759 extend into a pseudo and then move to x.
3761 2014-02-11 Richard Henderson <rth@redhat.com>
3762 Jakub Jelinek <jakub@redhat.com>
3765 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
3766 around drhs if type conversion to lacc->type is not useless.
3768 2014-02-08 Jakub Jelinek <jakub@redhat.com>
3771 * ipa-cp.c (determine_versionability): Fail at -O0
3772 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
3773 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
3775 2014-02-06 Jakub Jelinek <jakub@redhat.com>
3778 * tree.h (opts_for_fn): New inline function.
3779 (opt_for_fn): Define.
3780 * config/i386/i386.c (ix86_function_regparm): Use
3781 opt_for_fn (decl, optimize) instead of optimize.
3783 2014-02-05 Jakub Jelinek <jakub@redhat.com>
3786 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
3787 bb with no successors.
3789 2014-03-04 Richard Biener <rguenther@suse.de>
3791 PR tree-optimization/60382
3792 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
3793 dead PHIs a reduction.
3795 2014-02-25 Richard Biener <rguenther@suse.de>
3797 Backport from mainline
3798 2014-02-21 Richard Biener <rguenther@suse.de>
3800 PR tree-optimization/60276
3801 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
3802 (STMT_VINFO_MIN_NEG_DIST): New macro.
3803 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
3804 STMT_VINFO_MIN_NEG_DIST.
3805 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
3806 made for negative dependence distances still hold.
3808 2014-02-25 Richard Biener <rguenther@suse.de>
3810 Backport from mainline
3811 2014-02-21 Richard Biener <rguenther@suse.de>
3814 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
3815 DECL_INITIAL for globals not in the current function context.
3817 2014-02-20 Richard Biener <rguenther@suse.de>
3820 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
3823 2014-02-14 Richard Biener <rguenther@suse.de>
3825 PR tree-optimization/60183
3826 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating
3828 (tree_ssa_phiprop): Calculate and free post-dominators.
3830 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3833 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
3836 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
3838 * config/pa/pa.c (pa_output_move_double): Don't valididate when
3839 adjusting offsetable addresses.
3841 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
3843 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg names
3845 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
3847 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
3850 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
3852 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk
3853 and define TARGET_ASM_OUTPUT_MI_THUNK and
3854 TARGET_ASM_CAN_OUTPUT_MI_THUNK.
3856 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
3858 * config/microblaze/predicates.md: Add cmp_op predicate.
3859 * config/microblaze/microblaze.md: Add branch_compare instruction
3860 which uses cmp_op predicate and emits cmp insn before branch.
3861 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
3862 to microblaze_expand_conditional_branch and consolidate logic.
3863 (microblaze_expand_conditional_branch): emit branch_compare
3864 insn instead of handling cmp op separate from branch insn.
3866 2014-02-21 Martin Jambor <mjambor@suse.cz>
3869 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
3870 info when checking whether lattices are bottom.
3872 2014-02-21 Jakub Jelinek <jakub@redhat.com>
3874 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
3875 mode for mask of V8SFmode permutation.
3877 2014-02-20 Richard Henderson <rth@redhat.com>
3880 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
3881 on failure the store back into EXPECT. Always make a new pseudo for
3884 2014-02-20 Jakub Jelinek <jakub@redhat.com>
3887 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
3888 gen_reg_rtx if d->testing_p.
3889 (expand_vec_perm_pshufb2, expand_vec_perm_even_odd_1,
3890 expand_vec_perm_broadcast_1): Return early if d->testing_p and
3891 we will certainly return true.
3893 2014-02-20 Richard Biener <rguenther@suse.de>
3895 * tree-cfg.c (replace_uses_by): Mark altered BBs before
3896 doing the substitution.
3898 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
3900 Backport from mainline
3901 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
3904 * config/i386/i386.c (construct_container): Remove TFmode check
3905 for X86_64_INTEGER_CLASS.
3907 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
3909 Backport from mainline
3910 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
3913 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
3914 only when -Wpsabi is enabled.
3916 2014-02-19 Terry Guo <terry.guo@arm.com>
3918 Backport from mainline
3919 2014-02-08 Terry Guo <terry.guo@arm.com>
3921 * doc/invoke.texi: Document ARM -march=armv7e-m.
3923 2014-02-18 Kai Tietz <ktietz@redhat.com>
3925 Backport from mainline
3926 2014-02-18 Kai Tietz <ktietz@redhat.com>
3929 * config/i386/i386.c (ix86_expand_prologue): Use
3930 rax register as displacement for restoring %r10, %rax.
3931 Additional fix wrong offset for restoring both-registers.
3933 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
3935 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
3936 assertion with conditional return.
3938 2014-02-18 Jakub Jelinek <jakub@redhat.com>
3939 Uros Bizjak <ubizjak@gmail.com>
3942 * config/i386/driver-i386.c (host_detect_local_cpu): If
3943 YMM state is not saved by the OS, also clear has_f16c. Move
3944 CPUID 0x80000001 handling before YMM state saving checking.
3946 2014-02-14 Roland McGrath <mcgrathr@google.com>
3948 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
3949 * configure: Regenerated.
3950 * config.in: Regenerated.
3951 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
3952 instead of ASM_SHORT.
3954 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
3956 Backport from mainline
3957 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
3959 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
3960 operands[2], not operands[3].
3962 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
3964 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
3965 caused by bad second argument to warning_at() with -mhotpatch and
3966 nested functions (e.g. with gfortran).
3968 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
3970 Backport from mainline
3971 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
3972 Uros Bizjak <ubizjak@gmail.com>
3975 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
3977 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
3979 PR rtl-optimization/60116
3980 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
3981 other_insn once the combination has been validated.
3983 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
3985 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
3986 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
3988 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
3990 * config/microblaze/microblaze.c: Extend mcpu version format
3992 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
3994 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
3996 2014-02-10 Richard Biener <rguenther@suse.de>
3998 Backport from mainline
3999 2014-01-30 Richard Biener <rguenther@suse.de>
4001 PR tree-optimization/59903
4002 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
4005 2014-02-10 Richard Biener <rguenther@suse.de>
4007 PR tree-optimization/60115
4008 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
4009 MEM_REF handling. Properly verify that the accesses are not
4010 out of the objects bound.
4012 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
4014 Backport from mainline.
4015 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
4018 * doc/invoke.texi (-march): Clarify documentation for ARM.
4022 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
4025 * config/pa/pa.c (legitimize_tls_address): Return original address
4026 if not passed a SYMBOL_REF rtx.
4027 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
4029 (pa_emit_move_sequence): Simplify TLS source operands.
4030 (pa_legitimate_constant_p): Reject all TLS constants.
4031 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
4032 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
4034 2014-02-04 Uros Bizjak <ubizjak@gmail.com>
4036 Backport from mainline
4037 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
4040 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
4041 when calculating size of integer atomic types.
4043 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
4045 Backport from mainline
4046 2014-01-30 Jakub Jelinek <jakub@redhat.com>
4048 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
4050 2014-01-31 Richard Henderson <rth@redhat.com>
4053 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
4054 until after else_eh is processed.
4056 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
4058 Backport from mainline
4059 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
4060 comparison_operator with ordered_comparison_operator.
4062 2014-01-25 Walter Lee <walt@tilera.com>
4064 Backport from mainline
4065 2014-01-25 Walter Lee <walt@tilera.com>
4067 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
4068 avoid clobbering a live register.
4070 2014-01-25 Walter Lee <walt@tilera.com>
4072 Backport from mainline
4073 2014-01-25 Walter Lee <walt@tilera.com>
4075 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
4076 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
4077 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
4078 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
4080 2014-01-25 Walter Lee <walt@tilera.com>
4082 Backport from mainline
4083 2014-01-25 Walter Lee <walt@tilera.com>
4085 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
4086 insns before bundling.
4087 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
4089 2014-01-25 Walter Lee <walt@tilera.com>
4091 Backport from mainline
4092 2014-01-25 Walter Lee <walt@tilera.com>
4094 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
4095 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
4096 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
4098 2014-01-25 Walter Lee <walt@tilera.com>
4100 Backport from mainline
4101 2014-01-25 Walter Lee <walt@tilera.com>
4103 * config/tilepro/tilepro.md (ctzdi2): Use register_operand
4108 2014-01-25 Walter Lee <walt@tilera.com>
4110 Backport from mainline
4111 2014-01-25 Walter Lee <walt@tilera.com>
4113 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
4114 (TARGET_EXPAND_TO_RTL_HOOK): Define.
4116 2014-01-24 H.J. Lu <hongjiu.lu@intel.com>
4118 Backport from mainline
4119 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
4122 * config/i386/i386.md (pushsf splitter): Get stack adjustment
4123 from push operand if code of push isn't PRE_DEC.
4125 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
4127 Backport from mainline.
4128 * config/microblaze/microblaze.md: Add trap insn and attribute
4130 2014-01-23 Marek Polacek <polacek@redhat.com>
4132 Backport from mainline
4133 2013-10-21 Marek Polacek <polacek@redhat.com>
4136 * fold-const.c (fold_range_test): Return 0 if the type is not
4139 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
4141 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
4143 2014-01-22 Uros Bizjak <ubizjak@gmail.com>
4145 Backport from mainline
4146 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
4148 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
4149 for SImode_address_operand operands, having only a REG argument.
4151 2014-01-20 Jakub Jelinek <jakub@redhat.com>
4154 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
4155 if operands[1] is a REG or ZERO_EXTEND of a REG.
4157 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
4158 H.J. Lu <hongjiu.lu@intel.com>
4161 * config/i386/i386.md (*lea<mode>): Zero-extend return register
4162 to DImode for zero-extended addresses.
4164 2014-01-21 Andrew Pinski <apinski@cavium.com>
4165 Steve Ellcey <sellcey@mips.com>
4168 * config/mips/mips.c (mips_print_operand): Check operand mode instead
4171 2014-01-21 Andrey Belevantsev <abel@ispras.ru>
4173 Backport from mainline
4174 2013-12-23 Andrey Belevantsev <abel@ispras.ru>
4176 PR rtl-optimization/57422
4177 * sel-sched.c (mark_unavailable_hard_regs): Fix typo when calling
4178 add_to_hard_reg_set.
4180 2014-01-20 Jakub Jelinek <jakub@redhat.com>
4183 * tree.h (fold_builtin_strcat): New prototype.
4184 * builtins.c (fold_builtin_strcat): No longer static. Add len
4185 argument, if non-NULL, don't call c_strlen. Optimize
4186 directly into __builtin_memcpy instead of __builtin_strcpy.
4187 (fold_builtin_2): Adjust fold_builtin_strcat caller.
4188 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
4190 2014-01-20 Richard Biener <rguenther@suse.de>
4193 * builtins.c (fold_builtin_strcat): Remove case better handled
4194 by tree-ssa-strlen.c.
4196 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
4198 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
4199 long non-pic millicode calls.
4201 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
4203 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
4204 call to $$dyncall when TARGET_LONG_CALLS is true.
4206 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
4208 Backport from mainline
4209 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
4212 * config/i386/i386.c (type_natural_mode): Add a bool parameter
4213 to indicate if type is used for function return value. Warn
4214 ABI change if the vector mode isn't available for function
4216 (ix86_function_arg_advance): Pass false to type_natural_mode.
4217 (ix86_function_arg): Likewise.
4218 (ix86_gimplify_va_arg): Likewise.
4219 (function_arg_32): Don't warn ABI change.
4220 (ix86_function_value): Pass true to type_natural_mode.
4221 (ix86_return_in_memory): Likewise.
4222 (ix86_struct_value_rtx): Removed.
4223 (TARGET_STRUCT_VALUE_RTX): Likewise.
4225 2014-01-17 Charles Baylis <charles.baylis@linaro.org>
4227 Backport from mainline
4228 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
4231 * config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb
4233 * config/arm/ldmstm.md: Regenerate.
4235 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
4238 * config/arm/predicates.md (arm_hard_general_register_operand):
4240 (arm_hard_register_operand): Remove.
4241 * config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand
4243 * config/arm/ldmstm.md: Regenerate.
4245 2013-12-19 Charles Baylis <charles.baylis@linaro.org>
4248 * config/arm/predicates.md (vfp_hard_register_operand): New predicate.
4249 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use
4250 vfp_hard_register_operand.
4252 2014-01-17 Kugan Vivekanandarajah <kuganv@linaro.org>
4254 Backport from mainline
4255 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4256 Kugan Vivekanandarajah <kuganv@linaro.org>
4259 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
4262 2014-01-17 Terry Guo <terry.guo@arm.com>
4265 * config/arm/arm.md (prefetch): Set insn type attribute to load1.
4267 2014-01-16 Jakub Jelinek <jakub@redhat.com>
4270 * config/i386/i386.c (ix86_expand_builtin): If target doesn't
4271 satisfy operand 0 predicate for gathers, use a new pseudo as
4274 2014-01-16 Richard Henderson <rth@redhat.com>
4277 * reginfo.c (global_regs_decl): Globalize.
4278 * rtl.h (global_regs_decl): Declare.
4279 * ira.c (do_reload): Diagnose frame_pointer_needed and it
4280 reserved via global_regs.
4282 2014-01-16 Peter Bergner <bergner@vnet.ibm.com>
4284 Backport from mainline
4285 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
4287 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
4288 VALID_AVX256_REG_OR_OI_MODE.
4290 2013-09-05 Peter Bergner <bergner@vnet.ibm.com>
4293 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
4294 looking for widest mode.
4296 2014-01-16 Marek Polacek <polacek@redhat.com>
4298 Backported from mainline
4299 2014-01-16 Marek Polacek <polacek@redhat.com>
4302 * gimple-low.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
4303 it is error_mark_node.
4305 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4308 * config/s390/s390.c (s390_preferred_reload_class): Don't return
4309 ADDR_REGS for invalid symrefs in non-PIC code.
4311 2014-01-14 Uros Bizjak <ubizjak@gmail.com>
4314 2014-01-08 Uros Bizjak <ubizjak@gmail.com>
4316 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
4317 from prefetch_block tune setting.
4319 2014-01-13 Jakub Jelinek <jakub@redhat.com>
4321 Backported from mainline
4322 2014-01-10 Jakub Jelinek <jakub@redhat.com>
4324 PR tree-optimization/59745
4325 * tree-predcom.c (tree_predictive_commoning_loop): Call
4326 free_affine_expand_cache if giving up because components is NULL.
4328 2014-01-10 Yufeng Zhang <yufeng.zhang@arm.com>
4330 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
4331 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
4332 rtx is const0_rtx or not.
4334 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4336 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
4337 extraction in good case.
4339 2014-01-10 Huacai Chen <chenhc@lemote.com>
4341 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
4342 kernel strings for Loongson-2E/2F/3A.
4344 2014-01-10 Richard Biener <rguenther@suse.de>
4346 PR tree-optimization/59715
4347 * tree-flow.h (split_critical_edges): Declare.
4348 * tree-cfg.c (split_critical_edges): Export.
4349 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
4351 2014-01-09 Richard Sandiford <rdsandiford@googlemail.com>
4353 * config/mips/mips.h (ISA_HAS_WSBH): Define.
4354 * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
4356 (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.
4358 2014-01-09 Richard Sandiford <rdsandiford@googlemail.com>
4360 PR rtl-optimization/59137
4361 * reorg.c (steal_delay_list_from_target): Call update_block for
4363 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
4365 2014-01-09 Richard Sandiford <rdsandiford@googlemail.com>
4368 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
4370 * config/mips/mips.c (mips_truncated_op_cost): New function.
4371 (mips_rtx_costs): Adjust test for BADDU.
4372 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
4374 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
4376 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
4377 (*baddu_si): ...this new pattern.
4379 2014-01-09 Richard Biener <rguenther@suse.de>
4381 Backport from mainline
4382 2013-11-18 Richard Biener <rguenther@suse.de>
4384 PR tree-optimization/59125
4385 PR tree-optimization/54570
4386 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining
4387 is not complete do not treat component-references with offset zero
4388 but different fields as equal.
4389 * tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h.
4390 (compute_object_sizes): Apply TLC. Propagate the constant
4391 results into all uses and fold their stmts.
4392 * passes.def (pass_all_optimizations): Move pass_object_sizes
4393 after the first pass_forwprop and before pass_fre.
4395 2013-12-03 Jakub Jelinek <jakub@redhat.com>
4397 PR tree-optimization/59362
4398 * tree-object-size.c (object_sizes): Change into array of
4399 vec<unsigned HOST_WIDE_INT>.
4400 (compute_builtin_object_size): Check computed bitmap for
4401 non-NULL instead of object_sizes. Call safe_grow on object_sizes
4402 vector if new SSA_NAMEs appeared.
4403 (init_object_sizes): Check computed bitmap for non-NULL.
4404 Call safe_grow on object_sizes elements instead of initializing
4406 (fini_object_sizes): Call release on object_sizes elements, don't
4409 2014-01-09 Richard Earnshaw <rearnsha@arm.com>
4411 PR rtl-optimization/54300
4412 * regcprop.c (copyprop_hardreg_forward_1): Ensure any unused
4413 outputs in a single-set are killed from the value chains.
4415 2014-01-09 Jakub Jelinek <jakub@redhat.com>
4417 PR rtl-optimization/59724
4418 * ifcvt.c (cond_exec_process_if_block): Don't call
4419 flow_find_head_matching_sequence with 0 longest_match.
4420 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
4421 non-active insns if !stop_after.
4422 (try_head_merge_bb): Revert 2014-01-07 changes.
4424 2014-01-09 Hans-Peter Nilsson <hp@axis.com>
4426 Backport from mainline
4427 2013-12-23 Hans-Peter Nilsson <hp@axis.com>
4430 * config/cris/predicates.md (cris_nonsp_register_operand):
4431 New define_predicate.
4432 * config/cris/cris.md: Replace register_operand with
4433 cris_nonsp_register_operand for destinations in all
4434 define_splits where a register is set more than once.
4436 2014-01-08 H.J. Lu <hongjiu.lu@intel.com>
4438 Backport from mainline
4439 2013-12-25 H.J. Lu <hongjiu.lu@intel.com>
4442 * config/i386/i386.c (struct ptt): Add a field for processor name.
4443 (processor_target_table): Sync with processor_type. Add
4445 (cpu_names): Removed.
4446 (ix86_option_override_internal): Default x_ix86_tune_string
4447 to processor_target_table[TARGET_CPU_DEFAULT].name.
4448 (ix86_function_specific_print): Assert arch and tune <
4449 PROCESSOR_max. Use processor_target_table to print arch and
4451 * config/i386/i386.h (TARGET_CPU_DEFAULT): Default to
4452 PROCESSOR_GENERIC32.
4453 (target_cpu_default): Removed.
4454 (processor_type): Reordered.
4456 2014-01-08 Uros Bizjak <ubizjak@gmail.com>
4458 Backport from mainline
4459 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
4461 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
4462 from prefetch_block tune setting.
4463 (nocona_cost): Correct size of prefetch block to 64.
4465 2014-01-08 Martin Jambor <mjambor@suse.cz>
4468 * ipa-prop.c (ipa_compute_jump_functions): Bail out if not optimizing.
4469 (parm_preserved_before_stmt_p): Assume modification present when not
4472 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
4475 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
4476 for 14-bit register offsets when INT14_OK_STRICT is false.
4478 2014-01-07 Roland Stigge <stigge@antcom.de>
4479 Michael Meissner <meissner@linux.vnet.ibm.com>
4482 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
4483 Only check TFmode for SPE constants. Don't check TImode or TDmode.
4485 2014-01-07 Jakub Jelinek <jakub@redhat.com>
4487 PR rtl-optimization/58668
4488 * cfgcleanup.c (flow_find_cross_jump): Don't count
4489 any jumps if dir_p is NULL. Remove p1 variable and make USE/CLOBBER
4490 check consistent with other places.
4491 (flow_find_head_matching_sequence): Don't count USE or CLOBBER insns.
4492 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
4494 * ifcvt.c (count_bb_insns): Don't count USE or CLOBBER insns.
4496 2014-01-07 Mike Stump <mikestump@comcast.net>
4497 Jakub Jelinek <jakub@redhat.com>
4500 * tree.h (struct tree_optimization_option): Change optabs
4501 type from unsigned char * to void *.
4502 * optabs.c (init_tree_optimization_optabs): Adjust
4503 TREE_OPTIMIZATION_OPTABS initialization.
4505 2014-01-07 Jakub Jelinek <jakub@redhat.com>
4507 Backported from mainline
4508 2013-12-16 Jakub Jelinek <jakub@redhat.com>
4512 * gimple.h (walk_stmt_load_store_addr_fn): New typedef.
4513 (walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Use it
4514 for callback params.
4515 * gimple.c (walk_stmt_load_store_ops): Likewise.
4516 (walk_stmt_load_store_addr_ops): Likewise. Adjust all callback
4517 calls to supply the gimple operand containing the base tree
4518 as an extra argument.
4519 * tree-ssa-ter.c (find_ssaname, find_ssaname_in_store): New helper
4521 (find_replaceable_in_bb): For calls or GIMPLE_ASM, only set
4522 same_root_var if USE is used somewhere in the stores of the stmt.
4523 * ipa-prop.c (visit_ref_for_mod_analysis): Remove name of the stmt
4524 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
4525 * ipa-pure-const.c (check_load, check_store, check_ipa_load,
4526 check_ipa_store): Likewise.
4527 * gimple.c (gimple_ior_addresses_taken_1): Likewise.
4528 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Likewise.
4529 (verify_non_ssa_vars, visit_bb): Adjust their callers.
4530 * cfgexpand.c (add_scope_conflicts_1): Use
4531 walk_stmt_load_store_addr_fn type for visit variable.
4532 (visit_op, visit_conflict): Remove name of the stmt
4533 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
4534 * tree-sra.c (asm_visit_addr): Likewise. Remove name of the data
4535 argument and ATTRIBUTE_UNUSED.
4536 * cgraphbuild.c (mark_address, mark_load, mark_store): Add another
4537 unnamed tree argument.
4539 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
4541 * config/m68k/m68k.c (handle_move_double): Handle pushes with
4542 overlapping registers also for registers other than the stack
4545 2014-01-03 Jakub Jelinek <jakub@redhat.com>
4548 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
4551 2014-01-01 Jakub Jelinek <jakub@redhat.com>
4553 PR rtl-optimization/59647
4554 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
4555 new_rtx into UNSIGNED_FLOAT rtxes.
4557 2013-12-28 Eric Botcazou <ebotcazou@adacore.com>
4559 * doc/invoke.texi (output file options): Document -fada-spec-parent.
4561 2013-12-26 Uros Bizjak <ubizjak@gmail.com>
4563 * config/i386/driver-i386.c (decode_caches_intel): Add missing entries.
4565 2013-12-20 Jakub Jelinek <jakub@redhat.com>
4568 Backported from mainline
4569 2013-08-19 Dehao Chen <dehao@google.com>
4571 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
4573 2013-12-19 James Greenhalgh <james.greenhalgh@arm.com>
4575 Backport from Mainline.
4576 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4578 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
4580 (cmhi): Rename to...
4582 * config/aarch64/aarch64-simd.md
4583 (simd_mode): Add SF.
4584 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
4585 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
4586 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
4587 (cstore<mode>_neg): ...This.
4588 * config/aarch64/iterators.md
4590 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
4592 (UCOMPARISONS): Likewise.
4593 (optab): Add missing comparisons.
4601 (V_cmp_result): Add DF, SF modes.
4602 (v_cmp_result): Likewise.
4605 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
4607 Partial Backport from mainline.
4608 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4610 * config/aarch64/arm_neon.h
4611 (vc<eq, lt, le, gt, ge, tst><qsd>_<u><8,16,32,64>): Remap
4612 to builtins or C as appropriate.
4614 2013-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com>
4615 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4617 Backport from mainline
4618 2013-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com>
4619 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New
4621 (s390_hotpatch_trampoline_halfwords_max): New constant
4622 (s390_hotpatch_trampoline_halfwords): New static variable
4623 (get_hotpatch_attribute): New function
4624 (s390_handle_hotpatch_attribute): New function
4625 (s390_attribute_table): New target specific attribute table to implement
4626 the hotpatch attribute
4627 (s390_option_override): Parse hotpatch options
4628 (s390_function_num_hotpatch_trampoline_halfwords): New function
4629 (s390_can_inline_p): Implement target hook to
4630 suppress hotpatching for explicitly inlined functions
4631 (s390_asm_output_function_label): Generate hotpatch prologue
4632 (TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table
4633 (TARGET_CAN_INLINE_P): Define to implement target hook
4634 * config/s390/s390.opt (mhotpatch): New options -mhotpatch, -mhotpatch=
4635 * config/s390/s390-protos.h (s390_asm_output_function_label): Add
4637 * config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific
4638 function label generation for hotpatching
4639 (FUNCTION_BOUNDARY): Align functions to eight bytes
4640 * doc/extend.texi: Document hotpatch attribute
4641 * doc/invoke.texi: Document -mhotpatch option
4643 2013-12-18 Eric Botcazou <ebotcazou@adacore.com>
4645 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Fix thinko.
4647 2013-12-12 Vladimir Makarov <vmakarov@redhat.com>
4650 * lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo
4651 values if necessary.
4653 2013-12-12 Jakub Jelinek <jakub@redhat.com>
4656 * gimplify.c (omp_check_private): Add copyprivate argument, if it
4657 is true, don't check omp_privatize_by_reference.
4658 (gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify
4659 decl is private in outer context. Adjust omp_check_private caller.
4661 2013-12-10 Eric Botcazou <ebotcazou@adacore.com>
4663 PR rtl-optimization/58295
4664 * simplify-rtx.c (simplify_truncation): Restrict the distribution for
4665 WORD_REGISTER_OPERATIONS targets.
4667 2013-12-10 Kai Tietz <ktietz@redhat.com>
4670 * config/i386/i386.c (ix86_expand_prologue): Address saved
4671 registers stack-relative, not via frame-pointer.
4673 2013-12-09 Alan Modra <amodra@gmail.com>
4676 2013-12-05 Alan Modra <amodra@gmail.com>
4677 * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
4679 <recursive call for build != host>: Clear GMPINC. Don't bother
4681 * configure: Regenerate.
4683 2013-12-08 Uros Bizjak <ubizjak@gmail.com>
4685 Backport from mainline
4686 2013-12-06 Uros Bizjak <ubizjak@gmail.com>
4689 * config/i386/i386.c (type_natural_mode): Properly handle
4690 size 8 for !TARGET_64BIT.
4692 2013-12-07 Ralf Corsépius <ralf.corsepius@rtems.org>
4694 * config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT.
4696 2013-12-06 Jakub Jelinek <jakub@redhat.com>
4698 PR tree-optimization/59388
4699 * tree-ssa-reassoc.c (update_range_test): If op == range->exp,
4700 gimplify tem after stmt rather than before it.
4702 2013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
4704 Backport from mainline
4705 2013-11-26 Oleg Endo <olegendo@gcc.gnu.org>
4709 * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
4710 Prefix function names with 'sh_'. Make them non-static.
4711 * config/sh/sh-protos.h (sh_disp_addr_displacement,
4712 sh_max_mov_insn_displacement): Add declarations.
4713 * config/sh/constraints.md (Q): Reject QImode.
4714 (Sdd): Use match_code "mem".
4715 (Snd): Fix erroneous matching of non-memory operands.
4716 * config/sh/predicates.md (short_displacement_mem_operand): New
4718 (general_movsrc_operand): Disallow PC relative QImode loads.
4719 * config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
4720 (*movqi, *movhi): Merge both insns into...
4721 (*mov<mode>): ... this new insn. Replace generic 'm' constraints with
4722 'Snd' and 'Sdd' constraints. Calculate insn length dynamically based
4723 on the operand types.
4725 2013-12-06 Richard Biener <rguenther@suse.de>
4727 Backport from mainline
4728 2013-11-29 Richard Biener <rguenther@suse.de>
4730 PR tree-optimization/59334
4731 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
4734 2013-11-28 Richard Biener <rguenther@suse.de>
4736 PR tree-optimization/59330
4737 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
4738 and fix delayed marking of free calls not necessary.
4740 2013-12-06 Richard Biener <rguenther@suse.de>
4742 Backport from mainline
4743 2013-11-27 Richard Biener <rguenther@suse.de>
4745 PR tree-optimization/59288
4746 * tree-vect-loop.c (get_initial_def_for_induction): Do not
4747 re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
4749 2013-11-19 Richard Biener <rguenther@suse.de>
4751 PR tree-optimization/59164
4752 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust
4753 check whether we can create an epilogue loop to reflect the
4754 cases where we create one.
4756 2013-09-05 Richard Biener <rguenther@suse.de>
4758 PR tree-optimization/58137
4759 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
4760 Do not create vectors of pointers.
4761 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
4762 types for the components of the vector initializer.
4763 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
4764 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
4766 2013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
4770 * config/sh/sh.md (*cbranch_t): Check that there are no labels between
4771 the s1 insn and the testing insn. Remove REG_DEAD note from s1 insn.
4773 2013-12-05 Richard Biener <rguenther@suse.de>
4775 Backport from mainline
4776 2013-11-19 Richard Biener <rguenther@suse.de>
4779 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
4780 loads into stmts that may clobber it.
4782 2013-12-04 Jakub Jelinek <jakub@redhat.com>
4784 PR rtl-optimization/58726
4785 * combine.c (force_to_mode): Fix comment typo. Don't destructively
4786 modify x for ROTATE, ROTATERT and IF_THEN_ELSE.
4788 2013-12-04 Jakub Jelinek <jakub@redhat.com>
4789 Uros Bizjak <ubizjak@gmail.com>
4792 * config/i386/i386.c (ix86_legitimate_combined_insn): If for
4793 !TARGET_AVX there is misaligned MEM operand with vector mode
4794 and get_attr_ssememalign is 0, return false.
4795 (ix86_expand_special_args_builtin): Add get_pointer_alignment
4796 computed alignment and for non-temporal loads/stores also
4797 at least GET_MODE_ALIGNMENT as MEM_ALIGN.
4798 * config/i386/sse.md
4799 (<sse>_loadu<ssemodesuffix><avxsizesuffix>,
4800 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
4801 <sse2>_loaddqu<avxsizesuffix>,
4802 <sse2>_storedqu<avxsizesuffix>, <sse3>_lddqu<avxsizesuffix>,
4803 sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps,
4804 sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps,
4805 *vec_interleave_highv2df, *vec_interleave_lowv2df,
4806 *vec_extractv2df_1_sse, sse2_loadhpd, sse2_loadlpd, sse2_movsd,
4807 sse4_1_<code>v8qiv8hi2, sse4_1_<code>v4qiv4si2,
4808 sse4_1_<code>v4hiv4si2, sse4_1_<code>v2qiv2di2,
4809 sse4_1_<code>v2hiv2di2, sse4_1_<code>v2siv2di2, sse4_2_pcmpestr,
4810 *sse4_2_pcmpestr_unaligned, sse4_2_pcmpestri, sse4_2_pcmpestrm,
4811 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned,
4812 sse4_2_pcmpistri, sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add
4813 ssememalign attribute.
4814 * config/i386/i386.md (ssememalign): New define_attr.
4816 2013-12-03 Jakub Jelinek <jakub@redhat.com>
4819 * gimplify.c (nonlocal_vla_vars): New variable.
4820 (gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into
4821 nonlocal_vla_vars chain.
4822 (gimplify_body): Call declare_vars on nonlocal_vla_vars chain
4823 if outer_bind has DECL_INITIAL (current_function_decl) block.
4826 * optabs.c (emit_conditional_move): Save and restore
4827 pending_stack_adjust and stack_pointer_delta if cmove can't be used.
4829 2013-12-02 Jakub Jelinek <jakub@redhat.com>
4831 PR tree-optimization/59358
4832 * tree-vrp.c (union_ranges): To check for the partially
4833 overlapping ranges or adjacent ranges, also compare *vr0max
4836 2013-12-02 Richard Biener <rguenther@suse.de>
4838 PR tree-optimization/59139
4839 * tree-ssa-loop-niter.c (chain_of_csts_start): Properly match
4840 code in get_val_for.
4841 (get_val_for): Use gcc_checking_asserts.
4843 2013-11-27 Tom de Vries <tom@codesourcery.com>
4844 Marc Glisse <marc.glisse@inria.fr>
4847 * fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
4849 * gimplify.c (gimple_fold_indirect_ref): Same.
4851 2013-12-01 Eric Botcazou <ebotcazou@adacore.com>
4853 * config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an
4856 2013-12-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
4858 * expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument.
4860 2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4862 Backport from mainline
4863 2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4865 * config/arm/iterators.md (vrint_conds): New int attribute.
4866 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
4867 (smax<mode>3): Likewise.
4868 (smin<mode>3): Likewise.
4870 2013-11-28 Uros Bizjak <ubizjak@gmail.com>
4872 Backport from mainline
4873 2013-11-27 Uros Bizjak <ubizjak@gmail.com>
4874 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
4877 * gcc.target/i386/xop-frczX.c: New test.
4879 2013-11-28 Terry Guo <terry.guo@arm.com>
4881 Backport mainline r205391
4882 2013-11-26 Terry Guo <terry.guo@arm.com>
4884 * config/arm/arm.c (require_pic_register): Handle high pic base
4885 register for thumb-1.
4886 (arm_load_pic_register): Also initialize high pic base register.
4887 * doc/invoke.texi: Update documentation for option -mpic-register.
4889 2013-11-27 Jakub Jelinek <jakub@redhat.com>
4891 Backported from mainline
4892 2013-11-26 Jakub Jelinek <jakub@redhat.com>
4894 PR tree-optimization/59014
4895 * tree-vrp.c (register_edge_assert_for_1): Don't look
4896 through conversions from non-integral types or through
4897 narrowing conversions.
4899 2013-11-27 Eric Botcazou <ebotcazou@adacore.com>
4902 * expr.c (emit_group_store): Don't write past the end of the structure.
4903 (store_bit_field): Fix formatting.
4905 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4907 Backport from mainline
4908 2013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
4910 * config/sparc/t-rtems: Add leon3 multilibs.
4912 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4914 Backport from mainline
4915 2013-08-09 Eric Botcazou <ebotcazou@adacore.com>
4917 * configure.ac: Add GAS check for LEON instructions on SPARC.
4918 * configure: Regenerate.
4919 * config.in: Likewise.
4920 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
4922 * config/sparc/sparc.opt (LEON, LEON3): New masks.
4923 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
4925 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
4926 (AS_LEON_FLAG): New macro.
4927 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
4928 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
4929 Deal with LEON and LEON3 for the memory model.
4930 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
4931 (atomic_compare_and_swap<mode>_1): Likewise.
4932 (*atomic_compare_and_swap<mode>_1): Likewise.
4934 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4936 Backport from mainline
4937 2013-07-23 Eric Botcazou <ebotcazou@adacore.com>
4939 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
4941 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4943 Backport from mainline
4944 2013-07-22 Eric Botcazou <ebotcazou@adacore.com>
4946 * config.gcc (sparc*-*-*): Accept leon3 processor.
4947 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
4948 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
4949 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
4950 * config/sparc/sparc.opt (enum processor_type): Add leon3.
4951 (mfix-ut699): Adjust comment.
4952 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
4953 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
4954 (CPP_CPU_SPEC): Likewise.
4955 (ASM_CPU_SPEC): Likewise.
4956 * config/sparc/sparc.c (leon3_cost): New constant.
4957 (sparc_option_override): Add leon3 support.
4958 (mem_ref): New function.
4959 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
4960 (sparc_do_work_around_errata): Look into the instruction in the delay
4961 slot and adjust accordingly. Add fix for the data cache nullify issues
4962 of the UT699. Change insertion position for the NOP.
4963 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
4964 (leon3_load): New reservation.
4965 (leon_store): Bump latency to 2.
4966 (grfpu): New automaton.
4967 (grfpu_alu): New unit.
4968 (grfpu_ds): Likewise.
4969 (leon_fp_alu): Adjust.
4970 (leon_fp_mult): Delete.
4971 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
4972 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
4973 * config/sparc/sparc.md (cpu): Add leon3.
4974 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
4976 (atomic_test_and_set): Likewise.
4979 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4981 Backport from mainline
4982 2013-04-10 Steven Bosscher <steven@gcc.gnu.org>
4984 * config/sparc/sparc.c: Include tree-pass.h.
4985 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
4986 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
4987 head of file. Change return type. Split off gate function.
4988 (sparc_gate_work_around_errata): New function.
4989 (pass_work_around_errata): New pass definition.
4990 (insert_pass_work_around_errata) New pass insert definition to
4991 insert pass_work_around_errata just after delayed-branch scheduling.
4992 (sparc_option_override): Insert the pass.
4993 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
4995 2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4997 Backport from mainline
4998 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
5000 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
5001 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
5002 mode if the instruction isn't available in the original mode.
5003 * config/sparc/sparc.opt (mfix-ut699): New option.
5004 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
5005 (divdf3): Turn into expander.
5006 (divdf3_nofix): New insn.
5007 (divdf3_fix): Likewise.
5008 (divsf3): Disable if -mfix-ut699.
5009 (sqrtdf2): Turn into expander.
5010 (sqrtdf2_nofix): New insn.
5011 (sqrtdf2_fix): Likewise.
5012 (sqrtsf2): Disable if -mfix-ut699.
5014 2013-11-22 Eric Botcazou <ebotcazou@adacore.com>
5016 * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.
5018 2013-11-21 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5021 Backport from mainline: r197467 and r198999.
5022 2013-04-03 Jeff Law <law@redhat.com>
5024 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
5025 (lra-eliminations.o): Likewise.
5027 2013-05-16 Jeff Law <law@redhat.com>
5029 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
5031 2013-11-20 Eric Botcazou <ebotcazou@adacore.com>
5034 * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
5035 Make sure neg2_ovf is set before being used.
5037 2013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5038 Dominik Vogt <vogt@linux.vnet.ibm.com>
5040 Backport from mainline
5041 * config/s390/s390.c (s390_canonicalize_comparison): Don't fold
5042 int comparisons with an out of range condition code.
5043 (s390_optimize_nonescaping_tx): Skip empty BBs.
5044 Generate the new tbegin RTX when removing the FPR clobbers (with
5046 (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the
5047 result before doing the retry calculations.
5048 (s390_init_builtins): Make tbegin "returns_twice" and tabort
5050 * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
5051 the TDB setting part of an tbegin.
5052 ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
5053 ("tx_assist"): Set unused argument to an immediate zero instead of
5054 loading zero into a GPR and pass it as argument.
5055 * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
5056 Remove inline and related attributes.
5057 (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
5058 (__TM_is_illegal, __TM_is_footprint_exceeded)
5059 (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value
5062 2013-11-19 Uros Bizjak <ubizjak@gmail.com>
5064 Backport from mainline
5065 2013-11-18 Uros Bizjak <ubizjak@gmail.com>
5067 * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
5068 ix86_address_subreg_operand. Move subreg checks to
5069 ix86_validate_address_register. Move address override check to
5070 ix86_legitimate_address_p.
5071 (ix86_validate_address_register): New function.
5072 (ix86_legitimate_address_p): Call ix86_validate_address_register
5073 to validate base and index registers. Add address override check
5074 from ix86_decompose_address.
5075 (ix86_decompose_address): Remove.
5077 Backport from mainline
5078 2013-11-17 Uros Bizjak <ubizjak@gmail.com>
5081 * config/i386/i386.c (ix86_address_subreg_operand): Do not
5082 reject non-integer subregs.
5083 (ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
5084 Move check for invalid x32 constant addresses ...
5085 (ix86_legitimate_address_p): ... here.
5087 2013-11-19 Richard Biener <rguenther@suse.de>
5089 Backport from mainline
5090 2013-11-07 Richard Biener <rguenther@suse.de>
5092 * tree-dfa.c (get_ref_base_and_extent): Fix casting.
5094 2013-11-19 Richard Biener <rguenther@suse.de>
5096 PR tree-optimization/57517
5097 * tree-predcom.c (combinable_refs_p): Verify the combination
5098 is always executed when the refs are.
5100 2013-11-19 Richard Biener <rguenther@suse.de>
5102 Backport from mainline
5103 2013-11-05 Richard Biener <rguenther@suse.de>
5106 * tree-dfa.c (get_ref_base_and_extent): Merge common code
5107 in MEM_REF and TARGET_MEM_REF handling. Make sure to
5108 process trailing array detection before diving into the
5109 view-converted object (and possibly apply some extra offset).
5111 2013-11-18 Richard Biener <rguenther@suse.de>
5113 Backport from mainline
5114 2013-10-21 Richard Biener <rguenther@suse.de>
5116 PR tree-optimization/58794
5117 * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
5118 of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
5120 2013-10-21 Richard Biener <rguenther@suse.de>
5123 * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
5124 to (T) X for sign-changing conversions (or no conversion).
5126 2013-11-06 Richard Biener <rguenther@suse.de>
5128 PR tree-optimization/58653
5129 * tree-predcom.c (ref_at_iteration): Rewrite to generate
5131 (prepare_initializers_chain): Adjust.
5133 PR tree-optimization/59047
5134 * tree-predcom.c (ref_at_iteration): Handle bitfield accesses
5137 2013-10-15 Richard Biener <rguenther@suse.de>
5139 PR tree-optimization/58143
5140 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
5142 (rewrite_to_defined_overflow): Likewise.
5143 (move_computations_dom_walker::before_dom): Rewrite stmts
5144 with undefined signed overflow that are not always executed
5145 into unsigned arithmetic.
5147 2013-11-14 Uros Bizjak <ubizjak@gmail.com>
5149 Backport from mainline
5150 2013-11-10 Uros Bizjak <ubizjak@gmail.com>
5152 * mode-switching.c (optimize_mode_switching): Mark block as
5153 nontransparent, if last_mode at block exit is different from no_mode.
5155 Backport from mainline
5156 2013-11-06 Uros Bizjak <ubizjak@gmail.com>
5159 * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
5160 AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
5161 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
5162 RTXes that return in AVX256 register.
5164 2013-11-14 Jakub Jelinek <jakub@redhat.com>
5165 Uros Bizjak <ubizjak@gmail.com>
5168 * config/i386/i386.md (*anddi_2): Only allow CCZmode if
5169 operands[2] satisfies_constraint_Z that might have bit 31 set.
5171 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
5173 Backported from mainline
5174 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
5177 * config/i386/i386.c (initial_ix86_tune_features): Set
5178 X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
5179 X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for m_HASWELL.
5181 2013-11-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5183 Backported from mainline
5184 2013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5187 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage
5189 2013-11-11 Jakub Jelinek <jakub@redhat.com>
5191 Backported from mainline
5192 2013-11-06 Jakub Jelinek <jakub@redhat.com>
5195 * expr.c (get_bit_range): Handle *offset == NULL_TREE.
5196 (expand_assignment): If *bitpos is negative, set *offset
5197 and adjust *bitpos, so that it is not negative.
5199 2013-11-05 Jakub Jelinek <jakub@redhat.com>
5201 PR rtl-optimization/58997
5202 * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
5203 get_iv_value to be in iv->mode rather than iv->extend_mode.
5204 (iv_extend): Likewise. Otherwise, if iv->extend != extend,
5205 use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
5206 * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
5209 2013-11-10 Karlson2k <k2k@narod.ru>
5210 Kai Tietz <ktietz@redhat.com>
5214 * configure.ac: Adding for exported symbols check
5215 and for rdynamic-check executable-extension.
5216 * configure: Regenerated.
5218 2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
5221 * config/i386/i386.md (push peepholer/splitter): Use Pmode
5222 with stack_pointer_rtx.
5224 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
5226 * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
5228 2013-11-05 Jakub Jelinek <jakub@redhat.com>
5230 PR tree-optimization/58984
5231 * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
5232 set *SIZE_P if non-NULL on success.
5233 (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
5235 (ipcp_transform_function): Likewise. Punt if size of access
5236 is different from TYPE_SIZE on v->value's type.
5238 2013-11-03 H.J. Lu <hongjiu.lu@intel.com>
5240 Backport from mainline
5241 2013-10-12 H.J. Lu <hongjiu.lu@intel.com>
5244 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
5245 (ix86_expand_movmem): Replace copy_addr_to_reg with
5246 ix86_copy_addr_to_reg.
5247 (ix86_expand_setmem): Likewise.
5249 2013-10-29 Uros Bizjak <ubizjak@gmail.com>
5251 Backport from mainline
5252 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
5254 PR rtl-optimization/58079
5255 * combine.c (combine_simplify_rtx): Avoid using SUBST if
5256 simplify_comparison has widened a comparison with an integer.
5258 2013-10-29 Martin Jambor <mjambor@suse.cz>
5261 Backport from mainline
5262 2013-05-09 Martin Jambor <mjambor@suse.cz>
5265 * gimple-fold.c (canonicalize_constructor_val): Call
5266 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
5268 Backport from mainline
5269 2013-03-16 Jan Hubicka <jh@suse.cz>
5271 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
5272 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
5273 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
5274 of cgraph_get_create_node.
5275 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5277 2013-10-28 Tom de Vries <tom@codesourcery.com>
5279 * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
5280 Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
5282 2013-10-26 Uros Bizjak <ubizjak@gmail.com>
5284 Backport from mainline
5285 2013-10-22 Uros Bizjak <ubizjak@gmail.com>
5288 * config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
5289 Remove CCCmode handling.
5290 <case LTU>: Return 'c' suffix for CCCmode.
5291 <case GEU>: Return 'nc' suffix for CCCmode.
5292 (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
5293 * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
5294 (*sub<mode>3_cc_overflow): Ditto.
5295 (*subsi3_zext_cc_overflow): Ditto.
5297 2013-10-26 Uros Bizjak <ubizjak@gmail.com>
5299 Backport from mainline
5300 2013-10-19 Uros Bizjak <ubizjak@gmail.com>
5303 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
5304 ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
5305 and SI_REG for 64bit SYSV ABI targets.
5307 2013-08-25 Richard Henderson <rth@twiddle.net>
5310 * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
5311 instead of create_convert_operand_to.
5312 (maybe_emit_sync_lock_test_and_set): Likewise.
5313 (expand_atomic_compare_and_swap): Likewise.
5314 (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
5316 2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
5318 PR rtl-optimization/58831
5319 * alias.c (init_alias_analysis): At the beginning of each iteration, set
5320 the reg_seen[N] bit if static_reg_base_value[N] is non-null.
5322 2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
5324 * recog.c (search_ofs): New static variable moved from...
5325 (peep2_find_free_register): ...here.
5326 (peephole2_optimize): Initialize it.
5328 2013-10-24 David Edelsohn <dje.gcc@gmail.com>
5330 Backport from mainline
5331 2013-10-23 David Edelsohn <dje.gcc@gmail.com>
5334 * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
5335 TARGET_32BIT final condition.
5336 (mulsi3_internal2 and splitter): Same.
5338 2013-10-23 Tom de Vries <tom@codesourcery.com>
5340 PR tree-optimization/58805
5341 * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
5343 2013-10-23 Richard Biener <rguenther@suse.de>
5345 Backport from mainline
5346 2013-06-24 Richard Biener <rguenther@suse.de>
5348 PR tree-optimization/57488
5349 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
5351 2013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
5353 Backport from mainline
5354 2013-10-16 Ganesh Gopalasubramanian
5355 <Ganesh.Gopalasubramanian@amd.com>
5357 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
5360 2013-10-16 Jakub Jelinek <jakub@redhat.com>
5362 * BASE-VER: Set to 4.8.3.
5363 * DEV-PHASE: Set to prerelease.
5365 2013-10-16 Release Manager
5367 * GCC 4.8.2 released.
5369 2013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
5371 Backport from mainline.
5372 2013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
5374 * config/aarch64/arm_neon.h
5375 (vtbx<1,3>_<psu>8): Fix register constriants.
5377 2013-10-10 Jakub Jelinek <jakub@redhat.com>
5380 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
5381 if any labels are in FALLTHRU_BB, use a special label emitted
5382 immediately after the asm goto insn rather than label_rtx
5384 (expand_asm_stmt): Adjust caller.
5385 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
5386 edge if the last insn in predecessor is a jump with single successor,
5387 but it isn't simplejump_p.
5389 2013-10-09 Jakub Jelinek <jakub@redhat.com>
5391 Backport from mainline
5392 2013-09-26 Richard Biener <rguenther@suse.de>
5394 PR tree-optimization/58539
5395 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
5396 the fact that debug statements are not taking part in loop-closed
5399 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5401 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
5402 loop to work also for 31bit ABI.
5403 Save the stack pointer for frame_size > 0.
5405 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5407 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
5408 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
5409 constraint letters from expanders.
5410 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
5411 retry count to general_operand.
5412 ("tabort"): Give operand 0 a mode.
5413 ("tabort_1"): Add mode and constraint letter for operand 0.
5414 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
5416 2013-10-04 Marcus Shawcroft <marcus.shawcroft@arm.com>
5418 Backport from mainline.
5421 * config/aarch64/aarch64.md (*add_<shift>_<mode>)
5422 (*add_<shift>_si_uxtw,*add_mul_imm_<mode>)
5423 (*sub_<shift>_<mode>)
5424 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
5425 Remove k constraint.
5427 2013-10-02 John David Anglin <danglin@gcc.gnu.org>
5429 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
5431 2013-10-01 Jakub Jelinek <jakub@redhat.com>
5432 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5435 * config/s390/s390.c (s390_chunkify_start): Handle tablejump_p first,
5436 continue when done, for other jumps look through PARALLEL
5439 2013-09-30 Jakub Jelinek <jakub@redhat.com>
5442 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
5443 optimization, punt if sign_bit_p looked through any zero extension.
5445 2013-09-27 Paulo Matos <pmatos@broadcom.com>
5447 Backport from mainline.
5450 2013-03-27 Richard Biener <rguenther@suse.de>
5452 PR tree-optimization/56716
5453 * tree-ssa-structalias.c (perform_var_substitution): Adjust
5454 dumping for ref nodes.
5456 2013-09-27 Paulo Matos <pmatos@broadcom.com>
5458 Backport from mainline.
5460 2013-09-27 Paulo Matos <pmatos@broadcom.com>
5462 * gcc.dg/pr58463.c: New test.
5464 2013-09-23 Eric Botcazou <ebotcazou@adacore.com>
5466 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
5467 assignment statements.
5469 2013-09-23 Alan Modra <amodra@gmail.com>
5472 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
5474 2013-09-23 Alan Modra <amodra@gmail.com>
5476 * config/rs6000/predicates.md (add_cint_operand): New.
5477 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
5478 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
5479 using add_cint_operand.
5480 (largetoc_high_plus_aix): Likewise.
5481 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
5483 2013-09-20 John David Anglin <danglin@gcc.gnu.org>
5486 * config/pa/pa.c (pa_option_override): Disable auto increment and
5487 decrement instructions until reload is completed.
5489 * config/pa/pa.md: In "scc" insn patterns, change output template to
5490 handle const0_rtx in reg_or_0_operand operands.
5492 2013-09-19 Jakub Jelinek <jakub@redhat.com>
5494 * omp-low.c (expand_omp_sections): Always pass len - 1 to
5495 GOMP_sections_start, even if !exit_reachable.
5497 2013-09-18 Richard Earnshaw <rearnsha@arm.com>
5499 * arm.c (arm_expand_prologue): Validate architecture supports
5500 LDRD/STRD before accepting tuning preferences.
5501 (arm_expand_epilogue): Likewise.
5503 2013-09-18 Daniel Morris <danielm@ecoscentric.com>
5504 Paolo Carlini <paolo.carlini@oracle.com>
5507 * doc/implement-cxx.texi: Fix references to the C++ standards.
5509 2013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5511 PR tree-optimization/58088
5512 * fold-const.c (mask_with_trailing_zeros): New function.
5513 (fold_binary_loc): Make sure we don't recurse infinitely
5514 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
5515 Use mask_with_trailing_zeros where appropriate.
5517 2013-09-14 John David Anglin <danglin@gcc.gnu.org>
5520 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
5523 2013-09-13 Christian Bruel <christian.bruel@st.com>
5526 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
5528 2013-09-11 Andi Kleen <ak@linux.intel.com>
5530 Backport from mainline
5531 * doc/extend.texi: Use __atomic_store_n instead of
5532 __atomic_store in HLE example.
5534 2013-09-11 Andi Kleen <ak@linux.intel.com>
5536 Backport from mainline
5537 * doc/extend.texi: Dont use __atomic_clear in HLE
5540 2013-09-11 Andi Kleen <ak@linux.intel.com>
5542 Backport from mainline
5543 * doc/extend.texi: Document that __atomic_clear and
5544 __atomic_test_and_set should only be used with bool.
5546 2013-09-11 Richard Biener <rguenther@suse.de>
5549 * passes.c (init_optimization_passes): Split critical edges
5550 before late uninit warning pass in the -Og pipeline.
5552 2013-09-11 Jakub Jelinek <jakub@redhat.com>
5554 PR tree-optimization/58385
5555 * fold-const.c (build_range_check): If both low and high are NULL,
5556 use omit_one_operand_loc to preserve exp side-effects.
5558 2013-09-10 Richard Earnshaw <rearnsha@arm.com>
5561 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
5562 support conditional execution.
5563 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
5565 2013-09-10 Jakub Jelinek <jakub@redhat.com>
5567 PR rtl-optimization/58365
5568 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
5569 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
5572 2013-09-09 Jakub Jelinek <jakub@redhat.com>
5574 PR tree-optimization/58364
5575 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
5576 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
5577 the current range can't be an unconditional true or false.
5579 2013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5582 Backport from mainline
5583 2013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
5585 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
5586 Use gen_int_mode rather than GEN_INT.
5588 2013-09-09 Richard Biener <rguenther@suse.de>
5590 Backport from mainline
5591 2013-08-27 Richard Biener <rguenther@suse.de>
5593 PR tree-optimization/57521
5594 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
5595 one edge is non-critical.
5596 (find_phi_replacement_condition): Make sure to use a non-critical
5597 edge. Cleanup and remove old bug workarounds.
5598 (bb_postdominates_preds): Remove.
5599 (if_convertible_loop_p_1): Do not compute post-dominators.
5600 (combine_blocks): Do not free post-dominators.
5601 (main_tree_if_conversion): Likewise.
5603 2013-09-09 Richard Biener <rguenther@suse.de>
5605 Backport from mainline
5606 2013-09-03 Richard Biener <rguenther@suse.de>
5609 * fold-const.c (negate_expr_p): Fix division case.
5610 (negate_expr): Likewise.
5612 2013-09-09 Richard Biener <rguenther@suse.de>
5614 Backport from mainline
5615 2013-08-29 Richard Biener <rguenther@suse.de>
5617 PR tree-optimization/57685
5618 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
5619 single-use operands to avoid exponential complexity.
5621 2013-09-09 Richard Biener <rguenther@suse.de>
5623 Backport from mainline
5624 2013-08-30 Richard Biener <rguenther@suse.de>
5626 PR tree-optimization/58223
5627 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
5628 (has_anti_or_output_dependence): ... this and adjust to also
5629 look for output dependences.
5630 (mark_nodes_having_upstream_mem_writes): Adjust.
5631 (rdg_flag_uses): Likewise.
5633 2013-09-03 Richard Biener <rguenther@suse.de>
5635 Backport from mainline
5636 2013-08-29 Richard Biener <rguenther@suse.de>
5638 PR tree-optimization/58246
5639 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
5640 handle the dominance check inside a basic-block.
5642 2013-09-03 Richard Biener <rguenther@suse.de>
5644 Backport from mainline
5645 2013-08-30 Richard Biener <rguenther@suse.de>
5647 PR tree-optimization/58228
5648 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
5649 allow invariant loads in nested loop vectorization.
5651 2013-09-03 Richard Biener <rguenther@suse.de>
5653 Backport from mainline
5654 2013-08-30 Richard Biener <rguenther@suse.de>
5656 PR tree-optimization/58010
5657 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
5658 assert that we have a loop-closed PHI.
5660 2013-09-01 Uros Bizjak <ubizjak@gmail.com>
5662 Backport from mainline
5663 2013-08-31 Uros Bizjak <ubizjak@gmail.com>
5665 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
5666 "cmp" RTX before signed_comparison_operator check to account
5669 2013-09-01 John David Anglin <danglin@gcc.gnu.org>
5671 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
5673 2013-08-30 Jakub Jelinek <jakub@redhat.com>
5675 PR tree-optimization/58277
5676 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
5677 after seeing too many stmts with vdef in between dombb and current
5678 bb, invalidate everything.
5680 2013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
5682 Backport from mainline
5683 2013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
5686 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
5688 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
5689 rtx (*) (rtx, ...) with insn_gen_fn.
5690 * genoutput.c (output_insn_data): Cast gen_? function pointers to
5691 insn_gen_fn::stored_funcptr. Add initializer braces.
5693 Backport from mainline
5694 2013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
5697 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
5698 (rs6000_emit_swdiv_high_precision, rs6000_emit_swdiv_low_precision,
5699 rs6000_emit_swrsqrt): Don't cast result of GEN_FCN to gen_2arg_fn_t.
5701 2013-08-29 Jakub Jelinek <jakub@redhat.com>
5703 Backported from mainline
5704 2013-05-27 Richard Biener <rguenther@suse.de>
5707 PR tree-optimization/57417
5708 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
5710 (set_ssa_val_to): Compare addresses using
5711 get_addr_base_and_unit_offset.
5713 PR tree-optimization/57396
5714 * tree-affine.c (double_int_constant_multiple_p): Properly
5715 return false for val == 0 and div != 0.
5717 PR tree-optimization/57343
5718 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
5719 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
5720 (number_of_iterations_cond): Do not build the folded tree.
5722 2013-08-28 Jakub Jelinek <jakub@redhat.com>
5725 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
5727 2013-08-28 Richard Biener <rguenther@suse.de>
5729 Backport from mainline
5730 2013-06-24 Richard Biener <rguenther@suse.de>
5733 * passes.c (init_optimization_passes): Move pass_fold_builtins
5734 and pass_dce earlier with -Og.
5736 2013-08-28 Uros Bizjak <ubizjak@gmail.com>
5738 Backport from mainline
5739 2013-08-27 H.J. Lu <hongjiu.lu@intel.com>
5741 * config/i386/driver-i386.c (host_detect_local_cpu): Update
5742 Haswell processor detection.
5744 Backport from mainline
5745 2013-08-27 Christian Widmer <shadow@umbrox.de>
5748 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
5749 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
5750 AVX2 capable processors.
5752 2013-08-23 Jakub Jelinek <jakub@redhat.com>
5755 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
5756 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
5758 PR tree-optimization/58209
5759 * tree-tailcall.c (find_tail_calls): Give up for pointer result types
5760 if m or a is non-NULL.
5762 2013-08-21 Richard Earnshaw <rearnsha@arm.com>
5765 * arm.c (aapcs_vfp_allocate): Decompose the argument if the
5766 suggested mode for the assignment isn't compatible with the
5769 2013-08-20 Alan Modra <amodra@gmail.com>
5772 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
5773 (rs6000_emit_epilogue): Likewise.
5775 2013-08-19 Peter Bergner <bergner@vnet.ibm.com>
5776 Jakub Jelinek <jakub@redhat.com>
5778 Backport from mainline
5779 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
5780 destination and source operands.
5782 2013-08-18 Jakub Jelinek <jakub@redhat.com>
5784 PR tree-optimization/58006
5785 * tree-parloops.c (take_address_of): Don't ICE if get_name
5787 (eliminate_local_variables_stmt): Remove clobber stmts.
5789 2013-08-16 Jakub Jelinek <jakub@redhat.com>
5791 PR tree-optimization/58164
5792 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
5793 walk gimple_goto_dest of GIMPLE_GOTO.
5795 PR tree-optimization/58165
5796 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
5797 bi_call must be the last stmt in a bb, don't split_block, instead
5798 use fallthru edge from it and give up if there is none.
5799 Release conds vector when returning early.
5801 2013-08-15 David Given <dg@cowlark.com>
5803 Backport from mainline
5804 2013-04-26 Vladimir Makarov <vmakarov@redhat.com>
5806 * lra-constraints.c (process_alt_operands): Use #if HAVE_ATTR_enable
5809 2013-08-14 Jakub Jelinek <jakub@redhat.com>
5811 PR tree-optimization/58145
5812 * tree-sra.c (build_ref_for_offset): If prev_base has
5813 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
5815 2013-08-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5817 * config/s390/htmxlintrin.h: Add file missing from last commit.
5818 * config/s390/htmintrin.h: Likewise.
5819 * config/s390/s390intrin.h: Likewise.
5821 2013-08-14 Uros Bizjak <ubizjak@gmail.com>
5823 Backport from mainline
5824 2013-08-13 Uros Bizjak <ubizjak@gmail.com>
5826 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
5827 when Pmode != word_mode. Add length_address attribute.
5828 (sse3_monitor_<mode>): Merge from sse3_monitor and
5829 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
5830 Pmode != word_mode. Update insn length attribute.
5831 * config/i386/i386.c (ix86_option_override_internal): Update
5832 ix86_gen_monitor selection for merged sse3_monitor insn.
5834 2013-08-14 Jakub Jelinek <jakub@redhat.com>
5835 Alexandre Oliva <aoliva@redhat.com>
5838 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
5839 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
5840 there also UNSPEC_PLTOFF.
5842 2013-08-13 Jakub Jelinek <jakub@redhat.com>
5845 * asan.c (instrument_strlen_call): Fix typo in comment.
5846 Use char * type even for the lhs of POINTER_PLUS_EXPR.
5848 2013-08-13 Vladimir Makarov <vmakarov@redhat.com>
5850 Backport from mainline
5851 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
5853 PR rtl-optimization/57459
5854 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
5855 type when setting live regs.
5857 2013-08-13 Marek Polacek <polacek@redhat.com>
5858 Jakub Jelinek <jakub@redhat.com>
5860 PR tree-optimization/57980
5861 * tree-tailcall.c (process_assignment): Return false
5862 when not dealing with integers or floats.
5864 2013-08-12 Andrew Haley <aph@redhat.com>
5866 Backport from mainline:
5867 * 2013-07-11 Andreas Schwab <schwab@suse.de>
5869 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
5871 2013-08-13 Uros Bizjak <ubizjak@gmail.com>
5873 Backport from mainline
5874 2013-08-12 Perez Read <netfirewall@gmail.com>
5877 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
5878 operand 0 for intel asm alternative.
5879 (*movabs<mode>_2): Ditto for operand 1.
5881 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5883 Backport from mainline:
5884 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5886 * config/arm/neon.md (vcond): Fix floating-point vector
5887 comparisons against 0.
5889 2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5891 Backport from mainline:
5892 2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5894 * config/arm/neon.md (movmisalign<mode>): Disable when we
5895 don't allow unaligned accesses.
5896 (*movmisalign<mode>_neon_store): Likewise.
5897 (*movmisalign<mode>_neon_load): Likewise.
5898 (*movmisalign<mode>_neon_store): Likewise.
5899 (*movmisalign<mode>_neon_load): Likewise.
5901 2013-08-06 Martin Jambor <mjambor@suse.cz>
5904 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
5905 MEM_REF has proper alignment information.
5907 2013-08-05 Richard Earnshaw <rearnsha@arm.com>
5909 PR rtl-optimization/57708
5910 * recog.c (peep2_find_free_register): Validate all regs in a
5913 2013-08-02 Eric Botcazou <ebotcazou@adacore.com>
5915 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
5916 the implied StoreLoad barrier for atomic operations if before.
5918 2013-08-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5920 Backports from mainline:
5921 2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5923 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
5924 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
5925 (struct machine_function): Add tbegin_p.
5926 (s390_canonicalize_comparison): Fold CC mode compares to
5927 conditional jump if possible.
5928 (s390_emit_jump): Return the emitted jump.
5929 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
5930 Handle CCRAWmode compares.
5931 (s390_option_override): Default to -mhtm if available.
5932 (s390_reg_clobbered_rtx): Handle floating point regs as well.
5933 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
5934 FPRs instead of df_regs_ever_live_p.
5935 (s390_optimize_nonescaping_tx): New function.
5936 (s390_init_frame_layout): Extend clobbered_regs array to cover
5938 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
5939 (s390_expand_tbegin): New function.
5940 (enum s390_builtin): New enum definition.
5941 (code_for_builtin): New array definition.
5942 (s390_init_builtins): New function.
5943 (s390_expand_builtin): New function.
5944 (TARGET_INIT_BUILTINS): Define.
5945 (TARGET_EXPAND_BUILTIN): Define.
5946 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5947 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
5948 (s390_alc_comparison): Likewise.
5949 * config/s390/s390-modes.def: Add CCRAWmode.
5950 * config/s390/s390.h (processor_flags): Add PF_TX.
5951 (TARGET_CPU_HTM): Define macro.
5952 (TARGET_HTM): Define macro.
5953 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
5954 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
5955 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
5956 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
5957 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum
5959 (TBEGIN_MASK, TBEGINC_MASK): New constants.
5960 ("*cc_to_int"): Move up.
5961 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
5962 constants other than 0.
5963 ("*ccraw_to_int"): New insn and splitter definition.
5964 ("tbegin", "tbegin_nofloat", "tbegin_retry")
5965 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
5966 ("tx_assist"): New expander.
5967 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
5968 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
5969 * config/s390/s390.opt: Add -mhtm option.
5970 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
5971 * config/s390/htmxlintrin.h: New file.
5972 * config/s390/htmintrin.h: New file.
5973 * config/s390/s390intrin.h: New file.
5974 * doc/extend.texi: Document htm builtins.
5975 * config.gcc: Add the new header files to extra_headers.
5977 2013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5979 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
5980 enabled without -march=zEC12.
5981 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
5984 2013-08-01 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
5986 Backport from mainline
5987 2013-05-13 Ganesh Gopalasubramanian
5988 <Ganesh.Gopalasubramanian@amd.com>
5990 * config/i386/i386.c (processor_target_table): Modified default
5991 alignment values for AMD BD and BT architectures.
5993 2013-07-31 Sriraman Tallam <tmsriram@google.com>
5995 * config/i386/i386.c (dispatch_function_versions): Fix array
5996 indexing of function_version_info to match actual_versions.
5998 2013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
6000 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
6001 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
6003 2013-07-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6005 Backport from mainline
6006 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6008 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
6010 2013-07-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6012 * config/s390/linux-unwind.h: Use the proper dwarf to hard reg
6013 mapping for FPRs when creating the fallback framestate.
6015 2013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
6017 * config/s390/s390.md ("movcc"): Swap load and store instructions.
6019 2013-07-25 Terry Guo <terry.guo@arm.com>
6021 Backport from mainline:
6022 2013-07-25 Terry Guo <terry.guo@arm.com>
6024 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
6025 shift_add/shift_sub0/shift_sub1 RTXs.
6027 2013-07-22 Iain Sandoe <iain@codesourcery.com>
6029 Backport from mainline:
6030 2013-07-22 Uros Bizjak <ubizjak@gmail.com>
6032 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
6033 it is not needed after split.
6035 2013-07-20 Iain Sandoe <iain@codesourcery.com>
6038 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
6039 second label for nonlocal goto receivers. Don't output pic base labels
6040 unless we're producing PIC; mark that action unreachable().
6041 (ix86_save_reg): If the function contains a nonlocal label, save the
6043 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
6044 * gcc/config/darwin.c (emitted_pic_label_num): New GTY.
6045 (update_pic_label_number_if_needed): New.
6046 (machopic_output_function_base_name): Adjust for nonlocal receiver
6048 (machopic_should_output_picbase_label): New.
6049 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
6050 (nonlocal_goto_receiver): New insn and split.
6052 2013-07-19 Wei Mi <wmi@google.com>
6054 Backport from mainline:
6055 2013-07-18 Vladimir Makarov <vmakarov@redhat.com>
6056 Wei Mi <wmi@google.com>
6058 PR rtl-optimization/57878
6059 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
6060 top. Promote lra_assert to gcc_assert.
6061 (reload_pseudo_compare_func): Check regs first for reload pseudos.
6063 2013-07-11 Georg-Johann Lay <avr@gjlay.de>
6065 Backport from 2013-07-19 trunk r201051.
6068 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
6069 * config/avr/avr.md (adjust_len): Add `round'.
6070 * config/avr/avr-protos.h (avr_out_round): New prototype.
6071 (avr_out_plus): Add `out_label' argument.
6072 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
6073 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
6074 Handle the case where `insn' is just a pattern.
6075 (avr_out_bitop): Handle the case where `insn' is just a pattern.
6076 (avr_out_round): New function.
6077 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
6079 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
6081 * config/i386/bmiintrin.h (_bextr_u32): New.
6082 (_bextr_u64): Ditto.
6087 (_blsmsk_u32): Ditto.
6088 (_blsmsk_u64): Ditto.
6089 (_tzcnt_u32): Ditto.
6090 (_tzcnt_u64): Ditto.
6092 2013-07-17 James Greenhalgh <james.greenhalgh@arm.com>
6094 Backport From mainline:
6095 2013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
6097 * config/aarch64/aarch64-builtins.c
6098 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
6099 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
6101 * config/aarch64/aarch64-simd.md
6102 (aarch64_ld1<VALL:mode>): New.
6103 (aarch64_st1<VALL:mode>): Likewise.
6104 * config/aarch64/arm_neon.h
6105 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
6107 2013-07-11 Georg-Johann Lay <avr@gjlay.de>
6109 Backport from 2013-07-11 trunk r200901.
6112 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
6113 name seen by assembler/linker if available.
6115 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
6117 Backport from 2013-07-10 trunk r200872.
6120 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
6123 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
6125 Backport from 2013-07-10 trunk r200870.
6128 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
6129 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
6130 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
6131 Remove duplicate devices.
6132 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
6133 * config/avr/t-multilib: Regenerate.
6134 * config/avr/avr-tables.opt: Regenerate.
6135 * doc/avr-mmcu.texi: Regenerate.
6137 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
6140 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
6142 2013-07-09 Joseph Myers <joseph@codesourcery.com>
6144 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
6145 adjust register size for TDmode and TFmode for VSX registers.
6147 2013-07-08 Kai Tietz <ktietz@redhat.com>
6149 Backport from mainline
6151 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
6152 hook_bool_const_tree_true.
6154 2013-07-08 Uros Bizjak <ubizjak@gmail.com>
6156 Backport from mainline
6157 2013-07-07 Uros Bizjak <ubizjak@gmail.com>
6159 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
6160 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
6162 Backport from mainline
6163 2013-07-06 Uros Bizjak <ubizjak@gmail.com>
6165 * config/i386/sse.md (sse_movlhps): Change alternative 3
6166 of operand 2 to "m".
6168 2013-07-08 Eric Botcazou <ebotcazou@adacore.com>
6170 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
6172 2013-07-08 Jakub Jelinek <jakub@redhat.com>
6174 PR rtl-optimization/57829
6175 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
6176 mask bits outside of mode are just sign-extension from mode to HWI.
6178 2013-07-03 Jakub Jelinek <jakub@redhat.com>
6181 * config/i386/predicates.md (vsib_address_operand): Disallow
6182 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
6184 2013-06-30 Terry Guo <terry.guo@arm.com>
6186 Backport from mainline
6187 2013-03-27 Bin Cheng <bin.cheng@arm.com>
6190 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
6191 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
6194 2013-06-28 Jakub Jelinek <jakub@redhat.com>
6197 * config/i386/i386.c (ix86_expand_builtin): If target == NULL
6198 and mode is VOIDmode, don't create a VOIDmode pseudo to copy result
6201 2013-06-27 Jakub Jelinek <jakub@redhat.com>
6204 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
6205 constraints of operand 1 and 2.
6208 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
6209 to match RTL canonicalization. Swap predicates and
6210 constraints of operand 1 and 2.
6212 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
6213 decl before the loop, initialize to NULL.
6214 (vectorizable_load): Initialize ptr_incr to NULL.
6216 2013-06-24 Martin Jambor <mjambor@suse.cz>
6218 PR tree-optimization/57358
6219 * ipa-prop.c (parm_ref_data_preserved_p): Always return true when
6222 2013-06-24 Alan Modra <amodra@gmail.com>
6224 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
6225 (gen_easy_altivec_constant): Likewise.
6226 * config/rs6000/predicates.md (easy_vector_constant_add_self,
6227 easy_vector_constant_msb): Likewise.
6229 2013-06-21 Uros Bizjak <ubizjak@gmail.com>
6231 Backport from mainline
6232 2013-06-20 Uros Bizjak <ubizjak@gmail.com>
6235 * config/i386/i386.c (construct_container): Report error if
6236 long double is used with disabled x87 float returns.
6238 2013-06-20 Wei Mi <wmi@google.com>
6240 Backport from mainline
6241 2013-06-19 Wei Mi <wmi@google.com>
6243 PR rtl-optimization/57518
6244 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
6245 if regno is used in paradoxical subreg.
6246 (update_equiv_regs): Check pdx_subregs[regno] before
6247 set a reg to be equivalent with a mem.
6250 2013-06-20 David Edelsohn <dje.gcc@gmail.com>
6252 Backport from mainline
6253 2013-06-19 David Edelsohn <dje.gcc@gmail.com>
6256 * collect2.c (collect_atexit): New.
6257 (collect_exit): Delete.
6258 (main): Register collect_atexit with atexit.
6259 (collect_wait): Change collect_exit to exit.
6261 * collect2.h (collect_exit): Delete.
6262 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
6264 2013-06-19 Matthias Klose <doko@ubuntu.com>
6267 * file-find.h (find_a_file): Add a mode parameter.
6268 * file-find.c (find_a_file): Likewise.
6269 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
6270 with X_OK for the executables.
6271 * collect2.c (main): Call find_a_file with X_OK.
6273 2013-06-19 Igor Zamyatin <igor.zamyatin@intel.com>
6275 * doc/invoke.texi (core-avx2): Document.
6276 (atom): Updated with MOVBE.
6278 2013-06-19 Jakub Jelinek <jakub@redhat.com>
6281 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
6282 PERSONALITY in $PATH derived prefixes.
6284 2013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
6287 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
6288 that now in C++ the value is correct per the C++ standards.
6290 2013-06-19 Alan Modra <amodra@gmail.com>
6292 Apply mainline patches
6293 2013-06-13 Alan Modra <amodra@gmail.com>
6294 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
6295 * config/rs6000/rs6000.md (signbittf2): New insn.
6296 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
6297 (abstf2_internal, cmptf_internal2): Likewise.
6298 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
6300 2013-06-11 Anton Blanchard <anton@samba.org>
6301 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
6302 correct shift value in little-endian mode.
6304 2013-06-07 Alan Modra <amodra@gmail.com>
6305 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
6308 2013-06-04 Alan Modra <amodra@gmail.com>
6309 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
6312 2013-05-10 Alan Modra <amodra@gmail.com>
6313 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
6314 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
6315 * configure: Regenerate.
6317 2013-05-09 Alan Modra <amodra@gmail.com>
6318 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
6320 * configure: Regenerate.
6322 2013-05-07 Anton Blanchard <anton@samba.org>
6323 * configure.ac (HAVE_LD_LARGE_TOC): Use right linker emulation
6324 for powerpc64 little endian.
6325 * configure: Regenerate.
6327 2013-05-06 Alan Modra <amodra@gmail.com>
6328 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
6329 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
6330 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
6331 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
6332 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
6333 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
6335 2013-05-06 Alan Modra <amodra@gmail.com>
6336 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
6337 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
6338 (DEFAULT_ASM_ENDIAN): Define.
6339 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
6340 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
6341 Update -K PIC clause from sysv4.h.
6342 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
6343 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
6345 2013-05-06 Alan Modra <amodra@gmail.com>
6346 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
6347 twice for little-endian.
6348 (ashrdi3_no_power, ashrdi3): Support little-endian.
6350 2013-04-25 Alan Modra <amodra@gmail.com>
6351 * config.gcc: Support little-endian powerpc-linux targets.
6352 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
6353 (LINK_OS_LINUX_SPEC): Define.
6354 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
6355 Preserve MASK_LITTLE_ENDIAN.
6356 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
6357 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
6358 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
6359 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
6360 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
6361 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
6362 Correct fp word order for little-endian. Don't shift toc entries
6363 smaller than a word for little-endian.
6364 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
6365 (bswapdi2 splits): Correct low-part subreg for little-endian.
6366 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
6367 low/high where such is correct only for be.
6368 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
6369 little-endian for -mcall-aixdesc.
6371 2013-06-12 Martin Jambor <mjambor@suse.cz>
6373 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
6374 within bounds at the beginning of the function.
6376 2013-06-12 Jakub Jelinek <jakub@redhat.com>
6378 PR tree-optimization/57537
6379 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
6380 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
6382 2013-06-10 Uros Bizjak <ubizjak@gmail.com>
6384 Backport from mainline
6385 2013-06-10 Uros Bizjak <ubizjak@gmail.com>
6387 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
6388 cmp_code to construct REG_EQUAL note.
6390 2013-06-10 Oleg Endo <olegendo@gcc.gnu.org>
6392 Backport from mainline
6393 2013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
6396 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
6397 (*fmasf4, *fmasf4_media): New insns.
6399 2013-06-09 Jakub Jelinek <jakub@redhat.com>
6402 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
6403 that operands[2] doesn't overlap with operands[0].
6405 2013-06-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
6407 * recog.c (offsettable_address_addr_space_p): Fix calculation of
6408 address mode. Move pointer mode initialization to the same place.
6410 2013-06-07 Sofiane Naci <sofiane.naci@arm.com>
6412 Backport from mainline
6413 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
6415 2013-06-07 Uros Bizjak <ubizjak@gmail.com>
6417 Backport from mainline
6418 2013-06-05 Uros Bizjak <ubizjak@gmail.com>
6420 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
6421 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
6423 Backport from mainline
6424 2013-05-23 Uros Bizjak <ubizjak@gmail.com>
6427 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
6428 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
6429 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
6431 2013-06-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6433 Backport from mainline.
6434 2013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6436 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
6438 2013-06-03 James Greenhalgh <james.greenhalgh@arm.com>
6440 Backport from mainline.
6441 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
6443 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
6444 format specifier in 'X' case.
6446 2013-05-31 Richard Henderson <rth@redhat.com>
6449 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
6450 (ix86_reorg): Call it.
6452 2012-05-31 Jakub Jelinek <jakub@redhat.com>
6454 * BASE-VER: Set to 4.8.2.
6455 * DEV-PHASE: Set to prerelease.
6457 2013-05-31 Release Manager
6459 * GCC 4.8.1 released.
6461 2013-05-24 Greta Yorsh <Greta.Yorsh@arm.com>
6463 Backport from mainline
6464 2013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
6467 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
6468 generating simple_return for naked functions.
6470 2013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
6473 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
6474 that index is not negative.
6476 2013-05-23 Martin Jambor <mjambor@suse.cz>
6479 * tree.h (contains_bitfld_component_ref_p): Declare.
6480 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
6481 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its caller.
6482 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
6483 not access a bit-field. Assert all final offsets are byte-aligned.
6485 2013-05-23 Richard Biener <rguenther@suse.de>
6487 PR rtl-optimization/57341
6488 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
6489 instead of true_dependence.
6491 2013-05-23 Jakub Jelinek <jakub@redhat.com>
6494 * expmed.c (store_split_bit_field): If op0 is a REG or
6495 SUBREG of a REG, don't lower unit. Handle unit not being
6496 always BITS_PER_WORD.
6498 2013-05-22 Uros Bizjak <ubizjak@gmail.com>
6501 * config/i386/i386.md (*movti_internal_rex64): Emit movaps/movups
6502 for non-sse2 targets.
6503 (*movti_internal): Simplify mode attribute calculation.
6505 2013-05-22 Richard Biener <rguenther@suse.de>
6507 Backport from mainline
6508 2013-05-21 Richard Biener <rguenther@suse.de>
6510 PR tree-optimization/57318
6511 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
6512 estimate stmts with side-effects as likely eliminated.
6514 2013-05-21 Richard Biener <rguenther@suse.de>
6516 PR tree-optimization/57330
6517 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
6518 preserve the call stmts fntype.
6520 2013-05-21 Richard Biener <rguenther@suse.de>
6522 PR tree-optimization/57303
6523 * tree-ssa-sink.c (statement_sink_location): Properly handle
6526 2013-05-21 Magnus Granberg <baldrick@free.fr>
6529 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
6531 2013-05-21 Eric Botcazou <ebotcazou@adacore.com>
6533 Backport from mainline
6534 2013-05-14 Eric Botcazou <ebotcazou@adacore.com>
6536 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
6537 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
6539 2013-05-17 Jakub Jelinek <jakub@redhat.com>
6541 PR rtl-optimization/57281
6542 PR rtl-optimization/57300
6543 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
6544 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
6545 what the other splitter did if the registers are dead.
6547 2013-05-17 Uros Bizjak <ubizjak@gmail.com>
6549 Backport from mainline
6550 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
6552 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
6553 cache parameters using detect_caches_amd also for CYRIX,
6554 NSC and TM2 signatures.
6556 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
6557 Dzianis Kahanovich <mahatma@eu.by>
6561 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6562 VIA/Centaur processors and determine their cache parameters
6563 using detect_caches_amd.
6565 2013-05-15 Uros Bizjak <ubizjak@gmail.com>
6567 * config/i386/i386.c (ix86_option_override_internal): Update
6568 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
6569 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
6570 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
6571 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
6573 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
6575 2013-05-17 Jakub Jelinek <jakub@redhat.com>
6577 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
6580 PR tree-optimization/57051
6581 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
6582 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
6584 2013-05-16 Jakub Jelinek <jakub@redhat.com>
6586 * omp-low.c (extract_omp_for_data): For collapsed loops,
6587 if at least one of the loops is known at compile time to
6588 iterate zero times, set count to 0.
6589 (expand_omp_regimplify_p): New function.
6590 (expand_omp_for_generic): For collapsed loops, if at least
6591 one of the loops isn't known to iterate at least once,
6592 add runtime check with setting count to 0.
6593 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
6594 For unsigned types if it isn't known at compile time that
6595 the loop will iterate at least once, add runtime check to bypass
6596 the whole loop if initial condition isn't true.
6598 2013-05-14 Jakub Jelinek <jakub@redhat.com>
6601 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
6602 the case when both op0 and op1 have VOIDmode.
6604 2013-05-13 Jakub Jelinek <jakub@redhat.com>
6606 PR tree-optimization/57230
6607 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
6610 2013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
6612 * config/epiphany/epiphany.c (epiphany_init): Check size of
6613 NUM_MODES_FOR_MODE_SWITCHING.
6614 (epiphany_expand_prologue):
6615 Remove CONFIG_REGNUM initial value handling code.
6616 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
6617 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
6618 (emit_set_fp_mode, epiphany_mode_after): Likewise.
6619 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
6620 Don't return 1 for FP_MODE_NONE.
6621 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
6622 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
6623 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
6624 * config/epiphany/epiphany.md (save_config): New pattern.
6626 2013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
6628 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
6629 Add mthumb/march=armv7-a multilib.
6630 Add mthumb/march=armv7-r multilib.
6631 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
6633 2013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
6636 * config/v850/t-rtems: Add more multilibs.
6638 2013-05-10 Richard Biener <rguenther@suse.de>
6640 PR tree-optimization/57214
6641 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
6642 not propagate from SSA names that occur in abnormal PHI nodes.
6644 2013-05-10 Alan Modra <amodra@gmail.com>
6647 * varasm.c (default_elf_select_section): Move !DECL_P check..
6648 (get_named_section): ..to here before calling get_section_name.
6650 (default_section_type_flags): Add DECL_P check.
6651 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
6652 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
6654 2013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
6656 * config/epiphany/epiphany.c (epiphany_expand_prologue):
6657 When using gen_stack_adjust_str with a register offset, add a
6658 REG_FRAME_RELATED_EXPR note.
6660 2013-05-09 Martin Jambor <mjambor@suse.cz>
6663 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
6664 * ipa-cp.c (find_aggregate_values_for_callers_subset): Fill in the
6665 by_ref flag of ipa_agg_replacement_value structures.
6666 (known_aggs_to_agg_replacement_list): Likewise.
6667 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
6668 (read_agg_replacement_chain): Likewise.
6669 (ipcp_transform_function): Also check that by_ref flags match.
6671 2013-05-08 Diego Novillo <dnovillo@google.com>
6677 2012-08-17 Diego Novillo <dnovillo@google.com>
6680 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
6681 * config.in: Regenerate.
6682 * configure: Regenerate.
6683 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is
6686 2013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
6688 PR tree-optimization/57200
6689 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
6690 Only call inform if the preceding warning_at returns true.
6692 2013-05-07 Jakub Jelinek <jakub@redhat.com>
6694 PR tree-optimization/57149
6695 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
6696 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
6697 collect_phi_def_edges, execute_late_warn_uninitialized): Use
6698 uninit_undefined_value_p instead of ssa_undefined_value_p.
6701 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
6702 for modifier == EXPAND_INITIALIZER.
6704 2013-05-07 Richard Biener <rguenther@suse.de>
6706 Backport from mainline
6707 2013-05-06 Richard Biener <rguenther@suse.de>
6709 PR tree-optimization/57185
6710 * tree-parloops.c (add_field_for_reduction): Handle anonymous
6713 2013-04-19 Richard Biener <rguenther@suse.de>
6715 PR tree-optimization/57000
6716 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
6718 2013-05-06 Michael Meissner <meissner@linux.vnet.ibm.com>
6721 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
6724 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
6725 to save TFmode registers and DImode to save TImode registers for
6726 caller save operations.
6727 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
6728 mark being partially clobbered since they only use the first
6731 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
6732 and TDmode only use the upper 64-bits of each VSX register.
6734 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
6737 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
6739 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
6741 Backport from mainline
6742 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
6745 * config/i386/i386.c (add_parameter_dependencies): Add dependence
6746 between "first_arg" and "insn", not "last" and "insn".
6748 2013-05-03 Jakub Jelinek <jakub@redhat.com>
6750 PR rtl-optimization/57130
6751 * combine.c (make_compound_operation) <case SUBREG>: Pass
6752 SET instead of COMPARE as in_code to the recursive call
6755 Backported from mainline
6756 2013-04-26 Jakub Jelinek <jakub@redhat.com>
6758 PR tree-optimization/57051
6759 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
6760 and VEC_RSHIFT_EXPR if shift count is a multiple of element
6763 2013-04-12 Marc Glisse <marc.glisse@inria.fr>
6765 * fold-const.c (fold_binary_loc): Call const_binop also for mixed
6766 vector-scalar operations.
6768 2013-05-03 Marek Polacek <polacek@redhat.com>
6770 Backport from mainline
6771 2013-04-25 Marek Polacek <polacek@redhat.com>
6773 PR tree-optimization/57066
6774 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
6776 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
6778 Backport from mainline
6779 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
6781 * lra-constraints.c (process_alt_operands): Add checking alt
6782 number to choose the best alternative.
6784 2013-05-01 Vladimir Makarov <vmakarov@redhat.com>
6787 * lra-constraints.c (best_small_class_operands_num): Remove.
6788 (process_alt_operands): Remove small_class_operands_num. Take
6789 small classes operands into losers and only if the operand is not
6790 matched. Modify debugging output.
6791 (curr_insn_transform): Remove best_small_class_operands_num.
6794 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
6796 Backport from mainline
6797 2013-04-29 Vladimir Makarov <vmakarov@redhat.com>
6800 * lra-constraints.c (process_alt_operands): Discourage a bit more
6801 using memory for pseudos. Print cost dump for alternatives.
6802 Modify cost values for conflicts with early clobbers.
6803 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
6805 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
6807 Backport from mainline
6808 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
6810 PR rtl-optimizations/57046
6811 * lra-constraints (split_reg): Set up lra_risky_transformations_p
6812 for multi-reg splits.
6814 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
6816 Backport from mainline
6817 2013-04-22 Vladimir Makarov <vmakarov@redhat.com>
6820 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
6821 a set sp if no stack realignment.
6823 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
6825 Backport from mainline
6826 2013-04-18 Vladimir Makarov <vmakarov@redhat.com>
6828 PR rtl-optimization/56999
6829 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
6831 (lra_coalesce): Remove split_origin_bitmap and related code.
6832 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
6833 ranges if necessary.
6835 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
6837 Backport from mainline
6838 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
6840 PR rtl-optimization/56847
6841 * lra-constraints.c (process_alt_operands): Discourage alternative
6842 with non-matche doffsettable memory constraint fro memory with
6845 2013-05-02 Ian Bolton <ian.bolton@arm.com>
6847 Backport from mainline
6848 2013-03-28 Ian Bolton <ian.bolton@arm.com>
6850 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
6851 record only when desired or required.
6853 2013-04-30 Jakub Jelinek <jakub@redhat.com>
6855 PR tree-optimization/57104
6856 * tsan.c (instrument_expr): Don't instrument accesses to
6857 DECL_HARD_REGISTER VAR_DECLs.
6859 2013-04-30 Uros Bizjak <ubizjak@gmail.com>
6861 Backport from mainline
6862 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
6865 * config/i386/i386.md (*zero_extendsidi2_rex64): Add "!" to m->?*y
6867 (*zero_extendsidi2): Ditto.
6869 Backport from mainline
6870 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
6873 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
6875 2013-04-29 Richard Biener <rguenther@suse.de>
6878 * tree-cfg.c (move_stmt_op): Fix condition under which to update
6880 (move_stmt_r): Remove redundant checking.
6882 2013-04-29 Christian Bruel <christian.bruel@st.com>
6885 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
6887 2013-04-29 Jakub Jelinek <jakub@redhat.com>
6889 PR tree-optimization/57083
6890 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
6891 non-singleton shift count range, zero extend low_bound for uns case.
6893 2013-04-28 Eric Botcazou <ebotcazou@gcc.gnu.org>
6895 * stor-layout.c (finalize_size_functions): Allocate a structure and
6896 reset cfun before dumping the functions.
6898 2013-04-27 Jakub Jelinek <jakub@redhat.com>
6901 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
6902 use xop_pmacsdqh if uns_p.
6903 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
6904 the immediate rotate count.
6906 2013-04-25 Jakub Jelinek <jakub@redhat.com>
6908 PR rtl-optimization/57003
6909 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
6910 call note_stores with kill_clobbered_value callback again after
6911 killing regs_invalidated_by_call.
6913 2013-04-25 Ian Bolton <ian.bolton@arm.com>
6915 Backported from mainline.
6916 2013-03-22 Ian Bolton <ian.bolton@arm.com>
6918 * config/aarch64/aarch64.c (aarch64_print_operand): New
6919 format specifier for printing a constant in hex.
6920 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
6921 format specifier for printing second operand.
6923 2013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
6925 Backported from mainline.
6926 2013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
6928 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
6929 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
6930 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
6932 2013-04-24 Greta Yorsh <Greta.Yorsh@arm.com>
6934 Backported from mainline.
6936 * config/arm/arm.c (load_multiple_sequence): Require SP
6937 as base register for loads if SP is in the register list.
6939 2013-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6940 Steven Bosscher <steven@gcc.gnu.org>
6942 Backported from mainline.
6943 PR rtl-optimization/56605
6944 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
6946 2013-04-22 Marek Polacek <polacek@redhat.com>
6948 Backported from mainline.
6949 2013-04-22 Marek Polacek <polacek@redhat.com>
6952 * tsan.c (instrument_expr): Don't instrument expression
6953 in case its size is zero.
6955 2013-04-22 Yufeng Zhang <yufeng.zhang@arm.com>
6957 Backported from mainline.
6958 2013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
6959 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
6960 (aarch64_start_file): Use the new function.
6962 2013-04-18 Jakub Jelinek <jakub@redhat.com>
6964 PR tree-optimization/56984
6965 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
6966 and (x >> M) >= N don't register any assertion if N << M is the
6969 2013-04-17 David Edelsohn <dje.gcc@gmail.com>
6972 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
6974 2013-04-15 Jakub Jelinek <jakub@redhat.com>
6976 PR tree-optimization/56962
6977 * gimple-ssa-strength-reduction.c (record_increment): Only set
6978 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
6979 either rhs1 or rhs2 is equal to c->base_expr.
6981 2013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6983 * emit-rtl.c (reset_all_used_flags): New function.
6984 (verify_rtl_sharing): Call reset_all_used_flags before and after
6985 performing the checks.
6987 2013-04-15 Eric Botcazou <ebotcazou@adacore.com>
6990 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
6991 (S_MODES): Set H_MODE bit.
6992 (SF_MODES): Set only S_MODE and SF_MODE bits.
6993 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
6994 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
6995 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
6996 <MODE_FLOAT>: Likewise.
6998 2013-04-12 Vladimir Makarov <vmakarov@redhat.com>
7001 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
7002 lra_in_progress for return.
7004 2013-04-12 Jakub Jelinek <jakub@redhat.com>
7006 PR tree-optimization/56918
7007 PR tree-optimization/56920
7008 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
7009 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
7010 argument to rshift method.
7012 2013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7014 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as
7017 2013-04-11 Marek Polacek <polacek@redhat.com>
7019 PR tree-optimization/48184
7020 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum
7023 2013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
7025 Backported from mainline.
7026 2013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
7028 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
7029 floating-point vector comparisons against 0.
7031 2013-04-11 Jakub Jelinek <jakub@redhat.com>
7033 PR tree-optimization/56899
7034 * fold-const.c (extract_muldiv_1): Apply distributive law
7035 only if TYPE_OVERFLOW_WRAPS (ctype).
7037 2013-04-10 David S. Miller <davem@davemloft.net>
7039 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
7040 or -mcpu=hypersparc.
7042 2013-04-10 Jakub Jelinek <jakub@redhat.com>
7044 Backported from mainline
7045 2013-04-09 Jakub Jelinek <jakub@redhat.com>
7048 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
7049 expand_omp_for_static_chunk): Use simple_p = true in
7050 force_gimple_operand_gsi calls when assigning to addressable decls.
7052 2013-04-09 Marek Polacek <polacek@redhat.com>
7054 PR tree-optimization/48762
7055 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum
7058 2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7060 * config/s390/s390.c (s390_expand_insv): Only accept insertions
7063 2013-04-08 Marek Polacek <polacek@redhat.com>
7065 PR rtl-optimization/48182
7066 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
7069 2013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7072 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
7073 nuses, make sure we have a label.
7075 2013-04-04 Ian Lance Taylor <iant@google.com>
7077 Backport from mainline:
7078 * doc/standards.texi (Standards): The Go frontend supports the Go
7079 1 language standard.
7081 2013-04-04 Marek Polacek <polacek@redhat.com>
7083 Backport from mainline:
7084 2013-04-04 Marek Polacek <polacek@redhat.com>
7086 PR tree-optimization/48186
7087 * predict.c (maybe_hot_frequency_p): Return false if
7088 HOT_BB_FREQUENCY_FRACTION is 0.
7089 (cgraph_maybe_hot_edge_p): Likewise.
7091 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7093 Backport from mainline:
7094 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7097 * config/arm/iterators.md (v_cmp_result): New mode attribute.
7098 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
7100 2013-04-04 Richard Biener <rguenther@suse.de>
7102 PR tree-optimization/56837
7103 * tree-loop-distribution.c (classify_partition): For non-zero
7104 values require that the value has the same precision as its
7105 mode to be useful as memset value.
7107 2013-04-03 Roland McGrath <mcgrathr@google.com>
7109 Backport from mainline:
7110 2013-03-26 Roland McGrath <mcgrathr@google.com>
7112 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
7113 than fprintf with a non-constant, non-format string.
7115 2013-04-03 Marek Polacek <polacek@redhat.com>
7117 Backport from mainline:
7118 2013-04-03 Marek Polacek <polacek@redhat.com>
7121 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN
7124 2013-04-03 Richard Biener <rguenther@suse.de>
7126 PR tree-optimization/56817
7127 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
7129 (tree_unroll_loops_completely_1): ... new function to manually
7130 walk the loop tree, properly defering outer loops of unrolled
7131 loops to later iterations.
7133 2013-04-02 Jakub Jelinek <jakub@redhat.com>
7135 PR rtl-optimization/56745
7136 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
7137 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
7139 2013-04-02 Wei Mi <wmi@google.com>
7141 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
7142 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
7143 *<rotate_insn><mode>3_mask in i386.md.
7145 2013-04-01 Wei Mi <wmi@google.com>
7147 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
7148 Truncate operand 2 using %b asm operand modifier.
7149 (*<shift_insn><mode>3_mask): Ditto.
7150 (*<rotate_insn><mode>3_mask): Ditto.
7152 2013-04-01 Uros Bizjak <ubizjak@gmail.com>
7154 * config/i386/i386.md (*movsf_internal): Change type of
7155 alternatives 3,4 to imov.
7157 2013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
7160 * doc/invoke.texi ([-fwhole-program]): Fix typo.
7162 2013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
7164 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
7165 Fix declaration name.
7167 2013-03-28 Gerald Pfeifer <gerald@pfeifer.com>
7169 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
7170 * doc/extend.texi (Named Address Spaces): Ditto.
7171 (Variable Attributes): Ditto.
7173 2013-03-28 Eric Botcazou <ebotcazou@adacore.com>
7175 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
7176 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
7179 2013-03-27 Walter Lee <walt@tilera.com>
7181 Backport from mainline:
7182 2013-03-27 Walter Lee <walt@tilera.com>
7184 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
7185 double-decrement of next_scratch_regno.
7187 2013-03-27 Walter Lee <walt@tilera.com>
7189 Backport from mainline:
7190 2013-03-27 Walter Lee <walt@tilera.com>
7192 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
7194 (insn_v1mulus): Ditto.
7195 (insn_v2muls): Ditto.
7197 2013-03-27 Walter Lee <walt@tilera.com>
7199 Backport from mainline:
7200 2013-03-27 Walter Lee <walt@tilera.com>
7202 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete
7204 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
7206 2013-03-27 Walter Lee <walt@tilera.com>
7208 Backport from mainline:
7209 2013-03-27 Walter Lee <walt@tilera.com>
7211 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
7212 (*sibcall_value): Ditto.
7214 2013-03-27 Walter Lee <walt@tilera.com>
7216 Backport from mainline:
7217 2013-03-27 Walter Lee <walt@tilera.com>
7219 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
7220 (insn_mnz_v8qi): ... this ...
7221 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
7223 (insn_v<n>mnz): Replaced by ...
7224 (insn_v1mnz): ... this ...
7225 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
7227 (insn_mz_<mode>): Replaced by ...
7228 (insn_mz_v8qi): ... this ...
7229 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
7231 (insn_v<n>mz): Replaced by ...
7232 (insn_v1mz): ... this ...
7233 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
7236 2013-03-26 Eric Botcazou <ebotcazou@adacore.com>
7238 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
7240 2013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
7242 * config/rtems.opt: Add -pthread option.
7244 2013-03-26 Sofiane Naci <sofiane.naci@arm.com>
7246 * config/aarch64/aarch64.c (aarch64_classify_address): Support
7247 PC-relative load in SI modes and above only.
7249 2013-03-26 Walter Lee <walt@tilera.com>
7251 Backport from mainline:
7252 2013-03-26 Walter Lee <walt@tilera.com>
7254 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
7255 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
7257 2013-03-26 Walter Lee <walt@tilera.com>
7259 Backport from mainline:
7260 2013-03-25 Walter Lee <walt@tilera.com>
7262 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
7263 TILEGX_INSN_SHUFFLEBYTES1.
7264 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
7266 (tilegx_builtins): Ditto.
7267 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
7269 2013-03-26 Walter Lee <walt@tilera.com>
7271 Backport from mainline:
7272 2013-03-25 Walter Lee <walt@tilera.com>
7274 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
7275 tests for constraint J, K, N, P.
7277 2013-03-26 Walter Lee <walt@tilera.com>
7279 Backport from mainline:
7280 2013-03-25 Walter Lee <walt@tilera.com>
7282 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
7283 Use indirect/pcrel encoding.
7284 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
7287 2013-03-25 Richard Biener <rguenther@suse.de>
7290 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
7291 must-not-throw stmt location.
7293 2012-03-22 Jakub Jelinek <jakub@redhat.com>
7295 * BASE-VER: Set to 4.8.1.
7296 * DEV-PHASE: Set to prerelease.
7298 2013-03-22 Release Manager
7300 * GCC 4.8.0 released.
7302 2013-03-21 Walter Lee <walt@tilera.com>
7304 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
7306 2013-03-21 Mark Wielaard <mjw@redhat.com>
7308 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
7310 2013-03-20 Richard Biener <rguenther@suse.de>
7312 PR tree-optimization/56661
7313 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
7314 the result does not have to be distinct.
7316 2013-03-20 Jakub Jelinek <jakub@redhat.com>
7318 PR tree-optimization/56635
7319 * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Give up
7320 if lhs of then_assign and else_assign don't have compatible types.
7322 2013-03-17 Jakub Jelinek <jakub@redhat.com>
7325 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
7326 class names. Remove trailing comma after "ALL_REGS".
7328 2013-03-16 Jakub Jelinek <jakub@redhat.com>
7330 * DEV-PHASE: Set to prerelease.
7332 2013-03-14 Andi Kleen <ak@linux.intel.com>
7335 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
7336 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
7337 Document _x* TSX intrinsics.
7339 2013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
7340 David Holsgrove <david.holsgrove@xilinx.com>
7342 * configure.ac: Add MicroBlaze TLS support detection.
7343 * configure: Regenerate.
7344 * config/microblaze/microblaze-protos.h
7345 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
7346 symbol_mentioned_p, label_mentioned_p): Add prototypes.
7347 * config/microblaze/microblaze.c (microblaze_address_type): Add
7348 ADDRESS_TLS and tls_reloc address types.
7349 (microblaze_address_info): Add tls_reloc.
7350 (TARGET_HAVE_TLS): Define.
7351 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
7352 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
7353 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
7354 load_tls_operand, microblaze_call_tls_get_addr,
7355 microblaze_legitimize_tls_address): New functions.
7356 (microblaze_classify_unspec): Handle UNSPEC_TLS.
7357 (get_base_reg): Use microblaze_tls_symbol_p.
7358 (microblaze_classify_address): Handle TLS.
7359 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
7360 label_mentioned_p and microblaze_tls_referenced_p.
7361 (microblaze_legitimize_address): Handle TLS.
7362 (microblaze_address_insns): Handle ADDRESS_TLS.
7363 (pic_address_needs_scratch): Handle TLS.
7364 (print_operand_address): Handle TLS.
7365 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
7366 (microblaze_expand_move): Handle TLS.
7367 (microblaze_legitimate_constant_p): Check
7368 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
7369 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
7370 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
7371 (PIC_OFFSET_TABLE_REGNUM): Set.
7372 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
7373 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
7374 (addsi3, movsi_internal2, movdf_internal): Update constraints
7375 * config/microblaze/predicates.md (arith_plus_operand): Define
7376 (move_operand): Redefine as move_src_operand, check
7377 microblaze_tls_referenced_p.
7379 2013-03-14 Ian Bolton <ian.bolton@arm.com>
7381 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
7382 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
7384 2013-03-14 Ian Bolton <ian.bolton@arm.com>
7386 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
7389 2013-03-14 Jakub Jelinek <jakub@redhat.com>
7391 PR tree-optimization/53265
7392 * common.opt (Waggressive-loop-optimizations): New option.
7393 * tree-ssa-loop-niter.c: Include tree-pass.h.
7394 (do_warn_aggressive_loop_optimizations): New function.
7395 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
7396 if number_of_latch_executions returned constant.
7397 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
7398 early. If number_of_latch_executions returned constant, set
7399 nb_iterations_upper_bound back to it.
7400 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
7402 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
7403 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
7405 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
7406 (MULTILIB_OSDIRNAMES): Set.
7407 * genmultilib: If defaultosdirname doesn't start with :: , set
7408 defaultosdirname2 instead, clear it and emit two . multilib_raw
7409 entries instead of just one.
7411 2013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
7413 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
7414 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
7415 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
7416 (SUBTARGET_OVERRIDE_OPTIONS): New.
7418 2013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
7421 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
7422 (musermode): Convert to Var(TARGET_USERMODE).
7423 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
7424 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
7425 * config/sh/sh.c (sh_option_override): Use
7426 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
7427 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
7429 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
7431 (udivsi3_i4_single, divsi3_i4_single): Use
7432 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
7434 2013-03-13 Dave Korn <dave.korn.cygwin@....>
7436 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
7439 2013-03-13 Richard Biener <rguenther@suse.de>
7441 PR tree-optimization/56608
7442 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
7443 calls when vectorizing basic-blocks.
7445 2013-03-13 Jakub Jelinek <jakub@redhat.com>
7448 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
7451 2013-03-12 Jakub Jelinek <jakub@redhat.com>
7453 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
7455 2013-03-11 Jan Hubicka <jh@suse.cz>
7458 * lto-streamer-out.c (output_symbol_p): Skip references from
7459 constructors of external variables.
7461 2013-03-11 Jan Hubicka <jh@suse.cz>
7464 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
7466 * emit-rtl.c (verify_rtx_sharing): Likewise.
7467 (copy_insn_1): Likewise.
7468 * rtl.c (copy_rtx): Likewise.
7470 2013-03-11 Georg-Johann Lay <avr@gjlay.de>
7473 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
7474 output_operand_lossage message.
7476 2013-03-11 Richard Earnshaw <rearnsha@arm.com>
7479 * arm.c (shift_op): Validate RTL pattern on the fly.
7480 (arm_print_operand, case 'S'): Don't use shift_operator to validate
7483 2013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7486 * config/pa/pa.md (call_value): Check for calls to powf and direct to
7487 new call patterns that clobber %fr12.
7488 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
7489 split and postreload patterns.
7490 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
7491 registers %fr12 and %fr12R as call used.
7493 2013-03-09 Steven Bosscher <steven@gcc.gnu.org>
7495 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
7496 (canon_address, record_store, replace_read, check_mem_read_rtx,
7497 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
7498 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
7499 rest_of_handle_dse): Likewise.
7501 2013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
7504 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
7506 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
7507 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
7508 (save_optabs_if_changed): Replace with...
7509 (init_tree_optimization_optabs): ...this.
7510 * optabs.c (save_optabs_if_changed): Rename to...
7511 (init_tree_optimization_optabs): ...this. Take the optimization node
7512 as argument. Do nothing if the base optabs are already correct.
7513 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
7514 to recompute optabs.
7515 * function.h (function): Remove optabs field.
7516 * function.c (invoke_set_current_function_hook): Call
7517 init_tree_optimization_optabs. Use the result to initialize
7520 2013-02-27 Aldy Hernandez <aldyh@redhat.com>
7522 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
7523 if GTMA_HAS_NO_INSTRUMENTATION.
7524 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
7525 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
7526 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
7527 * gimple-pretty-print.c (dump_gimple_transaction): Handle
7528 GTMA_HAS_NO_INSTRUMENTATION.
7530 2013-03-08 Jakub Jelinek <jakub@redhat.com>
7532 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
7535 2013-03-08 Marek Polacek <polacek@redhat.com>
7536 Jakub Jelinek <jakub@redhat.com>
7538 PR tree-optimization/56478
7539 * predict.c (is_comparison_with_loop_invariant_p): Change the
7540 type of loop_step to tree.
7541 (predict_loops): Adjust.
7542 (predict_iv_comparison): Perform the computations on double_ints.
7544 2013-03-08 Richard Biener <rguenther@suse.de>
7546 PR tree-optimization/56570
7547 * tree-cfg.c (verify_expr_location_1): Verify locations for
7549 * tree-sra.c (create_access_replacement): Strip locations
7550 from DECL_DEBUG_EXPRs.
7552 2013-03-08 Richard Biener <rguenther@suse.de>
7554 * tree-inline.c (expand_call_inline): Do not associate
7555 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
7556 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
7558 2013-03-08 Richard Biener <rguenther@suse.de>
7560 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
7561 or block changes with -Og. Fix for location / block encoding
7562 changes and PHI arguments with locations.
7564 2013-03-07 Steven Bosscher <steven@gcc.gnu.org>
7566 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
7568 (struct output_info): Likewise.
7569 (register_overhead): Remove bad gcc_assert.
7570 (bitmap_find_bit): If there is only a single bitmap element, do not
7571 count a miss as a search.
7572 (print_statistics): Update for counter type changes.
7573 (dump_bitmap_statistics): Likewise. Print headers such that they
7574 are properly lined up with the printed counters.
7576 2013-03-07 Jakub Jelinek <jakub@redhat.com>
7578 PR tree-optimization/56559
7579 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
7580 check that it has only a single use.
7582 2013-03-07 Richard Biener <rguenther@suse.de>
7584 * doc/invoke.texi (fwhole-program): Discourage use in combination
7587 2013-03-06 Jakub Jelinek <jakub@redhat.com>
7589 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
7591 PR tree-optimization/56539
7592 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
7593 instead of GSI_CONTINUE_LINKING as last argument to
7594 force_gimple_operand_gsi. Adjust function comment.
7596 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
7600 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
7601 promoted mode, convert the result back to the original mode.
7603 2013-03-06 Richard Biener <rguenther@suse.de>
7606 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
7607 (insert_updated_phi_nodes_compare_uids): New function.
7608 (update_ssa): Sort symbols_to_rename after UID before
7609 traversing it to insert PHI nodes.
7611 2013-03-06 Richard Biener <rguenther@suse.de>
7614 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
7615 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
7618 2013-02-13 Richard Biener <rguenther@suse.de>
7621 * varasm.c (output_constant_def_1): Get the decl representing
7622 the constant as argument.
7623 (output_constant_def): Wrap output_constant_def_1.
7624 (make_decl_rtl): Use output_constant_def_1 with the decl
7625 representing the constant.
7626 (build_constant_desc): Optionally re-use a decl already
7627 representing the constant.
7628 (tree_output_constant_def): Adjust.
7630 2013-03-06 Joey Ye <joey.ye@arm.com>
7633 * gcc.c (convert_white_space): New function.
7634 (main): Handles white space in function name.
7636 2013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
7639 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
7640 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
7641 to SH_DIV_CALL_TABLE for TARGET_SH2.
7642 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
7644 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
7647 2013-03-05 Sterling Augustine <saugustine@google.com>
7648 Cary Coutant <ccoutant@google.com>
7651 * dwarf2out.c (resolve_addr): Don't call
7652 remove_loc_list_addr_table_entries a second time for the same
7655 2013-03-05 Jakub Jelinek <jakub@redhat.com>
7658 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
7659 (avoid_complex_debug_insns): New function.
7660 (expand_debug_locations): Call it.
7662 PR rtl-optimization/56484
7663 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
7664 lifetimes of hard registers on small register class machines.
7666 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
7668 * config/microblaze/microblaze-protos.h: Rename
7669 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
7670 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
7672 (microblaze_fast_interrupt_function_p): New function.
7673 (microblaze_is_interrupt_handler): Rename to
7674 microblaze_is_interrupt_variant and add fast_interrupt check.
7675 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
7676 (save_restore_insns): Likewise.
7677 (compute_frame_size): Likewise.
7678 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
7679 (microblaze_globalize_label): Likewise.
7680 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
7681 * config/microblaze/microblaze.md: Use wrapper
7682 microblaze_is_interrupt_variant.
7684 2013-03-05 Kai Tietz <ktietz@redhat.com>
7686 * sdbout.c (sdbout_one_type): Switch to current function's section
7687 supporting cold/hot.
7689 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
7691 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
7694 2013-03-05 Jakub Jelinek <jakub@redhat.com>
7697 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
7698 if VALGRIND_GET_VBITS is defined, temporarily make object
7699 memory all defined, and restore previous valgrind addressability
7700 and definability afterwards. Free this_object at the end.
7703 * lra.c (lra): Call lra_clear_live_ranges if live_p,
7704 right before calling lra_create_live_ranges, also call it
7705 when clearing live_p. Only call lra_clear_live_ranges
7706 at the end if live_p.
7709 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
7711 2013-03-05 Richard Biener <rguenther@suse.de>
7713 PR tree-optimization/56521
7714 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
7717 2013-03-05 Steven Bosscher <steven@gcc.gnu.org>
7720 * except.h (remove_unreachable_eh_regions): New prototype.
7721 * except.c (remove_eh_handler_splicer): New function, split out
7722 of remove_eh_handler.
7723 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
7724 warning about running it on many EH regions one at a time.
7725 (remove_unreachable_eh_regions_worker): New function, walk the
7726 EH tree in depth-first order and remove non-marked regions.
7727 (remove_unreachable_eh_regions): New function.
7728 * tree-eh.c (mark_reachable_handlers): New function, split out
7729 from remove_unreachable_handlers.
7730 (remove_unreachable_handlers): Use mark_reachable_handlers and
7731 remove_unreachable_eh_regions.
7732 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
7733 and remove_unreachable_eh_regions.
7735 2013-03-05 Richard Biener <rguenther@suse.de>
7738 * loop-init.c (fix_loop_structure): Remove loops in two stages,
7739 not freeing them until the end.
7741 2013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7743 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
7745 2013-03-05 Richard Biener <rguenther@suse.de>
7747 PR tree-optimization/56270
7748 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
7749 of loads after scheduling an SLP instance.
7751 2013-03-05 Jakub Jelinek <jakub@redhat.com>
7753 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
7755 (check_gcc_parallelize): Run guality.exp as a separate job from
7756 vect.exp with unsorted.exp and $(dg_target_exps) separately from
7757 struct-layout-1.exp with stackalign.exp.
7759 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
7762 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
7763 load_index sbitmap even if some bit in it isn't set.
7766 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
7767 (discover_iteration_bound_by_body_walk): Change queues to
7768 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
7769 spelling in comment. Call safe_push on queues[bound_index] directly.
7770 Release queues[queue_index] in every iteration unconditionally.
7771 Release bounds vector.
7774 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
7775 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
7776 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
7779 2013-03-05 Richard Biener <rguenther@suse.de>
7782 * tree-inline.c (remap_blocks_to_null): New function.
7783 (expand_call_inline): When expanding a call stmt without
7784 an associated block inline remap all callee blocks to NULL.
7786 2013-03-05 Jakub Jelinek <jakub@redhat.com>
7788 PR rtl-optimization/56494
7789 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
7790 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
7791 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
7794 * sel-sched-ir.c (free_sched_pools): Release
7795 succs_info_pool.stack[succs_info_pool.max_top] vectors too
7796 if succs_info_pool.max_top isn't -1.
7799 * opts.c (opts_obstack, opts_concat): Moved to...
7800 * opts-common.c (opts_obstack, opts_concat): ... here.
7802 2013-03-04 Jakub Jelinek <jakub@redhat.com>
7805 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
7807 2013-03-04 Martin Jambor <mjambor@suse.cz>
7809 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
7810 all appropriate places.
7812 2013-01-04 Eric Botcazou <ebotcazou@adacore.com>
7814 PR tree-optimization/56424
7815 * ipa-split.c (split_function): Do not set the RSO flag if result is
7816 not by reference and its type is a register type.
7818 2013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
7820 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New.
7821 (microblaze_legitimate_pic_operand): Likewise.
7822 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): Call
7823 new function microblaze_legitimate_pic_operand.
7824 * config/microblaze/microblaze-protos.h
7825 (microblaze_legitimate_pic_operand): Declare.
7827 2013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
7829 * config/microblaze/predicates.md (call_insn_simple_operand):
7830 New predicate for supported rtx code types.
7831 * config/microblaze/microblaze.md (call_internal1): Use
7832 call_insn_simple_operand predicate.
7834 2013-03-04 Jakub Jelinek <jakub@redhat.com>
7837 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
7838 partitions.ordered_remove.
7841 * tree-vect-stmts.c (vectorizable_conversion): Don't call
7842 vec_oprnds0.create (1) for modifier == NONE.
7845 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
7846 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
7847 vec_oprnds1 right before pushing anything to it for
7851 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
7852 set nbbs to 0 instead of having separate code path.
7853 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
7854 instead of false as last argument if returning NULL.
7856 2013-03-03 Sandra Loosemore <sandra@codesourcery.com>
7858 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
7859 the attribute is now called "target" instead of "option".
7860 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
7861 * doc/tm.texi.in (Target Attributes): Likewise document the correct
7862 attribute/pragma name for TARGET_OPTION_VALID_P and
7863 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
7864 * doc/tm.texi: Regenerated.
7866 2013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
7868 * config/microblaze/microblaze.c:
7869 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
7870 * config/microblaze/microblaze.h: Add -mxl-reorder to
7872 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
7873 instructions emitted if TARGET_REORDER.
7874 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
7875 or 0 for -m/-mno case, but initialises as 2 to detect default use case
7878 2013-03-01 Xinliang David Li <davidxl@google.com>
7880 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
7883 2013-03-01 Jakub Jelinek <jakub@redhat.com>
7886 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
7887 vector even when returning true. Fix up function comment formatting.
7890 * ira-build.c (ira_loop_nodes_count): New variable.
7891 (create_loop_tree_nodes): Initialize it.
7892 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
7895 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
7896 method on dr_chain and result_chain.
7897 * tree-vect-stmts.c (vectorizable_store): Only call
7898 result_chain.create if j == 0.
7901 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
7902 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
7903 before overwriting it.
7905 2013-03-01 Tobias Burnus <burnus@net-b.de>
7907 * doc/extended.texi (C Extensions): Change order in @menu
7909 (Other MIPS Built-in Functions): Move last MIPS entry before
7910 "picoChip Built-in Functions".
7911 (SH Built-in Functions): Move after RX Built-in Functions.
7912 * doc/gcc.texi (Introduction): Change order in @menu to match @node.
7913 * doc/md.texi (Constraints): Ditto.
7914 * gty.texi (Type Information): Ditto.
7915 (User-provided marking routines for template types): Make subsection.
7916 * doc/invoke.texi (AArch64 Options): Move before
7917 "Adapteva Epiphany Options".
7919 2013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
7920 Jakub Jelinek <jakub@redhat.com>
7923 * asan.c (gate_asan): Lookup no_sanitize_address instead of
7924 no_address_safety_analysis attribute.
7925 * doc/extend.texi (no_address_safety_attribute): Rename to
7926 no_sanitize_address attribute, mention no_address_safety_analysis
7927 attribute as deprecated alias.
7929 2013-02-28 Jakub Jelinek <jakub@redhat.com>
7932 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
7933 type to vec<vec<tree> > *.
7934 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
7935 to be vec<tree> instead of vec<tree> *, set vec_defs
7936 to vNULL and call vec_defs.create (number_of_vects), adjust other
7938 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
7939 vectorizable_condition): Adjust vect_get_slp_defs callers.
7941 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
7943 * config/aarch64/aarch64.c
7944 (aarch64_float_const_representable): Remove unused variable.
7946 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
7948 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
7950 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
7952 * config/aarch64/aarch64-builtins.c
7953 (aarch64_init_simd_builtins): Make static.
7955 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
7957 * config/aarch64/aarch64.c
7958 (aarch64_simd_make_constant): Make static.
7960 2013-02-28 Martin Jambor <mjambor@suse.cz>
7962 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
7963 with no initialization to the RHS of debug statements.
7965 2013-02-28 Martin Jambor <mjambor@suse.cz>
7967 PR tree-optimization/56294
7968 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
7970 (get_access_replacement): Do not call create_access_replacement.
7971 Assert a replacement exists.
7972 (get_repl_default_def_ssa_name): Create the replacement declaration
7975 2013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7977 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
7980 2013-02-28 Marek Polacek <polacek@redhat.com>
7982 PR rtl-optimization/56466
7983 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
7984 if we're changing a loop.
7985 (peel_loops_completely): Likewise.
7987 2013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
7990 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
7992 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
7995 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
7996 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
7997 INTX_FTYPE_FX, FX_FTYPE_INTX.
7998 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
8000 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
8002 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
8003 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
8004 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
8005 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
8006 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
8007 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
8008 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
8009 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
8010 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
8011 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
8012 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
8013 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
8014 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
8015 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
8016 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
8017 (avrxmega6): Increase max flash segments from 5 to 6.
8018 * config/avr/t-multilib: Regenerate.
8019 * config/avr/avr-tables.opt: Regenerate.
8020 * doc/avr-mmcu.texi: Regenerate.
8022 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
8024 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
8025 (avr_device_to_arch): Rename to avr_device_to_ld.
8026 (avr_device_to_as): New prototype.
8027 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
8028 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
8029 * config/avr/driver-avr.c (avr_device_to_as): New.
8030 (avr_device_to_arch): Rename to avr_device_to_ld.
8032 2013-02-27 Jakub Jelinek <jakub@redhat.com>
8035 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
8036 method on dr_chain and result_chain.
8039 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
8040 pointer_set_destroy on not_executed_last_iteration.
8043 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
8046 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
8047 FOR_EACH_DEFINED_FUNCTION when freeing state.
8050 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
8052 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
8056 * ipa-cp.c (decide_whether_version_node): Call vec_free on
8057 known_aggs[i].items and release known_aggs vector.
8060 * ipa-reference.c (propagate): Free node_info even for alias nodes.
8062 2013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
8064 * config/microblaze/microblaze.c (microblaze_emit_compare):
8065 Use xor for EQ/NE comparisions.
8066 * config/microblaze/microblaze.md (cstoresf4): Add constraints
8067 (cbranchsf4): Adjust operator to comparison_operator.
8069 2013-02-27 Jakub Jelinek <jakub@redhat.com>
8072 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
8074 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
8075 vec_safe_push, always update *slot.
8076 (redirect_edge_var_map_clear): Use vec_free.
8077 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
8078 (free_var_map_entry): Use vec_free.
8079 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
8080 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
8082 2013-02-27 Andrey Belevantsev <abel@ispras.ru>
8085 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
8086 when the may_trap_p bit of the exprs being merged differs.
8087 Reorder tests for speculativeness in the logical and operator.
8089 2013-02-27 Jakub Jelinek <jakub@redhat.com>
8091 * incpath.c (add_standard_paths): Use reconcat instead of concat
8092 where appropriate and avoid leaking memory.
8094 * opts.h: Include obstack.h.
8095 (opts_concat): New prototype.
8096 (opts_obstack): New declaration.
8097 * opts.c (opts_concat): New function.
8098 (opts_obstack): New variable.
8099 (init_options_struct): Call gcc_init_obstack on opts_obstack.
8100 (finish_options): Use opts_concat instead of concat
8101 and XOBNEWVEC instead of XNEWVEC.
8102 * opts-common.c (generate_canonical_option, decode_cmdline_option,
8103 generate_option): Likewise.
8104 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
8105 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
8108 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
8109 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
8111 2013-02-26 Jakub Jelinek <jakub@redhat.com>
8114 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
8116 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
8118 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
8119 (arm_block_move_unaligned_straight): Likewise.
8120 (arm_adjust_block_mem): Likewise.
8122 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
8125 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
8126 temp, cond and label.
8127 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
8130 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
8131 * config/c6x/c6x.h (dbx_register_map): Update declaration.
8134 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
8135 of prologue/epilogue functions.
8138 * config/tilegx/tilegx.c (tilegx_expand_prologue):
8139 Remove unused variable cfa_offset.
8140 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
8143 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
8144 type promotion to unsigned.
8147 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
8148 for HOST_WIDE_INT of 32 bit / same size as int.
8149 (arm_block_move_unaligned_straight): Likewise.
8150 (arm_adjust_block_mem): Likewise.
8153 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
8156 2013-02-26 Marek Polacek <polacek@redhat.com>
8158 PR tree-optimization/56426
8159 * tree-ssa-loop.c (tree_ssa_loop_init): Always call
8162 2013-02-26 Richard Biener <rguenther@suse.de>
8165 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
8166 unused variable loops.
8168 2013-02-26 Jakub Jelinek <jakub@redhat.com>
8170 PR tree-optimization/56448
8171 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
8172 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
8173 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
8174 later operands of the references, or even first operand for
8175 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
8177 PR tree-optimization/56443
8178 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
8179 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
8180 to type_for_mode langhook.
8182 2013-02-25 Matt Turner <mattst88@gmail.com>
8184 * doc/invoke.texi: Document r4700.
8186 2013-02-25 Richard Biener <rguenther@suse.de>
8188 PR tree-optimization/56175
8189 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
8191 (simplify_bitwise_binary): ... here. Also guard the conversion
8192 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
8194 2013-02-25 Catherine Moore <clm@codesourcery.com>
8197 2013-02-24 Catherine Moore <clm@codesourcery.com>
8198 Maciej W. Rozycki <macro@codesourcery.com>
8199 Tom de Vries <tom@codesourcery.com>
8200 Nathan Sidwell <nathan@codesourcery.com>
8201 Iain Sandoe <iain@codesourcery.com>
8202 Nathan Froyd <froydnj@codesourcery.com>
8203 Chao-ying Fu <fu@mips.com>
8205 * doc/extend.texi (micromips, nomicromips, nocompression):
8206 Document new function attributes.
8207 * doc/invoke.texi (minterlink-compressed, mmicromips,
8208 m14k, m14ke, m14kec): Document new options.
8209 (minterlink-mips16): Update documentation.
8210 * doc/md.texi (ZC, ZD): Document new constraints.
8211 * configure.ac (gcc_cv_as_micromips): Check if linker
8212 supports the .set micromips directive.
8213 * configure: Regenerate.
8214 * config.in: Regenerate.
8215 * config/mips/mips-tables.opt: Regenerate.
8216 * config/mips/micromips.md: New file.
8217 * constraints.md (ZC, AD): New constraints.
8218 * config/mips/predicates.md (movep_src_register): New predicate.
8219 (movep_src_operand): New predicate.
8220 (non_volatile_mem_operand): New predicate.
8221 * config/mips/mips.md (multimem): New type.
8222 (length): Differentiate between 17-bit and 18-bit branch offsets.
8223 (MOVEP1, MOVEP2): New mode iterator.
8224 (mov_<load>l): Use ZC constraint.
8225 (mov_<load>r): Likewise.
8226 (mov_<store>l): Likewise.
8227 (mov_<store>r): Likewise.
8228 (*branch_equality<mode>_inverted): Add microMIPS support.
8229 (*branch_equality<mode>): Likewise.
8230 (*jump_absolute): Likewise.
8231 (indirect_jump_<mode>): Likewise.
8232 (tablejump_<mode>): Likewise.
8233 (<optab>_internal): Likewise.
8234 (sibcall_internal): Likewise.
8235 (sibcall_value_internal): Likewise.
8236 (prefetch): Use constraint ZD.
8237 * config/mips/mips.opt (minterlink-compressed): New option.
8238 (minterlink-mips16): Now an alias for minterlink-compressed.
8239 (mmicromips): New option.
8240 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
8241 (compare_and_swap_12): Likewise.
8242 (sync_add<mode>): Likewise.
8243 (sync_<optab>_12): Likewise.
8244 (sync_old_<optab>_12): Likewise.
8245 (sync_new_<optab>_12): Likewise.
8246 (sync_nand_12): Likewise.
8247 (sync_old_nand_12): Likewise.
8248 (sync_new_nand_12): Likewise.
8249 (sync_sub<mode>): Likewise.
8250 (sync_old_add<mode>): Likewise.
8251 (sync_old_sub<mode>): Likewise.
8252 (sync_new_add<mode>): Likewise.
8253 (sync_new_sub<mode>): Likewise.
8254 (sync_<optab><mode>): Likewise.
8255 (sync_old_<optab><mode>): Likewise.
8256 (sync_new_<optab><mode>): Likewise.
8257 (sync_nand<mode>): Likewise.
8258 (sync_old_nand<mode>): Likewise.
8259 (sync_new_nand<mode>): Likewise.
8260 (sync_lock_test_and_set<mode>): Likewise.
8261 (test_and_set_12): Likewise.
8262 (atomic_compare_and_swap<mode>): Likewise.
8263 (atomic_exchange<mode>_llsc): Likewise.
8264 (atomic_fetch_add<mode>_llsc): Likewise.
8265 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
8266 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
8267 (umips_save_restore_pattern_p): Likewise.
8268 (umips_load_store_pair_p): Likewise.
8269 (umips_output_load_store_pair): Likewise.
8270 (umips_movep_target_p): Likewise.
8271 (umips_12bit_offset_address_p): Likewise.
8272 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
8273 (mips_base_mips16): Rename this...
8274 (mips_base_compression_flags): ...to this. Update all uses.
8275 (mips_attribute_table): Add micromips, nomicromips and nocompression.
8276 (mips_mips16_decl_p): Delete.
8277 (mips_nomips16_decl_p): Delete.
8278 (mips_get_compress_on_flags): New function.
8279 (mips_get_compress_off_flags): New function.
8280 (mips_get_compress_mode): New function.
8281 (mips_get_compress_on_name): New function.
8282 (mips_get_compress_off_name): New function.
8283 (mips_insert_attributes): Support multiple compression types.
8284 (mips_merge_decl_attributes): Likewise.
8285 (umips_12bit_offset_address_p): New function.
8286 (mips_start_function_definition): Emit .set micromips directive.
8287 (mips_call_may_need_jalx_p): New function.
8288 (mips_function_ok_for_sibcall): Add microMIPS support.
8289 (mips_print_operand_punctuation): Support short delay slots and
8291 (umips_swm_mask, umips_swm_encoding): New.
8292 (umips_build_save_restore): New function.
8293 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
8294 (was_mips16_p): Remove.
8295 (old_compression_mode): New.
8296 (mips_set_compression_mode): New function.
8297 (mips_set_current_function): Add microMIPS support.
8298 (mips_option_override): Likewise.
8299 (umips_save_restore_pattern_p): New function.
8300 (umips_output_save_restore): New function.
8301 (umips_load_store_pair_p_1): New function.
8302 (umips_load_store_pair_p): New function.
8303 (umips_output_load_store_pair_1): New function.
8304 (umips_output_load_store_pair): New function.
8305 (umips_movep_target_p) New function.
8306 (mips_prepare_pch_save): Add microMIPS support.
8307 * config/mips/mips.h (TARGET_COMPRESSION): New.
8308 (TARGET_CPU_CPP_BUILTINS): Update macro
8309 to use new compression flags and to support microMIPS.
8310 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
8311 (MIPS_ARCH_FLOAT_SPEC): Likewise.
8312 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
8313 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
8314 (ASM_SPEC): Support mmicromips and mno-micromips.
8315 (M16STORE_REG_P): New macro.
8316 (MIPS_CALL): Support TARGET_MICROMIPS.
8317 (MICROMIPS_J): New macro.
8318 (mips_base_mips16): Rename this...
8319 (mips_base_compression_flags): ...to this.
8320 (UMIPS_12BIT_OFFSET_P): New macro.
8321 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
8322 (MULTILIB_DIRNAMES): Likewise.
8324 2013-02-25 Tom de Vries <tom@codesourcery.com>
8326 PR rtl-optimization/56131
8327 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
8328 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
8329 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
8331 2013-02-25 Tobias Burnus <burnus@net-b.de>
8333 * doc/invoke.texi (-fsanitize=): Move from optimization
8334 to debugging options.
8336 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
8338 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
8340 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
8341 Alexander Monakov <amonakov@ispras.ru>
8344 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
8345 flush pending lists also on non-jumps. Adjust comment.
8347 2013-02-24 Catherine Moore <clm@codesourcery.com>
8348 Maciej W. Rozycki <macro@codesourcery.com>
8349 Tom de Vries <tom@codesourcery.com>
8350 Nathan Sidwell <nathan@codesourcery.com>
8351 Iain Sandoe <iain@codesourcery.com>
8352 Nathan Froyd <froydnj@codesourcery.com>
8353 Chao-ying Fu <fu@mips.com>
8355 * doc/extend.texi (micromips, nomicromips, nocompression):
8356 Document new function attributes.
8357 * doc/invoke.texi (minterlink-compressed, mmicromips,
8358 m14k, m14ke, m14kec): Document new options.
8359 (minterlink-mips16): Update documentation.
8360 * doc/md.texi (ZC, ZD): Document new constraints.
8361 * configure.ac (gcc_cv_as_micromips): Check if linker
8362 supports the .set micromips directive.
8363 * configure: Regenerate.
8364 * config.in: Regenerate.
8365 * config/mips/mips-tables.opt: Regenerate.
8366 * config/mips/micromips.md: New file.
8367 * constraints.md (ZC, AD): New constraints.
8368 * config/mips/predicates.md (movep_src_register): New predicate.
8369 (movep_src_operand): New predicate.
8370 (non_volatile_mem_operand): New predicate.
8371 * config/mips/mips.md (multimem): New type.
8372 (length): Differentiate between 17-bit and 18-bit branch offsets.
8373 (MOVEP1, MOVEP2): New mode iterator.
8374 (mov_<load>l): Use ZC constraint.
8375 (mov_<load>r): Likewise.
8376 (mov_<store>l): Likewise.
8377 (mov_<store>r): Likewise.
8378 (*branch_equality<mode>_inverted): Add microMIPS support.
8379 (*branch_equality<mode>): Likewise.
8380 (*jump_absolute): Likewise.
8381 (indirect_jump_<mode>): Likewise.
8382 (tablejump_<mode>): Likewise.
8383 (<optab>_internal): Likewise.
8384 (sibcall_internal): Likewise.
8385 (sibcall_value_internal): Likewise.
8386 (prefetch): Use constraint ZD.
8387 * config/mips/mips.opt (minterlink-compressed): New option.
8388 (minterlink-mips16): Now an alias for minterlink-compressed.
8389 (mmicromips): New option.
8390 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
8391 (compare_and_swap_12): Likewise.
8392 (sync_add<mode>): Likewise.
8393 (sync_<optab>_12): Likewise.
8394 (sync_old_<optab>_12): Likewise.
8395 (sync_new_<optab>_12): Likewise.
8396 (sync_nand_12): Likewise.
8397 (sync_old_nand_12): Likewise.
8398 (sync_new_nand_12): Likewise.
8399 (sync_sub<mode>): Likewise.
8400 (sync_old_add<mode>): Likewise.
8401 (sync_old_sub<mode>): Likewise.
8402 (sync_new_add<mode>): Likewise.
8403 (sync_new_sub<mode>): Likewise.
8404 (sync_<optab><mode>): Likewise.
8405 (sync_old_<optab><mode>): Likewise.
8406 (sync_new_<optab><mode>): Likewise.
8407 (sync_nand<mode>): Likewise.
8408 (sync_old_nand<mode>): Likewise.
8409 (sync_new_nand<mode>): Likewise.
8410 (sync_lock_test_and_set<mode>): Likewise.
8411 (test_and_set_12): Likewise.
8412 (atomic_compare_and_swap<mode>): Likewise.
8413 (atomic_exchange<mode>_llsc): Likewise.
8414 (atomic_fetch_add<mode>_llsc): Likewise.
8415 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
8416 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
8417 (umips_save_restore_pattern_p): Likewise.
8418 (umips_load_store_pair_p): Likewise.
8419 (umips_output_load_store_pair): Likewise.
8420 (umips_movep_target_p): Likewise.
8421 (umips_12bit_offset_address_p): Likewise.
8422 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
8423 (mips_base_mips16): Rename this...
8424 (mips_base_compression_flags): ...to this. Update all uses.
8425 (mips_attribute_table): Add micromips, nomicromips and nocompression.
8426 (mips_mips16_decl_p): Delete.
8427 (mips_nomips16_decl_p): Delete.
8428 (mips_get_compress_on_flags): New function.
8429 (mips_get_compress_off_flags): New function.
8430 (mips_get_compress_mode): New function.
8431 (mips_get_compress_on_name): New function.
8432 (mips_get_compress_off_name): New function.
8433 (mips_insert_attributes): Support multiple compression types.
8434 (mips_merge_decl_attributes): Likewise.
8435 (umips_12bit_offset_address_p): New function.
8436 (mips_start_function_definition): Emit .set micromips directive.
8437 (mips_call_may_need_jalx_p): New function.
8438 (mips_function_ok_for_sibcall): Add microMIPS support.
8439 (mips_print_operand_punctuation): Support short delay slots and
8441 (umips_swm_mask, umips_swm_encoding): New.
8442 (umips_build_save_restore): New function.
8443 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
8444 (was_mips16_p): Remove.
8445 (old_compression_mode): New.
8446 (mips_set_compression_mode): New function.
8447 (mips_set_current_function): Add microMIPS support.
8448 (mips_option_override): Likewise.
8449 (umips_save_restore_pattern_p): New function.
8450 (umips_output_save_restore): New function.
8451 (umips_load_store_pair_p_1): New function.
8452 (umips_load_store_pair_p): New function.
8453 (umips_output_load_store_pair_1): New function.
8454 (umips_output_load_store_pair): New function.
8455 (umips_movep_target_p) New function.
8456 (mips_prepare_pch_save): Add microMIPS support.
8457 * config/mips/mips.h (TARGET_COMPRESSION): New.
8458 (TARGET_CPU_CPP_BUILTINS): Update macro
8459 to use new compression flags and to support microMIPS.
8460 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
8461 (MIPS_ARCH_FLOAT_SPEC): Likewise.
8462 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
8463 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
8464 (ASM_SPEC): Support mmicromips and mno-micromips.
8465 (M16STORE_REG_P): New macro.
8466 (MIPS_CALL): Support TARGET_MICROMIPS.
8467 (MICROMIPS_J): New macro.
8468 (mips_base_mips16): Rename this...
8469 (mips_base_compression_flags): ...to this.
8470 (UMIPS_12BIT_OFFSET_P): New macro.
8471 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
8472 (MULTILIB_DIRNAMES): Likewise.
8474 2013-02-24 Jakub Jelinek <jakub@redhat.com>
8477 * target-globals.c (save_target_globals): For init_reg_sets and
8478 target_reinit remporarily set this_fn_optabs to this_target_optabs.
8480 2013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
8482 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
8483 * config/aarch64/t-aarch64
8484 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
8486 2013-02-22 Vladimir Makarov <vmakarov@redhat.com>
8489 * lra-constraints.c (process_alt_operands): Reload operand
8490 conflicting with earlier clobber only if no more other conflicting
8493 2013-02-22 Jakub Jelinek <jakub@redhat.com>
8496 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
8497 if not linking a shared library.
8499 2013-02-22 Seth LaForge <sethml@google.com>
8501 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
8503 2013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
8505 * config/arm/arm.md (split for extendsidi): Update condition.
8506 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
8507 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
8508 (qhs_zextenddi_cstr): Likewise.
8510 2013-02-21 Jakub Jelinek <jakub@redhat.com>
8513 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
8514 avoid signed wrapping.
8515 (expand_mult): Handle properly multiplication by
8516 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
8517 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
8518 in the compiler if coeff is HOST_WIDE_INT_MIN.
8519 (expand_divmod): Don't make ext_op1 static, change it's type to uhwi.
8520 Avoid undefined behavior in -INTVAL (op1).
8522 PR rtl-optimization/50339
8523 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
8525 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
8526 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
8527 into splitting_ashiftrt field.
8528 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
8530 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
8533 2013-02-20 Aldy Hernandez <aldyh@redhat.com>
8536 * trans-mem.c (execute_tm_mark): Do not expand transactions that
8537 are sure to go irrevocable.
8539 2013-02-21 Hans-Peter Nilsson <hp@axis.com>
8541 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
8542 scalars are valid operands.
8544 2013-02-21 Martin Jambor <mjambor@suse.cz>
8546 PR tree-optimization/56310
8547 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
8548 only matching indices and non-negative final offsets.
8549 (intersect_aggregates_with_edge): Pass src_idx to
8550 agg_replacements_to_vector. Pass src_idx insstead of index to
8551 intersect_with_agg_replacements.
8553 2013-02-21 Martin Jambor <mjambor@suse.cz>
8555 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
8556 instead of hard-wired defaults.
8558 2013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
8560 * doc/invoke.texi (MIPS Options): Update documentation of the
8561 floating-point multiply-accumulate instruction restrictions.
8563 2013-02-21 Kostya Serebryany <kcc@google.com>
8565 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
8566 asan_shadow_offset on x86_64 linux.
8568 2013-02-21 Richard Biener <rguenther@suse.de>
8570 PR tree-optimization/56415
8572 2013-02-11 Richard Biener <rguenther@suse.de>
8574 PR tree-optimization/56273
8575 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
8578 2013-02-21 Jakub Jelinek <jakub@redhat.com>
8581 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
8585 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
8586 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
8588 2013-02-20 Jan Hubicka <jh@suse.cz>
8590 PR tree-optimization/56265
8591 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph when
8592 target is referenced for first time.
8594 2013-02-20 Richard Biener <rguenther@suse.de>
8596 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
8597 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
8598 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
8599 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
8600 not return anything.
8601 (rename_ssa_copies): Do not remove unused locals.
8602 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
8603 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
8604 * passes.c (execute_function_todo): Do not schedule unused locals
8605 removal if cleanup_tree_cfg did something.
8606 * tree-ssa-live.c (remove_unused_locals): Dump statistics
8607 about the number of removed locals.
8609 2013-02-20 Richard Biener <rguenther@suse.de>
8611 PR tree-optimization/56398
8612 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip
8615 2013-02-20 Martin Jambor <mjambor@suse.cz>
8617 PR tree-optimization/55334
8618 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
8619 restricted pointers to arrays.
8621 2013-02-20 Richard Biener <rguenther@suse.de>
8622 Jakub Jelinek <jakub@redhat.com>
8624 PR tree-optimization/56396
8625 * tree-ssa-ccp.c (n_const_val): New static variable.
8626 (get_value): Return NULL for SSA names we don't have a lattice
8628 (ccp_initialize): Initialize n_const_val.
8629 * tree-ssa-copy.c (n_copy_of): New static variable.
8630 (init_copy_prop): Initialize n_copy_of.
8631 (get_value): Return NULL_TREE for SSA names we don't have a
8634 2013-02-20 Martin Jambor <mjambor@suse.cz>
8636 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
8638 2013-02-20 Richard Biener <rguenther@suse.de>
8640 * genpreds.c (write_lookup_constraint): Do not compare first
8641 letter of the constraint again.
8643 2013-02-20 Richard Biener <rguenther@suse.de>
8645 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
8647 (get_use_iv_cost): Terminate hashtable walk when coming across
8650 2013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
8652 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
8653 reassociation for avx2 targets.
8655 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
8657 * config/microblaze/microblaze.c: microblaze_has_clz = 0
8658 Add version check for v8.10.a to enable microblaze_has_clz
8659 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
8660 version and TARGET_PATTERN_COMPARE check
8661 * config/microblaze/microblaze.md: New clzsi2 instruction
8663 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
8665 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
8666 function before branching.
8668 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
8670 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
8672 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
8674 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
8677 * sel-sched.c: Include ira.h.
8678 (implicit_clobber_conflict_p): New function.
8679 (moveup_expr): Use it.
8680 * Makefile.in (sel-sched.o): Depend on ira.h.
8682 2013-02-19 Richard Biener <rguenther@suse.de>
8684 PR tree-optimization/56384
8685 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
8686 (vn_hash_type): Split out from ...
8687 (vn_hash_constant_with_type): ... here.
8688 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
8689 (vn_phi_eq): Compare types from vn_phi_s structure.
8690 (vn_phi_lookup): Populate vn_phi_s type.
8691 (vn_phi_insert): Likewise.
8693 2013-02-19 Jakub Jelinek <jakub@redhat.com>
8695 PR tree-optimization/56350
8696 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
8697 if haven't found reduction or nested cycle operand, rather than
8698 asserting we must find it.
8700 PR tree-optimization/56381
8701 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
8704 2013-02-18 Aldy Hernandez <aldyh@redhat.com>
8705 Jakub Jelinek <jakub@redhat.com>
8708 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
8709 (swap_optab_enable): Same.
8710 (init_all_optabs): Use argument instead of global.
8711 * tree.h (struct tree_optimization_option): New field target_optabs.
8712 * expr.h (init_all_optabs): Add argument to prototype.
8713 (TREE_OPTIMIZATION_OPTABS): New.
8714 (save_optabs_if_changed): Protoize.
8715 * optabs.h: Declare this_fn_optabs.
8716 * optabs.c (save_optabs_if_changed): New.
8717 Declare this_fn_optabs.
8718 (init_optabs): Add argument to init_all_optabs() call.
8719 * function.c (invoke_set_current_function_hook): Handle per
8721 * function.h (struct function): New field optabs.
8722 * config/mips/mips.c (mips_set_mips16_mode): Handle when
8723 optimization_current_node has changed.
8724 * target-globals.h (save_target_globals_default_opts): Protoize.
8725 * target-globals.c (save_target_globals_default_opts): New.
8727 2013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8730 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
8731 registers %fr12 and %fr12R as call used.
8734 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
8735 and HImode, require all displacements to be an integer multiple of
8737 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
8738 only allow QImode and HImode when reload is in progress and strict is
8739 true. Likewise for symbolic addresses. Use base14_operand to check
8740 displacements in REG+BASE addresses.
8742 2013-02-18 Richard Biener <rguenther@suse.de>
8744 PR tree-optimization/56366
8745 * tree-vect-loop.c (get_initial_def_for_induction): Properly
8746 handle sign-conversion of outer-loop initial induction value.
8748 2013-02-18 Richard Biener <rguenther@suse.de>
8751 * cfghooks.c (merge_blocks): If we merge a latch into another
8752 block adjust references to it.
8753 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
8754 (verify_loop_structure): Verify that a recorded latch is in fact
8757 2013-02-18 Richard Biener <rguenther@suse.de>
8759 PR tree-optimization/56321
8760 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
8761 order SSA name release and virtual operand unlinking.
8763 2013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
8765 * config/microblaze/microblaze.md (save_stack_block): Define.
8766 (restore_stack_block): Likewise.
8768 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
8770 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
8771 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
8772 * config/microblaze/microblaze.c (microblaze_option_override):
8773 Bail out early for PIC modes when target does not support PIC.
8775 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
8777 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8778 Replace with a microblaze version.
8779 (microblaze_trampoline_init): Adapt for microblaze.
8780 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8783 2013-02-16 Jakub Jelinek <jakub@redhat.com>
8784 Dodji Seketeli <dodji@redhat.com>
8787 * asan.c (get_mem_refs_of_builtin_call): White space and style
8789 (instrument_mem_region_access): Do not forget to always put
8790 instrumentation of the of 'base' and 'base + len' in a "if (len !=
8791 0) statement, even for cases where either 'base' or 'base + len'
8792 are not instrumented -- because they have been previously
8793 instrumented. Simplify the logic by putting all the statements
8794 instrument 'base + len' inside a sequence, and then insert that
8795 sequence right before the current insertion point. Then, to
8796 instrument 'base + len', just get an iterator on that statement.
8797 And do not forget to update the pointer to iterator the function
8798 received as argument.
8800 2013-02-15 Vladimir Makarov <vmakarov@redhat.com>
8802 PR rtl-optimization/56348
8803 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
8805 2013-02-15 Steven Bosscher <steven@gcc.gnu.org>
8807 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
8808 (clean_graph_dump_file): Pass base to start_graph_dump.
8810 2013-02-14 Richard Henderson <rth@redhat.com>
8813 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
8815 2013-02-14 Steven Bosscher <steven@gcc.gnu.org>
8817 * collect2-aix.h: Define F_LOADONLY.
8819 2013-02-14 Richard Biener <rguenther@suse.de>
8822 * varasm.c (output_constant_def_1): Get the decl representing
8823 the constant as argument.
8824 (output_constant_def): Wrap output_constant_def_1.
8825 (make_decl_rtl): Use output_constant_def_1 with the decl
8826 representing the constant.
8827 (build_constant_desc): Optionally re-use a decl already
8828 representing the constant.
8829 (tree_output_constant_def): Adjust.
8831 2013-02-14 Dodji Seketeli <dodji@redhat.com>
8834 * asan.c (instrument_builtin_call): Really put the length of the
8835 second source argument into src1_len.
8837 2013-02-13 Jakub Jelinek <jakub@redhat.com>
8839 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
8840 argument. If it is false, don't create edge from then_bb to
8842 (insert_if_then_before_iter): Pass true to it.
8843 (build_check_stmt): Pass false to it.
8844 (transform_statements): Flush hash table only on extended basic
8845 block boundaries, rather than at the beginning of every bb.
8846 Don't flush hash table on nonfreeing_call_p calls.
8847 * tree-flow.h (nonfreeing_call_p): New prototype.
8848 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
8850 2013-02-13 David S. Miller <davem@davemloft.net>
8852 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
8854 2013-02-13 Vladimir Makarov <vmakarov@redhat.com>
8857 * ira.c (max_regno_before_ira): Move from ...
8859 (fix_reg_equiv_init): Use max_regno_before_ira instead of
8862 2013-02-13 Jakub Jelinek <jakub@redhat.com>
8864 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
8866 2013-02-13 Richard Biener <rguenther@suse.de>
8869 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
8870 globals in MEM_REFs.
8872 2013-02-13 Richard Biener <rguenther@suse.de>
8874 * loop-init.c (loop_optimizer_init): Clear loop state when
8875 re-initializing preserved loops.
8876 * loop-unswitch.c (unswitch_single_loop): Return whether
8877 we unswitched the loop. Do not verify loop state here.
8878 (unswitch_loops): When we unswitched a loop discover new
8881 2013-02-13 Kostya Serebryany <kcc@google.com>
8883 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset on x86_64
8885 * sanitizer.def: Rename __asan_init to __asan_init_v1.
8887 2013-02-12 Dodji Seketeli <dodji@redhat.com>
8889 Avoid instrumenting duplicated memory access in the same basic block
8890 * Makefile.in (asan.o): Add new dependency on hash-table.h
8891 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
8892 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
8893 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
8894 (free_mem_ref_resources, has_mem_ref_been_instrumented)
8895 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
8896 (get_mem_ref_of_assignment): New functions.
8897 (get_mem_refs_of_builtin_call): Extract from
8898 instrument_builtin_call and tweak a little bit to make it fit with
8900 (instrument_builtin_call): Use the new
8901 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
8902 of is_gimple_builtin_call.
8903 (instrument_derefs, instrument_mem_region_access): Insert the
8904 instrumented memory reference into the hash table.
8905 (maybe_instrument_assignment): Renamed instrument_assignment into
8906 this, and change it to advance the iterator when instrumentation
8907 actually happened and return true in that case. This makes it
8908 homogeneous with maybe_instrument_assignment, and thus give a
8909 chance to callers to be more 'regular'.
8910 (transform_statements): Clear the memory reference hash table
8911 whenever we enter a new BB, when we cross a function call, or when
8912 we are done transforming statements. Use
8913 maybe_instrument_assignment instead of instrumentation. No more
8914 need to special case maybe_instrument_assignment and advance the
8915 iterator after calling it; it's now handled just like
8916 maybe_instrument_call. Update comment.
8918 2013-02-13 Richard Biener <rguenther@suse.de>
8920 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
8921 Fix loop discovery code.
8923 2013-02-12 Vladimir Makarov <vmakarov@redhat.com>
8926 * lra-constraints.c (process_alt_operands): Match early clobber
8927 operand with itself. Check conflicts with earlyclobber only if
8928 the operand is not reloaded. Prefer to reload conflicting operand
8929 if earlyclobber and matching operands are the same.
8931 2013-02-12 Richard Biener <rguenther@suse.de>
8934 * lto-streamer-out.c (write_symbol): Do not output symbols
8935 for hard register variables.
8937 2013-02-12 Georg-Johann Lay <avr@gjlay.de>
8940 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
8941 (umulsidi3_insn, mulsidi3_insn): New insns.
8943 2013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
8945 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
8946 (struct tune_params): Add vec_costs field.
8947 * config/arm/arm.c (arm_builtin_vectorization_cost)
8948 (arm_add_stmt_cost): New functions.
8949 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
8950 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
8951 (arm_default_vec_cost): New struct of type cpu_vec_costs.
8952 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
8953 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
8954 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
8955 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
8957 2013-02-12 Richard Biener <rguenther@suse.de>
8960 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
8961 decls again if possible.
8963 2013-02-12 Richard Biener <rguenther@suse.de>
8966 * tree-ssa.c (verify_ssa_name): Fix check, move
8967 SSA_NAME_IN_FREE_LIST check up.
8969 2013-02-12 Jakub Jelinek <jakub@redhat.com>
8970 Steven Bosscher <steven@gcc.gnu.org>
8972 PR rtl-optimization/56151
8973 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
8974 equal to op0 or op1, and last_insn pattern is CODE operation
8975 with MEM dest and one of the operands matches that MEM.
8977 2013-02-11 Sriraman Tallam <tmsriramgoogle.com>
8979 * doc/extend.texi: Document Function Multiversioning and "default"
8980 parameter string to target attribute.
8981 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
8982 target attribute parameter is "default".
8983 (ix86_compare_version_priority): Remove checks for target attribute.
8984 (ix86_mangle_function_version_assembler_name): Change error to sorry.
8985 Remove check for target attribute equal to NULL. Add assert.
8986 (ix86_generate_version_dispatcher_body): Change error to sorry.
8988 2013-02-11 Iain Sandoe <iain@codesourcery.com>
8989 Jack Howarth <howarth@bromo.med.uc.edu>
8990 Patrick Marlier <patrick.marlier@gmail.com>
8993 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
8994 define ENDFILE_SPEC as TM_DESTRUCTOR.
8995 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
8997 2013-02-11 Alexander Potapenko <glider@google.com>
8998 Jack Howarth <howarth@bromo.med.uc.edu>
8999 Jakub Jelinek <jakub@redhat.com>
9002 * config/darwin.c (cdtor_record): Rename ctor_record.
9003 (sort_cdtor_records): Rename sort_ctor_records.
9004 (finalize_dtors): New routine to sort destructors by
9005 priority before use in assemble_integer.
9006 (machopic_asm_out_destructor): Use finalize_dtors if needed.
9008 2013-02-11 Uros Bizjak <ubizjak@gmail.com>
9010 PR rtl-optimization/56275
9011 * simplify-rtx.c (avoid_constant_pool_reference): Check that
9012 offset is non-negative and less than cmode size before
9013 calling simplify_subreg.
9015 2013-02-11 Richard Biener <rguenther@suse.de>
9017 PR tree-optimization/56264
9018 * cfgloop.h (fix_loop_structure): Adjust prototype.
9019 * loop-init.c (fix_loop_structure): Return the number of
9020 newly discovered loops.
9021 * tree-cfgcleanup.c (repair_loop_structures): When new loops
9022 are discovered, do a full loop-closed SSA rewrite.
9024 2013-02-11 Richard Biener <rguenther@suse.de>
9026 PR tree-optimization/56273
9027 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
9029 (check_array_ref): Fix missing newline in dumps.
9030 (search_for_addr_array): Likewise.
9032 2013-02-09 David Edelsohn <dje.gcc@gmail.com>
9034 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
9036 2013-02-09 Jakub Jelinek <jakub@redhat.com>
9039 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
9041 2013-02-08 Vladimir Makarov <vmakarov@redhat.com>
9043 PR rtl-optimization/56246
9044 * lra-constraints.c (simplify_operand_subreg): Try to reuse
9046 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
9047 constraints are satisfied.
9049 2013-02-08 Jeff Law <law@redhat.com>
9052 * emit-rtl.c (reg_is_parm_p): New function.
9053 * regs.h (reg_is_parm_p): New prototype.
9054 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
9055 callee-clobbered registers.
9057 2013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
9060 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
9061 If there is no implicit builtin declaration, just return NULL.
9063 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
9065 * config/i386/sse.md (FMAMODEM): New mode iterator.
9066 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
9067 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
9069 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
9071 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
9072 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
9073 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
9075 2013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
9077 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
9078 (microblaze*-*-elf): Likewise.
9079 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
9081 * config/microblaze/microblaze-c.c: Add builtin defines for
9082 _LITTLE_ENDIAN and _BIG_ENDIAN.
9083 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
9084 add to TARGET_DEFAULT flags.
9085 Expand ASM_SPEC and LINK_SPEC.
9086 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
9087 * config/microblaze/microblaze.md: Update extendsidi2 and
9088 movdi_internal instructions to use low-order / high-order reg
9090 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
9091 options and inversemask / mask of LITTLE_ENDIAN.
9092 * config/microblaze/t-microblaze: Expand multilib options to
9093 include mlittle-endian (le) and update exceptions patterns.
9095 2013-02-08 Jakub Jelinek <jakub@redhat.com>
9097 PR rtl-optimization/56195
9098 * lra-constraints.c (get_reload_reg): Don't reuse regs
9099 if they have smaller mode than requested, if they have
9100 wider mode than requested, try to return a SUBREG.
9102 PR tree-optimization/56250
9103 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
9104 if type is unsigned and code isn't MULT_EXPR.
9106 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
9108 PR tree-optimization/56064
9109 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
9110 bits according to mode.
9111 * fixed-value.h (fixed_from_double_int)
9112 (const_fixed_from_double_int): Adjust comments.
9114 2013-02-08 Richard Biener <rguenther@suse.de>
9117 * lto-streamer.h (struct data_in): Remove current_file, current_line
9118 and current_col members.
9119 * lto-streamer-out.c (lto_output_location): Stream changed bits
9120 en-block for efficiency.
9121 * lto-streamer-in.c (clear_line_info): Remove.
9122 (lto_input_location): Cache current file, line and column
9123 globally via local statics. Read changed bits en-block.
9124 (input_function): Do not call clear_line_info.
9125 (lto_read_body): Likewise.
9126 (lto_input_toplevel_asms): Likewise.
9128 2013-02-08 Michael Matz <matz@suse.de>
9130 PR tree-optimization/52448
9131 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
9132 (nt_call_phase): New static.
9133 (add_or_mark_expr): Only mark accesses with newer phase than any
9135 (nonfreeing_call_p): New.
9136 (nt_init_block): Update nt_call_phase, mark blocks as visited.
9137 (nt_fini_block): Keep blocks marked as visited.
9138 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
9140 2013-02-08 Richard Biener <rguenther@suse.de>
9142 * ira.c (ira): Free broken dominator information.
9144 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
9146 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
9148 2013-02-08 Marek Polacek <polacek@redhat.com>
9150 * cfgloop.c (verify_loop_structure): Add more checking of headers.
9152 2013-02-08 Richard Biener <rguenther@suse.de>
9155 * cfgloop.h (flow_loops_find): Adjust.
9156 (bb_loop_header_p): Declare.
9157 * cfgloop.c (bb_loop_header_p): New function split out from ...
9158 (flow_loops_find): ... here. Adjust function signature,
9159 support incremental loop structure update.
9160 (verify_loop_structure): Cleanup. Verify a loop is a loop.
9161 * cfgloopmanip.c (fix_loop_structure): Move ...
9162 * loop-init.c (fix_loop_structure): ... here.
9163 (apply_loop_flags): Split out from ...
9164 (loop_optimizer_init): ... here.
9165 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
9166 in incremental mode, only remove dead loops here.
9168 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
9171 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
9172 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
9173 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
9174 (*round<mode>3.libgcc): New insns for fixed-modes.
9175 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
9176 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
9177 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
9178 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
9179 implementations. Define to __builtin_avr_absFX,
9180 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
9181 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
9182 __builtin_avr_countlsFX, respectively.
9183 * config/avr/avr-c.c (target.h): Include it.
9184 (enum avr_builtin_id): New enum.
9185 (avr_resolve_overloaded_builtin): New static function.
9186 (avr_register_target_pragmas): Use it to set
9187 targetm.resolve_overloaded_builtin.
9188 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
9189 tree nodes used by DEF_BUILTIN.
9190 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
9191 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
9192 <AVR_BUILTIN_xxBITS>: Same.
9194 2013-02-08 Richard Biener <rguenther@suse.de>
9196 * cfgloop.c (verify_loop_structure): Properly handle
9197 a loop exiting to another loop header.
9198 * ira-int.h (ira_loops): Remove.
9199 * ira.c (ira_loops): Remove.
9200 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
9201 (do_reload): Use loop_optimizer_finalize.
9202 * ira-build.c (create_loop_tree_nodes): Use get_loops and
9203 number_of_loops to access the loop tree.
9204 (more_one_region_p): Likewise.
9205 (finish_loop_tree_nodes): Likewise.
9206 (rebuild_regno_allocno_maps): Likewise.
9207 (mark_loops_for_removal): Likewise.
9208 (mark_all_loops_for_removal): Likewise.
9209 (remove_unnecessary_regions): Likewise.
9210 (ira_build): Likewise.
9211 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
9213 2013-02-08 Richard Biener <rguenther@suse.de>
9215 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
9216 * ipa-pure-const.c (analyze_function): Avoid calling
9217 mark_irreducible_loops twice.
9218 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
9220 2013-02-07 David S. Miller <davem@davemloft.net>
9222 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
9224 * var-tracking.c (vt_add_function_parameter): Test the presence of
9225 HAVE_window_save properly and do not remap argument registers when
9226 we have a leaf function.
9228 2013-02-07 Uros Bizjak <ubizjak@gmail.com>
9231 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
9233 * config/i386/i386.c (ix86_print_operand): Ditto.
9235 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
9237 * lra-constraints.c (process_alt_operands): Fix recently added comment.
9239 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
9241 PR rtl-optimization/56225
9242 * lra-constraints.c (process_alt_operands): Check that reload hard
9243 reg can hold value for strict_low_part.
9245 2013-02-07 Jakub Jelinek <jakub@redhat.com>
9248 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
9249 dwarf2out_end_function.
9250 (in_first_function_p, maybe_at_text_label_p,
9251 first_loclabel_num_not_at_text_label): New variables.
9252 (dwarf2out_var_location): In the first function find out
9253 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
9254 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
9257 2013-02-07 Eric Botcazou <ebotcazou@adacore.com>
9259 PR rtl-optimization/56178
9260 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
9261 SUBREG of a register. Tidy up related block of code.
9262 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
9263 note if the source is a register or a SUBREG of a register.
9265 2013-02-07 Jakub Jelinek <jakub@redhat.com>
9268 * config/rs6000/rs6000.md (ptrm): New mode attr.
9269 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
9270 call_value_indirect_aix<pttrsize>,
9271 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
9274 2013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
9276 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
9277 if -bnortl. Convert to strcmp and strncmp.
9279 2013-02-07 Alan Modra <amodra@gmail.com>
9282 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
9283 addresses won't wrap when offsetting.
9284 (rs6000_secondary_reload): Provide secondary reloads needed for
9285 wrapping LO_SUM addresses.
9287 2013-02-06 Thomas Schwinge <thomas@codesourcery.com>
9289 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
9290 MACH, just __MACH__.
9292 2013-02-06 Richard Biener <rguenther@suse.de>
9294 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
9295 instead of calling fix_loop_structure.
9297 2013-02-06 Jakub Jelinek <jakub@redhat.com>
9300 * omp-low.c (use_pointer_for_field): Return false if
9301 lower_send_shared_vars doesn't generate any copy-out code.
9303 2013-02-06 Tom de Vries <tom@codesourcery.com>
9305 PR rtl-optimization/56131
9306 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
9307 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
9308 of the label is NULL. Add comment.
9310 2013-02-05 Jakub Jelinek <jakub@redhat.com>
9312 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
9315 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
9316 (STATIC_LIBTSAN_LIBS): Likewise.
9317 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
9318 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
9319 is defined, don't add anything else beyond that.
9320 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
9321 (LINK_COMMAND_SPEC): Use them.
9323 PR tree-optimization/56205
9324 * tree-stdarg.c (check_all_va_list_escapes): Return true if
9325 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
9326 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
9328 2013-02-05 Richard Biener <rguenther@suse.de>
9330 PR tree-optimization/53342
9331 PR tree-optimization/53185
9332 * tree-vectorizer.h (vect_check_strided_load): Remove.
9333 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
9334 not disallow peeling for vectorized strided loads.
9335 (vect_check_strided_load): Make static and simplify.
9336 (vect_analyze_data_refs): Adjust.
9337 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
9338 correctly when vectorizing strided loads.
9340 2013-02-05 Richard Biener <rguenther@suse.de>
9342 * doc/install.texi: Refer to ISL, not PPL.
9344 2013-02-05 Jan Hubicka <jh@suse.cz>
9346 PR tree-optimization/55789
9347 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
9349 2013-02-05 Jan Hubicka <jh@suse.cz>
9351 PR tree-optimization/55789
9352 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
9353 the dead call anyway.
9355 2013-02-05 Eric Botcazou <ebotcazou@adacore.com>
9358 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
9360 2013-02-04 Alexander Potapenko <glider@google.com>
9361 Jack Howarth <howarth@bromo.med.uc.edu>
9362 Jakub Jelinek <jakub@redhat.com>
9365 * config/darwin.c (sort_ctor_records): Stabilized qsort
9366 on constructor priority by using original position.
9367 (finalize_ctors): New routine to sort constructors by
9368 priority before use in assemble_integer.
9369 (machopic_asm_out_constructor): Use finalize_ctors if needed.
9371 2013-02-04 Jakub Jelinek <jakub@redhat.com>
9374 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
9375 about visibility on artificial decls.
9376 * config/sol2.c (solaris_assemble_visibility): Likewise.
9378 2013-02-04 Kai Tietz <ktietz@redhat.com>
9381 * config/i386/i386.c (function_value_ms_64): Add additional valtype
9382 argument and improve checking of return-argument types for 16-byte
9384 (ix86_function_value_1): Add additional valtype argument on call
9385 of function_value_64.
9386 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
9387 handling infunction_value_64 function.
9389 2013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
9391 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
9393 2013-02-04 Richard Biener <rguenther@suse.de>
9395 PR tree-optimization/56188
9396 * tree-ssa-structalias.c (label_visit): Consider case with
9397 initially non-empty points-to set.
9398 (perform_var_substitution): Dump node mapping and clean up.
9400 2013-02-04 Richard Guenther <rguenther@suse.de>
9403 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
9404 node prevail as last resort.
9405 (lto_symtab_merge_decls): Remove guard on LTRANS here.
9406 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
9408 2013-02-04 Richard Biener <rguenther@suse.de>
9410 PR tree-optimization/56113
9411 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
9413 (equiv_class_lookup_or_add): ... this.
9414 (label_visit): Adjust and fix error in previous patch.
9415 (perform_var_substitution): Adjust.
9417 2013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
9419 * config/sh/divtab.c: Fix formatting and comments throughout the file.
9420 * config/sh/sh4-300.md: Likewise.
9421 * config/sh/sh4a.md: Likewise.
9422 * config/sh/constraints.md: Likewise.
9423 * config/sh/sh.md: Likewise.
9424 * config/sh/netbsd-elf.h: Likewise.
9425 * config/sh/predicates.md: Likewise.
9426 * config/sh/sh-protos.h: Likewise.
9427 * config/sh/ushmedia.h: Likewise.
9428 * config/sh/linux.h: Likewise.
9429 * config/sh/sh.c: Likewise.
9430 * config/sh/superh.h: Likewise.
9431 * config/sh/elf.h: Likewise.
9432 * config/sh/sh4.md: Likewise.
9433 * config/sh/sh.h: Likewise.
9435 2013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9437 * config/pa/constraints.md: Adjust unused letters. Change "T"
9438 constraint to match_test floating_point_store_memory_operand().
9439 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
9440 (base14_operand): New.
9441 (floating_point_store_memory_operand): New.
9442 (integer_store_memory_operand): Revise to use base14_operand and
9443 reg_plus_base_memory_operand.
9444 (move_dest_operand): Allow symbolic_memory_operands.
9445 (symbolic_memory_operand): Check for LO_SOM.
9446 (symbolic_operand): Change default case to break.
9447 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
9448 CONST_DOUBLE values to be reloaded by putting them into memory when
9449 the destination is a floating point register.
9450 (movdf): Remove code to handle CONST_DOUBLE.
9452 (reload_indf_r1): New.
9453 (reload_insf_r1): New.
9454 Consistently use "Q" and "T" constraints with integer and floating
9455 point move instructions, respectively.
9456 (movdi): Remove FAIL.
9457 Change predicate for source operand unamed DImode move from
9458 general_operand to move_src_operand.
9459 (umulsidi3): Change predicate for destination operand to
9461 Likewise for similar unamed patterns.
9462 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
9463 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
9464 (hppa_legitimize_address): Simplify mask calculation.
9465 (pa_emit_move_sequence): Revised handling of secondary reloads from
9466 REG+D addresses for floating point loads and stores. Directly handle
9467 loading CONST0_RTX (mode) to a floating point register.
9468 (pa_secondary_reload): Handle reloading DF and SFmode constant values
9469 to floating point registers. Don't restrict secondary reloads to
9470 floating point registers to integer modes. Revise some comments and
9472 (TARGET_LEGITIMATE_ADDRESS_P): Define.
9473 (pa_legitimate_address_p): New.
9474 (pa_legitimize_reload_address): New.
9475 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
9476 (STRICT_REG_OK_FOR_BASE_P): New.
9477 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
9478 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
9480 2013-02-03 David Edelsohn <dje.gcc@gmail.com>
9481 Andrew Dixie <andrewd@gentrack.com>
9483 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
9486 2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
9488 * expmed.c (extract_bit_field_1): Pass the full width of the
9489 structure to get_best_reg_extraction_insn.
9491 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
9494 * configure.ac (use_cxa_atexit): Add AIX.
9495 * configure: Regenerate.
9497 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
9499 2013-02-01 Jakub Jelinek <jakub@redhat.com>
9502 * final.c (need_profile_function): New variable.
9503 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
9504 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
9505 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
9506 notes, targetm.asm_out.function_prologue doesn't emit anything,
9507 HAVE_prologue and profiler should be emitted before prologue,
9508 set need_profile_function instead of emitting it.
9509 (final_scan_insn): If need_profile_function, emit
9510 profile_function on the first NOTE_INSN_BASIC_BLOCK or
9511 NOTE_INSN_FUNCTION_BEG note.
9513 2013-02-01 Richard Henderson <rth@redhat.com>
9515 * config/rs6000/rs6000.md (smulditi3): New.
9518 * config/alpha/alpha.md (umulditi3): New.
9520 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
9522 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
9523 (ASM_OUTPUT_ALIGNED_LOCAL): New.
9525 2013-02-01 Richard Biener <rguenther@suse.de>
9527 PR tree-optimization/56113
9528 * tree-ssa-structalias.c (label_visit): Reduce work for
9529 single-predecessor nodes.
9531 2013-02-01 Eric Botcazou <ebotcazou@adacore.com>
9533 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
9534 range isn't testing for zero.
9536 2013-01-31 Steven Bosscher <steven@gcc.gnu.org>
9539 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
9541 2013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
9542 Nick Clifton <nickc@redhat.com>
9544 * config/v850/constraints.md (Q): Define as a memory constraint.
9545 * config/v850/predicates.md (label_ref_operand): New predicate.
9546 (e3v5_shift_operand): New predicate.
9547 (ior_operator): New predicate.
9548 * config/v850/t-v850: Add e3v5 multilib.
9549 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
9550 (v850_gen_movdi): Prototype.
9551 * config/v850/v850.c: Add support for e3v5 architecture.
9552 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
9554 (construct_save_jarl): Add e3v5 long JARL support.
9555 (v850_adjust_insn_length): New function. Adjust length of call
9556 insns when using e3v5 instructions.
9557 (v850_gen_movdi): New function: Generate instructions to move a
9559 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
9560 (CPP_SPEC): Define __v850e3v5__ as appropriate.
9561 (TARGET_USE_FPU): Enable for e3v5.
9562 (CONST_OK_FOR_W): New macro.
9563 (ADJUST_INSN_LENGTH): Define.
9564 * config/v850/v850.md (UNSPEC_LOOP): Define.
9565 (attr cpu): Add v850e3v5.
9566 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
9567 (movdi): New pattern.
9568 (movdi_internal): New pattern.
9569 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
9570 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
9571 (cstoresf4): Likewise.
9572 (cstoredf4): Likewise.
9573 (insv): New pattern.
9574 (rotlso3_a): New pattern.
9575 (rotlsi3_b): New pattern
9576 (rotlsi3_v850e3v5): New pattern.
9577 (doloop_begin): New pattern.
9578 (fix_loop_counter): New pattern.
9579 (doloop_end): New pattern.
9580 (branch_normal): Add e3v5 long branch support.
9581 (branch_invert): Likewise.
9582 (branch_z_normal): Likewise.
9583 (branch_z_invert): Likewise.
9584 (branch_nz_normal): Likewise.
9585 (branch_nz_invert): Likewise.
9586 (call_internal_short): Add e3v5 register-indirect JARL support.
9587 (call_internal_long): Likewise.
9588 (call_value_internal_short): Likewise.
9589 (call_value_internal_long): Likewise.
9590 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
9591 (mloop): New option.
9592 * config.gcc: Add support for configuring v840e3v5 target.
9593 * doc/invoke.texi: Document new v850 specific command line options.
9595 2013-01-31 Paul Koning <ni1d@arrl.net>
9599 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
9600 children if parent is a class.
9601 (prune_unused_types_prune): Don't add DW_AT_declaration.
9603 2013-01-31 Richard Biener <rguenther@suse.de>
9605 PR tree-optimization/56157
9606 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
9607 match up operand with SLP child.
9609 2013-01-31 Jason Merrill <jason@redhat.com>
9612 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
9613 parameters the first time.
9614 (gen_scheduled_generic_parms_dies): Check completeness here.
9616 2013-01-31 Richard Biener <rguenther@suse.de>
9619 * common.opt (faggressive-loop-optimizations): New flag,
9621 * doc/invoke.texi (faggressive-loop-optimizations): Document.
9622 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
9623 infer_loop_bounds_from_undefined by it.
9625 2013-01-31 Richard Biener <rguenther@suse.de>
9627 PR tree-optimization/56150
9628 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
9629 visit virtual operands.
9630 (find_uses_to_rename_bb): Likewise.
9632 2013-01-31 Richard Biener <rguenther@suse.de>
9634 PR tree-optimization/56150
9635 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
9636 mixed store non-store stmts.
9638 2013-01-30 Jakub Jelinek <jakub@redhat.com>
9641 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
9642 LIBASAN_EARLY_SPEC is defined.
9643 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
9644 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
9646 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
9649 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
9650 invalid args instead of ICEing on it.
9651 (ix86_valid_target_attribute_tree): Return error_mark_node if
9652 ix86_valid_target_attribute_inner_p failed.
9653 (ix86_valid_target_attribute_p): Return false only if
9654 ix86_valid_target_attribute_tree returned error_mark_node. Allow
9655 target("default") attribute.
9656 (sorted_attr_string): Change argument from const char * to tree,
9657 merge in all target attribute arguments rather than just one.
9658 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
9659 instead of free. Avoid using strcat.
9660 (ix86_mangle_function_version_assembler_name): Mangle
9661 target("default") as if no target attribute is present. Adjust
9662 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
9663 instead of xmalloc and XDELETEVEC instead of free.
9664 (ix86_function_versions): Don't return true if one of the decls
9665 doesn't have target attribute. If they don't and one of the decls
9666 is DECL_FUNCTION_VERSIONED, report an error. Adjust
9667 sorted_attr_string caller. Use XDELETEVEC instead of free.
9668 (ix86_supports_function_versions): Remove.
9669 (make_name): Fix up formatting.
9670 (make_dispatcher_decl): Remove resolver_name and its initialization.
9671 Avoid leaking memory.
9672 (is_function_default_version): Return true if there is
9673 target("default") attribute rather than no target attribute at all.
9674 (make_resolver_func): Avoid leaking memory.
9675 (ix86_generate_version_dispatcher_body): Likewise.
9676 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
9677 * target.def (supports_function_versions): Remove.
9678 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
9679 * doc/tm.texi: Regenerated.
9681 2013-01-30 Vladimir Makarov <vmakarov@redhat.com>
9683 PR rtl-optimization/56144
9684 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
9685 for values with side effects.
9687 2013-01-30 Richard Biener <rguenther@suse.de>
9689 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
9690 (sparseset_pop): Likewise.
9691 * cfganal.c (compute_idf): Likewise. Increase work-stack size
9692 to be able to use quick_push in the worker loop.
9694 2013-01-30 Marek Polacek <polacek@redhat.com>
9696 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
9698 2013-01-30 Richard Biener <rguenther@suse.de>
9701 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
9703 2013-01-30 Georg-Johann Lay <avr@gjlay.de>
9705 PR tree-optimization/56064
9706 * fixed-value.c (fixed_from_double_int): New function.
9707 * fixed-value.h (fixed_from_double_int): New prototype.
9708 (const_fixed_from_double_int): New static inline function.
9709 * fold-const.c (native_interpret_fixed): New static function.
9710 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
9711 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
9712 (native_encode_fixed): New static function.
9713 (native_encode_expr) <FIXED_CST>: Use it.
9714 (native_interpret_int): Move double_int worker code to...
9715 * double-int.c (double_int::from_buffer): ...this new static method.
9716 * double-int.h (double_int::from_buffer): Prototype it.
9718 2013-01-30 Richard Biener <rguenther@suse.de>
9720 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
9721 New pointer-map and obstack.
9722 (init_alias_vars): Allocate pointer-map and obstack.
9723 (delete_points_to_sets): Free them.
9724 (find_what_var_points_to): Cache result.
9725 (find_what_p_points_to): Adjust for changed interface of
9726 find_what_var_points_to.
9727 (compute_points_to_sets): Likewise.
9728 (ipa_pta_execute): Likewise.
9730 2013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9732 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
9733 * configure: Regenerate.
9734 * config.in: Regenerate.
9735 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
9736 #nobits/#progbits if supported.
9738 2013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
9741 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
9742 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
9743 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
9745 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
9747 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
9748 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
9750 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
9752 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
9753 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
9755 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
9757 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
9759 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
9760 * config/arm/cortex-a7.md: New bypasses using
9761 arm_mac_accumulator_is_result.
9763 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
9765 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
9766 (cortex_a7_neon_mla): Likewise.
9767 (cortex_a7_fpfmad): New reservation.
9768 (cortex_a7_fpmacs): Use ffmas and update required units.
9769 (cortex_a7_fpmuld): Update required units and latency.
9770 (cortex_a7_fpmacd): Likewise.
9771 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
9772 (cortex_a7_neon). Likewise.
9773 (bypass) Update participating units.
9775 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
9777 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
9778 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
9780 * config/arm/vfp11.md (vfp_farith): Use ffmas.
9781 (vfp_fmul): Use ffmad.
9782 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
9783 (cortex_r4_fmacd): Use ffmad.
9784 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
9785 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
9786 (cortex_a9_fmacd): Use ffmad.
9787 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
9788 (cortex_a8_vfp_macd): Use ffmad.
9789 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
9790 (cortex_a5_fpmacd): Use ffmad.
9791 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
9792 (cortex_a15_vfp_macd): Use ffmad.
9793 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
9795 2013-01-29 Jason Merrill <jason@redhat.com>
9798 * varasm.c (default_assemble_visibility): Don't warn about
9799 visibility on artificial decls.
9801 2013-01-29 Richard Biener <rguenther@suse.de>
9803 PR tree-optimization/56113
9804 * tree-ssa-structalias.c (equiv_class_lookup): Also return
9806 (label_visit): Free duplicate bitmaps and record the leader instead.
9807 (perform_var_substitution): Adjust.
9809 2013-01-29 Richard Biener <rguenther@suse.de>
9811 PR tree-optimization/55270
9812 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
9813 the CFG, schedule loops for fixup.
9815 2013-01-29 Nick Clifton <nickc@redhat.com>
9817 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
9820 2013-01-28 Leif Ekblad <leif@rdos.net>
9822 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
9823 * config/i386/i386.h (TARGET_RDOS): New macro.
9824 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
9825 * config/i386/i386.c (ix86_option_override_internal): For 64bit
9826 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
9827 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
9828 DEFAULT_LARGE_SECTION_THRESHOLD.
9829 * config/i386/i386.md (R14_REG, R15_REG): New constants.
9830 * config/i386/rdos.h: New file.
9831 * config/i386/rdos64.h: New file.
9833 2013-01-28 Bernd Schmidt <bernds@codesourcery.com>
9836 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
9839 2013-01-28 Jakub Jelinek <jakub@redhat.com>
9841 PR rtl-optimization/56117
9842 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
9843 call cselib_lookup_from_insn on the MEM before calling
9844 add_insn_mem_dependence.
9846 2013-01-28 Richard Biener <rguenther@suse.de>
9848 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
9849 to a stmt that didn't have one.
9850 (copy_phis_for_bb): Likewise for PHI arguments.
9851 (copy_debug_stmt): Likewise for debug stmts.
9853 2013-01-28 Richard Biener <rguenther@suse.de>
9855 PR tree-optimization/56034
9856 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
9857 (partition_builtin_p): Adjust.
9858 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
9859 it is the last partition.
9860 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
9861 up the vertex for the definition.
9862 (classify_partition): Classify whether a partition is a
9863 PKIND_REDUCTION, thus has uses outside of the loop.
9864 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
9865 Merge all PKIND_REDUCTION partitions into the last partition.
9866 (tree_loop_distribution): Seed partitions from reductions as well.
9868 2013-01-28 Jakub Jelinek <jakub@redhat.com>
9870 PR tree-optimization/56125
9871 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
9872 pow(x,c) into sqrt(x) * powi(x, n/2) or
9873 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
9874 optimizing for size.
9875 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
9876 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
9879 PR tree-optimization/56094
9880 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
9881 to UNKNOWN_LOCATION while gimplifying expr.
9883 2013-01-27 Uros Bizjak <ubizjak@gmail.com>
9886 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
9887 operand 0 in movabs insn template for -masm=intel asm alternative.
9888 (*movabs<mode>_2): Ditto for operand 1.
9890 2013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
9893 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
9896 2013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
9898 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
9901 2013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
9903 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
9904 Undef to avoid warning.
9906 2013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
9908 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
9909 * configure: Regenerate.
9911 2013-01-25 Jakub Jelinek <jakub@redhat.com>
9913 PR tree-optimization/56098
9914 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
9915 for stmts with volatile ops.
9916 (cond_store_replacement): Don't optimize if assign has volatile ops.
9917 (cond_if_else_store_replacement_1): Don't optimize if either
9918 then_assign or else_assign have volatile ops.
9919 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
9922 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
9924 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
9926 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
9928 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
9929 missing ':' in asm example.
9931 2013-01-25 Tejas Belagod <tejas.belagod@arm.com>
9933 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
9934 entries into lane and laneq entries.
9935 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
9936 Remove AdvSIMD scalar modes.
9937 (aarch64_sq<r>dmulh_laneq<mode>): New.
9938 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
9940 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
9941 builtin implementations to relfect changes in RTL in aarch64-simd.md.
9942 * config/aarch64/iterators.md (VCOND): New.
9945 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
9948 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
9949 Add NULL LIBNAME argument to existing definitions.
9950 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
9951 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
9952 * config/avr/avr.c (DEF_BUILTIN): Same.
9953 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
9954 (avr_expand_builtin): Expand to a vanilla call if a libgcc
9955 implementation is available (DECL_ASSEMBLER_NAME is set).
9956 (avr_fold_absfx): New static function.
9957 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
9958 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
9959 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
9961 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
9962 (abshk, absk, abslk, absllk): Provide as static inline functions.
9964 2013-01-25 Marek Polacek <polacek@redhat.com>
9966 PR tree-optimization/56035
9967 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
9969 2012-01-24 Uros Bizjak <ubizjak@gmail.com>
9971 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
9972 (*movtf_internal_rex64): Add (!o,C) alternative
9973 (*movxf_internal_rex64): Ditto.
9974 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
9976 2013-01-24 Shenghou Ma <minux.ma@gmail.com>
9978 * doc/invoke.texi: fix typo.
9979 * doc/objc.texi: fix typo.
9981 2013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
9983 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
9984 for the first two alternatives.
9986 2013-01-24 Diego Novillo <dnovillo@google.com>
9988 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
9989 (ggc-zone.o): Remove.
9990 * configure.ac: Remove option --with-gc.
9991 * configure: Re-generate.
9992 * doc/install.texi: Remove documentation for --with-gc.
9993 * gengtype.c (write_enum_defn): Remove. Update all users.
9994 (write_Types_process_field): Remove generation of gt_e_* argument.
9995 (output_type_enum): Remove. Update all users.
9996 (write_enum_defn): Remove. Update all users.
9997 (enum alloc_zone): Remove. Update all users.
9998 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
9999 * ggc-common.c (ggc_splay_alloc): Remove first argument.
10000 Update all callers.
10001 (struct ptr_data): Remove field TYPE. Update all users.
10002 (gt_pch_note_object): Remove argument TYPE. Update all users.
10003 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
10005 * ggc-none.c (ggc_alloc_typed_stat): Remove.
10006 (struct alloc_zone): Remove.
10007 (ggc_internal_alloc_zone_stat): Remove.
10008 (ggc_internal_cleared_alloc_zone_stat): Remove.
10009 * ggc-page.c (ggc_alloc_typed_stat): Remove.
10010 (ggc_pch_count_object): Remove last argument. Update all users.
10011 (ggc_pch_alloc_object): Remove last argument. Update all users.
10012 (struct alloc_zone): Remove.
10013 * ggc-zone.c: Remove.
10014 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
10015 (struct alloc_zone): Remove.
10016 (ggc_alloc_typed_stat): Remove.
10017 (ggc_alloc_typed): Remove.
10018 (ggc_splay_alloc): Remove first argument.
10019 (rtl_zone): Remove. Update all users.
10020 (tree_zone): Remove. Update all users.
10021 (tree_id_zone): Remove. Update all users.
10022 (ggc_internal_zone_alloc_stat): Remove. Update all users.
10023 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
10024 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
10025 * tree-ssanames.c: Remove references to zone allocator in comments.
10027 2013-01-24 Georg-Johann Lay <avr@gjlay.de>
10029 * config/avr/avr.c (avr_out_fract): Make register numbers that
10030 might be outside of source operand signed.
10032 2013-01-24 Uros Bizjak <ubizjak@gmail.com>
10034 * config/i386/constraints.md (Yf): New constraint.
10035 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
10036 of f constraint to conditionaly disable x87 register preferences.
10037 (*movdf_internal): Ditto.
10038 (*movsf_internal): Ditto.
10040 2013-01-24 Steven Bosscher <steven@gcc.gnu.org>
10042 PR inline-asm/55934
10043 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
10044 that have operands with impossible constraints.
10045 Add a FIXME for a speed-up opportunity.
10046 * lra-constraints.c (process_alt_operands): Verify that a class
10047 selected from constraints on asms is valid for the operand mode.
10048 (curr_insn_transform): Remove incorrect comment.
10050 2013-01-23 David Edelsohn <dje.gcc@gmail.com>
10052 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
10053 TOC operand is a valid symbol ref in the constant pool.
10055 2013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10057 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
10059 2013-01-23 Georg-Johann Lay <avr@gjlay.de>
10062 * config/avr/stdfix.h: New file.
10063 * t-avr (stdfix-gcc.h): New rule to build it.
10064 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
10066 2013-01-23 Kostya Serebryany <kcc@google.com>
10068 * config/darwin.h: remove dependency on
10069 CoreFoundation (asan on Mac OS).
10071 2013-01-23 Jakub Jelinek <jakub@redhat.com>
10074 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
10075 instead of cmpdi_operand for first comparison operand.
10076 Don't assert that comparison operands aren't both constants.
10078 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
10080 * doc/install.texi (Downloading the Source): Update references to
10081 downloading separate components.
10083 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
10085 * doc/extend.texi (__int128): Improve grammar.
10087 2013-01-22 Uros Bizjak <ubizjak@gmail.com>
10090 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
10091 alternative to (o,r).
10092 (*movdi_internal_rex64): Remove (!o,n) alternative.
10093 (DImode immediate->memory splitter): Remove.
10094 (DImode immediate->memory peephole2): Remove.
10095 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
10096 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
10097 alternative to (!o,*r).
10098 (*movtf_internal_sse): New pattern.
10099 (*movxf_internal_rex64): New pattern.
10100 (*movxf_internal): Disable for TARGET_64BIT.
10101 (*movdf_internal_rex64): Remove (!o,F) alternative.
10103 2013-01-22 Jakub Jelinek <jakub@redhat.com>
10105 PR middle-end/56074
10106 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
10107 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
10108 * tree-vect-loop-manip.c (find_loop_location): Also ignore
10109 stmt locations where LOCATION_LOCUS of the stmt location is
10110 UNKNOWN_LOCATION or BUILTINS_LOCATION.
10113 * config/i386/i386.md (UNSPEC_STOS): New.
10114 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
10115 *strsetqi_1): Add UNSPEC_STOS.
10117 2013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
10120 * doc/invoke.texi: Remove left over -Wsynth example.
10122 2013-01-21 Jakub Jelinek <jakub@redhat.com>
10124 PR tree-optimization/56051
10125 * fold-const.c (fold_binary_loc): Don't fold
10126 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
10127 a narrowing conversion, or widening conversion from signed
10130 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
10132 PR rtl-optimization/56023
10133 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
10134 dependent on debug instruction.
10136 2013-01-21 Martin Jambor <mjambor@suse.cz>
10138 PR middle-end/56022
10139 * function.c (allocate_struct_function): Call
10140 invoke_set_current_function_hook earlier.
10142 2013-01-21 Jakub Jelinek <jakub@redhat.com>
10144 * reload1.c (init_reload): Only initialize reload_obstack
10145 during the first call.
10147 2013-01-21 Marek Polacek <polacek@redhat.com>
10149 * cfgloop.c (verify_loop_structure): Fix up grammar.
10151 2013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
10153 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
10154 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
10156 2013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10159 * config/arm/marvell-pj4.md: Update copyright year.
10160 Fix up use of alu to alu_reg and simple_alu_imm.
10162 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
10164 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
10166 2013-01-20 Vladimir Makarov <vmakarov@redhat.com>
10169 * lra-constraints.c (curr_insn_transform): Don't reuse original
10170 insn for secondary memory move when memory mode should be different.
10172 2013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10174 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
10175 atomic_storedi_1): New patterns.
10177 2013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
10179 btver2 pipeline descriptions.
10180 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
10182 * config/i386/i386.md (btver2_decode): New type attributes.
10183 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
10185 * config/i386/btver2.md: New file describing btver2 pipelines.
10187 2013-01-19 Andrew Pinski <apinski@cavium.com>
10189 PR tree-optimization/52631
10190 * tree-ssa-sccvn (visit_use): Before looking up the original
10191 statement, try looking up the simplified expression.
10193 2013-01-19 Anthony Green <green@moxielogic.com>
10195 * config/moxie/moxie.c (moxie_expand_prologue): Set
10196 current_function_static_stack_size.
10198 2013-01-18 Jakub Jelinek <jakub@redhat.com>
10200 PR tree-optimization/56029
10201 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
10202 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
10204 2013-01-18 Sharad Singhai <singhai@google.com>
10206 PR tree-optimization/55995
10207 * dumpfile.c (dump_loc): Print location only if available.
10208 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
10210 2013-01-18 Vladimir Makarov <vmakarov@redhat.com>
10213 * lra-constraints.c (curr_insn_transform): Reuse original insn for
10214 secondary memory move.
10215 (inherit_reload_reg): Use rclass instead of cl for
10216 check_secondary_memory_needed_p.
10218 2013-01-18 Jakub Jelinek <jakub@redhat.com>
10220 PR middle-end/56015
10221 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
10222 the case where writing real complex part of target modifies op1.
10224 2013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
10226 * config/aarch64/aarch64-simd.md
10227 (aarch64_vcond_internal<mode>): Handle unordered cases.
10228 * config/aarch64/iterators.md (v_cmp_result): New.
10230 2013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
10231 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10233 * config/arm/marvell-pj4.md: New file.
10234 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
10235 * config/arm/arm.md (generic_sched): Add marvell_pj4.
10236 (generic_vfp): Likewise.
10237 * config/arm/arm-cores.def: Add marvell-pj4.
10238 * config/arm/arm-tune.md: Regenerate.
10239 * config/arm/arm-tables.opt: Regenerate.
10240 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
10241 * doc/invoke.texi: Document marvell-pj4.
10243 2013-01-18 Tejas Belagod <tejas.belagod@arm.com>
10245 * config/aarch64/arm_neon.h: Map scalar types to standard types.
10247 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
10252 * var-tracking.c (negative_power_of_two_p): New.
10253 (global_get_addr_cache, local_get_addr_cache): New.
10254 (get_addr_from_global_cache, get_addr_from_local_cache): New.
10255 (vt_canonicalize_addr): Rewrite using the above. Adjust the
10257 (vt_stack_offset_p): Remove.
10258 (vt_canon_true_dep): Always canonicalize loc's address.
10259 (clobber_overlapping_mems): Make sure we have a MEM.
10260 (local_get_addr_clear_given_value): New.
10261 (val_reset): Clear local cached entries.
10262 (compute_bb_dataflow): Create and release the local cache.
10263 Disable duplicate MEMs clobbering.
10264 (emit_notes_in_bb): Clobber MEMs likewise.
10265 (vt_emit_notes): Create and release the local cache.
10266 (vt_initialize, vt_finalize): Create and release the global
10267 cache, respectively.
10268 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
10270 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
10272 PR libmudflap/53359
10273 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
10274 not found in the symtab.
10276 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
10279 PR rtl-optimization/55547
10280 PR rtl-optimization/53827
10283 * alias.c (offset_overlap_p): New, factored out of...
10284 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
10285 the conservative special case for symbolic constants. Don't
10286 adjust zero sizes on alignment.
10288 2013-01-18 Bernd Schmidt <bernds@codesourcery.com>
10290 PR rtl-optimization/52573
10291 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
10292 REG_UNUSED for the same register.
10294 2013-01-17 Richard Biener <rguenther@suse.de>
10295 Marek Polacek <polacek@redhat.com>
10297 PR rtl-optimization/55833
10298 * loop-unswitch.c (unswitch_loops): Move loop verification...
10299 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
10300 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
10301 Set it to true when we're removing a loop from hierarchy tree in
10302 an irreducible region.
10303 (fix_bb_placements): Adjust caller.
10304 (fix_loop_placements): Likewise.
10306 2013-01-17 Georg-Johann Lay <avr@gjlay.de>
10308 * config/avr/builtins.def (DEF_BUILTIN): Factor out
10309 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
10310 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
10311 Remove ID. Adjust comments.
10312 * config/avr/avr-c.c (avr_builtin_name): Remove.
10313 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
10314 * config/avr/avr.c (avr_tolower): New static function.
10315 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
10316 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
10317 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
10320 2013-01-17 Jan Hubicka <jh@suse.cz>
10322 PR tree-optimization/55273
10323 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
10325 2013-01-17 Uros Bizjak <ubizjak@gmail.com>
10328 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
10329 store through atomic_store<mode>_1.
10330 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
10332 2013-01-17 Martin Jambor <mjambor@suse.cz>
10334 PR tree-optimizations/55264
10335 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
10336 for virtual methods.
10337 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
10338 virtual methods before inlining is over.
10339 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
10341 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
10344 2013-01-16 Vladimir Makarov <vmakarov@redhat.com>
10346 PR rtl-optimization/56005
10347 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
10348 pending reads for prefetch.
10350 2013-01-16 Ian Bolton <ian.bolton@arm.com>
10352 * config/aarch64/aarch64.md
10353 (*cstoresi_neg_uxtw): New pattern.
10354 (*cmovsi_insn_uxtw): New pattern.
10355 (*<optab>si3_uxtw): New pattern.
10356 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
10357 (*<optab>si3_insn_uxtw): New pattern.
10358 (*bswapsi2_uxtw): New pattern.
10360 2013-01-16 Richard Biener <rguenther@suse.de>
10362 * tree-inline.c (tree_function_versioning): Remove set but
10363 never used variable.
10365 2013-01-16 Richard Biener <rguenther@suse.de>
10367 PR tree-optimization/55964
10368 * tree-flow.h (rename_variables_in_loop): Remove.
10369 (rename_variables_in_bb): Likewise.
10370 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
10371 (copy_loop_before): Adjust and delete update-ssa status.
10372 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
10373 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
10374 (rename_variables_in_loop): Remove.
10375 (slpeel_update_phis_for_duplicate_loop): Likewise.
10376 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
10377 use available cfg machinery instead of duplicating it.
10378 Update PHI nodes and perform poor-mans SSA update here.
10379 (slpeel_tree_peel_loop_to_edge): Adjust.
10381 2013-01-16 Richard Biener <rguenther@suse.de>
10383 PR tree-optimization/54767
10384 PR tree-optimization/53465
10385 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
10386 (vrp_visit_phi_node): For PHI arguments coming via backedges
10387 drop all symbolical range information.
10388 (execute_vrp): Compute backedges.
10390 2013-01-16 Richard Biener <rguenther@suse.de>
10392 * doc/install.texi: Update CLooG and ISL requirements to
10395 2013-01-16 Christian Bruel <christian.bruel@st.com>
10398 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
10399 (broken_move): Handle UNSPECV_SP_SWITCH_B.
10400 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
10402 2013-01-16 DJ Delorie <dj@redhat.com>
10404 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
10405 (UNSPECV_SP_SWITCH_E): New.
10406 (sp_switch_1): Change to an unspec.
10407 (sp_switch_2): Change to an unspec. Don't use post-inc when we
10410 2013-01-16 Uros Bizjak <ubizjak@gmail.com>
10412 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
10413 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
10414 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
10415 (expand_mem_thread_fence): Ditto.
10416 (expand_mem_signal_fence): Ditto.
10417 (expand_atomic_load): Ditto.
10418 (expand_atomic_store): Ditto.
10420 2013-01-16 Alexandre Oliva <aoliva@redhat.com>
10422 PR rtl-optimization/55547
10423 PR rtl-optimization/53827
10426 * alias.c (memrefs_conflict_p): Set sizes to negative after
10429 2013-01-15 Jakub Jelinek <jakub@redhat.com>
10432 * function.c (thread_prologue_and_epilogue_insns): Always
10433 add crtl->drap_reg to set_up_by_prologue.set, even if
10434 stack_realign_drap is false.
10436 2013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10438 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
10439 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
10440 *call): Fix indention.
10442 2013-01-15 Tom de Vries <tom@codesourcery.com>
10445 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
10448 2013-01-15 Vladimir Makarov <vmakarov@redhat.com>
10450 PR rtl-optimization/55153
10451 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
10453 2013-01-15 Martin Jambor <mjambor@suse.cz>
10455 PR tree-optimization/55920
10456 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
10457 accesses as grp_to_be_debug_replaced.
10459 2013-01-15 Jakub Jelinek <jakub@redhat.com>
10461 PR tree-optimization/55920
10462 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
10463 there is non-useless type conversion needed from debug rhs to lhs,
10464 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
10466 2013-01-15 Joseph Myers <joseph@codesourcery.com>
10467 Mikael Pettersson <mikpe@it.uu.se>
10470 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
10472 (ASM_OUTPUT_CASE_LABEL): Remove.
10473 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
10474 * final.c (shorten_branches): Update alignment of labels before
10475 jump tables if CASE_VECTOR_SHORTEN_MODE.
10477 2013-01-15 Richard Biener <rguenther@suse.de>
10480 * system.h: Do not include gmp.h for building host tools.
10482 2013-01-15 Richard Biener <rguenther@suse.de>
10484 PR middle-end/55882
10485 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
10486 account for bitpos when computing alignment.
10488 2013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
10490 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
10491 (ix86_target_macros_internal): Likewise.
10493 * config/i386/i386.c (m_CORE2I7): Removed.
10494 (m_CORE_HASWELL): New macro.
10495 (m_CORE_ALL): Likewise.
10496 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
10497 (initial_ix86_arch_features): Likewise.
10498 (processor_target_table): Initializations for Core avx2.
10499 (cpu_names): New names "core-avx2".
10500 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
10501 PROCESSOR_CORE_HASWELL.
10502 (ix86_issue_rate): New case.
10503 (ia32_multipass_dfa_lookahead): Likewise.
10504 (ix86_sched_init_global): Likewise.
10506 * config/i386/i386.h (TARGET_HASWELL): New macro.
10507 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
10508 (processor_type): New PROCESSOR_HASWELL.
10510 2013-01-15 Jakub Jelinek <jakub@redhat.com>
10512 PR tree-optimization/55955
10513 * tree-vect-loop.c (vectorizable_reduction): Give up early on
10514 *SHIFT_EXPR and *ROTATE_EXPR codes.
10516 PR tree-optimization/48766
10517 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
10518 -ftrapv disable -fwrapv.
10520 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
10523 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
10524 etc. to 1 and not to __flash.
10525 Use LL suffix for __INT24_MAX__ with -mint8.
10526 Use ULL suffix for __UINT24_MAX__ with -mint8.
10528 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
10530 * config/avr/avr-arch.h
10531 (struct base_arch_s): Use typedef avr_arch_t instead.
10532 (struct arch_info_s): Use typedef avr_arch_info_t instead.
10533 (struct mcu_type_s): Use typedef avr_mcu_t instead.
10534 * config/avr/avr.c: Same.
10535 * config/avr/avr-devices.c: Same.
10536 * config/avr/driver-avr.c: Same.
10537 * config/avr/gen-avr-mmcu-texi.c: Same.
10538 * config/avr/avr-mcus.def: Adjust comment.
10540 2013-01-14 Tejas Belagod <tejas.belagod@arm.com>
10542 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
10543 * config/aarch64/iterators.md (VALLDI): New.
10545 2013-01-14 Uros Bizjak <ubizjak@gmail.com>
10546 Andi Kleen <ak@linux.intel.com>
10549 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
10550 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
10553 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
10555 * config/avr/avr-stdint.h: Remove trailing blanks.
10556 * config/avr/avr-log.h: Same.
10557 * config/avr/avr-arch.h: Same.
10558 * config/avr/avr-devices.c: Same.
10559 * config/avr/avr-dimode.md: Same.
10560 * config/avr/predicates.md: Same.
10561 * config/avr/avr-c.c: Same. And fix typo.
10563 * config/avr/avr-protos.h: Same. And:
10564 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
10565 (init_cumulative_args): Rename to avr_init_cumulative_args.
10566 (expand_prologue): Rename to avr_expand_prologue.
10567 (expand_epilogue): Rename to avr_expand_epilogue.
10568 (adjust_insn_length): Rename to avr_adjust_insn_length.
10569 (notice_update_cc): Rename to avr_notice_update_cc.
10570 (final_prescan_insn): Rename to avr_final_prescan_insn.
10571 * config/avr/avr.c: Same.
10572 * config/avr/avr.h: Same.
10573 * config/avr/avr.md: Remove trailing blanks.
10574 (prologue): Use avr_expand_prologue.
10575 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
10577 2013-01-14 Richard Biener <rguenther@suse.de>
10579 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
10580 verify_location, collect_subblocks): New functions.
10581 (verify_gimple_in_cfg): Verify that locations only reference
10582 BLOCKs in the functions BLOCK tree.
10584 2013-01-14 Richard Biener <rguenther@suse.de>
10586 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
10588 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
10590 (insert_out_of_ssa_copy_on_edge): Likewise.
10591 (rewrite_close_phi_out_of_ssa): Likewise.
10592 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
10594 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
10595 propagated constants.
10596 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
10599 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
10601 * config/avr/avr-modes.def: Add GPL copyright notice.
10603 2013-01-13 Uros Bizjak <ubizjak@gmail.com>
10605 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
10606 MEMMODEL_MASK to determine memory model.
10607 (atomic_store<mode>): Ditto from operands[2].
10608 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
10610 2013-01-13 Jakub Jelinek <jakub@redhat.com>
10613 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
10614 (fold_gimple_assign): Don't call unshare_expr here.
10615 (fold_ctor_reference): Call unshare_expr.
10617 2013-01-13 Terry Guo <terry.guo@arm.com>
10619 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
10620 * doc/fragments.texi: Document MULTILIB_REUSE.
10621 * gcc.c (multilib_reuse): New internal spec.
10622 (set_multilib_dir): Also search multilib from multilib_reuse.
10623 * genmultilib (tmpmultilib3): Refactor code.
10624 (tmpmultilib4): Ditto.
10625 (multilib_reuse): New multilib argument.
10627 2013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
10629 * Makefile.in: Update copyright.
10631 2013-01-12 Tom de Vries <tom@codesourcery.com>
10633 PR middle-end/55890
10634 * calls.c (expand_call): Check if arg_nr is valid.
10636 2013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
10638 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
10639 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
10640 documentation. Add missing '__' in front of
10641 __builtin_ia32_packssdw256.
10643 2013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10646 * config/s390/s390.c (s390_preferred_reload_class): Do not return
10647 NO_REGS for larl operands.
10648 (s390_reload_larl_operand): Use s390_load_address instead of
10651 2013-01-11 Richard Biener <rguenther@suse.de>
10653 * tree-cfg.c (verify_node_sharing_1): Split out from ...
10654 (verify_node_sharing): ... here.
10655 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
10657 2013-01-11 Eric Botcazou <ebotcazou@adacore.com>
10659 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
10660 Substitute TREECHECKING.
10661 * configure: Regenerate.
10662 * Makefile.in (TREECHECKING): New.
10664 2013-01-11 Richard Guenther <rguenther@suse.de>
10666 PR tree-optimization/44061
10667 * tree-vrp.c (extract_range_basic): Compute zero as
10668 value-range for __builtin_constant_p of function parameters.
10670 2013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
10672 Update copyright years.
10674 2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
10676 PR rtl-optimization/55672
10677 * lra-eliminations.c (mark_not_eliminable): Permit addition with
10678 const to be eliminable.
10680 2013-01-10 David Edelsohn <dje.gcc@gmail.com>
10682 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
10683 * configure: Regenerate.
10685 2013-01-10 Richard Biener <rguenther@suse.de>
10687 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
10689 2013-01-10 Richard Biener <rguenther@suse.de>
10692 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
10693 locations for virtual PHI arguments.
10694 (rewrite_update_phi_arguments): Likewise.
10696 2013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
10698 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
10701 2013-01-10 Jakub Jelinek <jakub@redhat.com>
10703 PR tree-optimization/55921
10704 * tree-complex.c (expand_complex_asm): New function.
10705 (expand_complex_operations_1): Call it for GIMPLE_ASM.
10707 2013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10710 * config/s390/s390.c (s390_symref_operand_p)
10711 (s390_loadrelative_operand_p): Merge the two functions.
10712 (s390_check_qrst_address, print_operand_address): Add parameters
10713 to s390_loadrelative_operand_p invokation.
10714 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
10715 (s390_reload_larl_operand, s390_secondary_reload): Use
10716 s390_loadrelative_operand_p instead of s390_symref_operand_p.
10717 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
10719 2013-01-09 Mike Stump <mikestump@comcast.net>
10721 * dse.c (record_store): Remove unnecessary assert.
10723 2013-01-09 Jan Hubicka <jh@suse.cz>
10725 PR tree-optimization/55569
10726 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
10727 * cfgloop.h (scale_loop_profile): Likewise.
10729 2013-01-09 Jan Hubicka <jh@suse.cz>
10732 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
10734 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
10736 2013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
10738 PR middle-end/55114
10739 * expr.h (maybe_emit_group_store): Declare.
10740 * expr.c (maybe_emit_group_store): New function.
10741 * builtins.c (expand_builtin_int_roundingfn): Call it.
10742 (expand_builtin_int_roundingfn_2): Likewise.
10744 2013-01-09 Vladimir Makarov <vmakarov@redhat.com>
10746 PR rtl-optimization/55829
10747 * lra-constraints.c (match_reload): Add code for absent output.
10748 (curr_insn_transform): Add code for reloads of matched inputs
10751 2013-01-09 Uros Bizjak <ubizjak@gmail.com>
10753 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
10754 attribute of movddup insn to DF.
10755 (*vec_interleave_lowv2df): Ditto.
10756 (vec_dupv2df): Ditto.
10758 2013-01-09 Jan Hubicka <jh@suse.cz>
10760 PR tree-optimiation/55875
10761 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
10762 EVERY_ITERATION parameter.
10763 (number_of_iterations_exit): Check if exit is executed every iteration.
10764 (idx_infer_loop_bounds): Similarly here.
10765 (n_of_executions_at_most): Simplify
10766 to only test for cases where statement is dominated by the
10767 particular bound; handle correctly the "postdominance" test.
10768 (scev_probably_wraps_p): Use max loop iterations info
10769 as a global bound first.
10771 2013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
10772 Nick Clifton <nickc@redhat.com>
10774 * config/v850/v850.md (cbranchsf4): New pattern.
10775 (cstoresf4): New pattern.
10776 (cbranchdf4): New pattern.
10777 (cstoredf4): New pattern.
10778 (movsicc): Disallow floating point comparisons.
10779 (cmpsf_le_insn): Fix order of operators.
10780 (cmpsf_lt_insn): Likewise.
10781 (cmpsf_eq_insn): Likewise.
10782 (cmpdf_le_insn): Likewise.
10783 (cmpdf_lt_insn): Likewise.
10784 (cmpdf_eq_insn): Likewise.
10785 (cmpsf_ge_insn): Use LE comparison.
10786 (cmpdf_ge_insn): Likewise.
10787 (cmpsf_gt_insn): Use LT comparison.
10788 (cmpdf_gt_insn): Likewise.
10789 (cmpsf_ne_insn): Delete pattern.
10790 (cmpdf_ne_insn): Delete pattern.
10791 * config/v850/v850.c (v850_gen_float_compare): Use
10792 gen_cmpdf_eq_insn for NE comparison.
10793 (v850_float_z_comparison_operator)
10794 (v850_float_nz_comparison_operator): Move from here ...
10795 * config/v850/predicates.md: ... to here. Move GT and GE
10796 comparisons into v850_float_z_comparison_operator.
10797 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
10799 (v850_float_nz_comparison_operator): Likewise.
10801 2013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10803 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
10804 with calls to gen_insvsi/gen_insvdi.
10806 2013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
10808 * config/i386/i386.c (initial_ix86_tune_features): Set up
10809 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
10811 2013-01-09 Steven Bosscher <steven@gcc.gnu.org>
10812 Jakub Jelinek <jakub@redhat.com>
10814 PR tree-optimization/48189
10815 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
10816 If nitercst is 0, don't predict the exit edge.
10818 2013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
10820 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
10821 in asm_fprintf with reg_names.
10822 (aarch64_print_operand_address): Likewise.
10823 (aarch64_return_addr): Likewise.
10824 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
10826 2013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10828 * config/pa/pa.h (VAL_U6_BITS_P): Define.
10829 (INT_U6_BITS): Likewise.
10830 * config/pa/predicates.md (uint6_operand): New predicate.
10831 (shift5_operand, shift6_operand): Likewise.
10832 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
10834 (lshrdi3): Use shift6_operand.
10835 (shrpsi4, shrpdi4): New insn patterns.
10836 (extzv): Delete expander.
10837 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
10838 predicates in unamed zero extract patterns. Tighten common constraint.
10839 (extv): Delete expander.
10840 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
10841 predicates in unamed sign extract patterns. Tighten common constraint.
10842 (insv): Delete expander.
10843 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
10844 predicates in unamed insert patterns. Tighten common constraint.
10845 Change uint32_operand predicate to uint6_operand predicate in unamed
10846 DImode pattern to insert constant values of type 1...1xxxx.
10848 2013-01-04 Jan Hubicka <jh@suse.cz>
10850 PR tree-optimization/55823
10851 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
10854 2013-01-08 Jakub Jelinek <jakub@redhat.com>
10855 Uros Bizjak <ubizjak@gmail.com>
10857 PR rtl-optimization/55845
10858 * df-problems.c (can_move_insns_across): Stop scanning at
10859 volatile_insn_p source instruction or give up if
10860 across_from .. across_to range contains any volatile_insn_p
10863 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
10865 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
10866 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
10868 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
10869 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
10871 2013-01-08 Jakub Jelinek <jakub@redhat.com>
10874 * asan.c (asan_clear_shadow): New function.
10875 (asan_emit_stack_protection): Use it.
10877 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
10879 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
10880 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
10881 with tab instead of space.
10883 2013-01-08 Nick Clifton <nickc@redhat.com>
10885 * config/rl78/rl78.c (rl78_expand_prologue): Always select
10886 register bank 0 at the start of an interrupt handler.
10887 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
10890 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
10892 * config/aarch64/aarch64-simd.md
10893 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
10894 (aarch64_simd_bsl): Likewise.
10895 (aarch64_vcond_internal<mode>): Likewise.
10896 (vcond<mode><mode>): Likewise.
10897 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
10898 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
10900 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
10902 * config/aarch64/aarch64-builtins.c
10903 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
10905 2013-01-08 Martin Jambor <mjambor@suse.cz>
10908 * tree-sra.c (analyze_access_subtree): Return true also after
10909 potentially creating a debug-only replacement.
10911 2013-01-08 Jakub Jelinek <jakub@redhat.com>
10913 PR middle-end/55890
10914 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
10916 PR tree-optimization/54120
10917 * tree-vrp.c (range_fits_type_p): Don't allow
10918 src_precision < precision from signed vr to unsigned_p
10919 if vr->min or vr->max is negative.
10920 (simplify_float_conversion_using_ranges): Test can_float_p
10921 against CODE_FOR_nothing.
10923 2013-01-08 Jakub Jelinek <jakub@redhat.com>
10924 Richard Biener <rguenther@suse.de>
10926 PR middle-end/55851
10927 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
10928 types instead of just INTEGER_TYPE types.
10930 2013-01-07 Mark Kettenis <kettenis@openbsd.org>
10932 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
10935 2013-01-07 Steve Ellcey <sellcey@mips.com>
10938 * config/mips/mips.opt: Change mad to mmad to match documentation.
10940 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
10943 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
10944 .progmemx.data now.
10946 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
10949 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
10950 (avr_addrspace_t): Add .section_name field.
10951 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
10953 (avr_addrspace): Same. Initialize .section_name. Remove last
10954 NULL entry. Put __memx into .progmemx.data.
10955 (progmem_section_prefix): Remove.
10956 (avr_asm_init_sections): No need to initialize progmem_section.
10957 (avr_asm_named_section): Use avr_addrspace[].section_name to get
10958 section name prefix.
10959 (avr_asm_select_section): Ditto. And use get_unnamed_section to
10960 retrieve the progmem section.
10961 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
10962 boundary to run over avr_addrspace[].
10963 (avr_register_target_pragmas): Ditto.
10965 2013-01-06 Jakub Jelinek <jakub@redhat.com>
10967 * varasm.c (output_constant_def_contents): For asan_protect_global
10968 protected strings, adjust DECL_ALIGN if needed, before testing for
10970 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
10971 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
10973 (output_object_block): For asan protected decls, emit asan padding
10974 after their contents.
10975 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
10976 (asan_finish_file): Test it here instead.
10978 2013-01-07 Nick Clifton <nickc@redhat.com>
10979 Matthias Klose <doko@debian.org>
10980 Doug Kwan <dougkwan@google.com>
10981 H.J. Lu <hongjiu.lu@intel.com>
10984 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
10986 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
10988 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
10990 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
10992 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
10994 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
10997 * doc/install.texi (Cross-Compiler-Specific Options): Document
11000 2013-01-07 Tejas Belagod <tejas.belagod@arm.com>
11002 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
11003 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
11004 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
11005 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
11006 vqmovun_high_s64): Fix source operand number and update copyright.
11008 2013-01-07 Richard Biener <rguenther@suse.de>
11010 PR middle-end/55890
11011 * gimple.h (gimple_call_builtin_p): New overload.
11012 * gimple.c (validate_call): New function.
11013 (gimple_call_builtin_p): Likewise.
11014 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11015 Use gimple_call_builtin_p.
11016 (find_func_clobbers): Likewise.
11017 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
11018 (strlen_optimize_stmt): Likewise.
11020 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
11022 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
11023 (vld1q_dup_*): Likewise.
11024 (vld1_*): Likewise.
11025 (vld1q_*): Likewise.
11026 (vld1_lane_*): Likewise.
11027 (vld1q_lane_*): Likewise.
11029 2013-01-07 Richard Biener <rguenther@suse.de>
11031 * lto-streamer.h (LTO_minor_version): Bump to 2.
11033 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
11035 * config/aarch64/aarch64-protos.h
11036 (aarch64_const_double_zero_rtx_p): Rename to...
11037 (aarch64_float_const_zero_rtx_p): ...this.
11038 (aarch64_float_const_representable_p): New.
11039 (aarch64_output_simd_mov_immediate): Likewise.
11040 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
11041 move immediate case.
11042 * config/aarch64/aarch64.c
11043 (aarch64_const_double_zero_rtx_p): Rename to...
11044 (aarch64_float_const_zero_rtx_p): ...this.
11045 (aarch64_print_operand): Allow printing of new constants.
11046 (aarch64_valid_floating_const): New.
11047 (aarch64_legitimate_constant_p): Check for valid floating-point
11049 (aarch64_simd_valid_immediate): Likewise.
11050 (aarch64_vect_float_const_representable_p): New.
11051 (aarch64_float_const_representable_p): Likewise.
11052 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
11053 (aarch64_output_simd_mov_immediate): New.
11054 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
11055 (*movdf_aarch64): Likewise.
11056 * config/aarch64/constraints.md (Ufc): New.
11057 (Y): call aarch64_float_const_zero_rtx.
11058 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
11060 2013-01-07 Richard Biener <rguenther@suse.de>
11062 PR tree-optimization/55888
11063 PR tree-optimization/55862
11064 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
11065 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
11066 not if it is contained therein.
11068 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
11070 * config/avr/t-avr: Typo.
11072 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
11075 * config/avr/t-avr: Don't automatically rebuild
11076 $(srcdir)/config/avr/t-multilib
11077 $(srcdir)/config/avr/avr-tables.opt
11078 $(srcdir)/doc/avr-mmcu.texi
11079 (avr-mcus): New phony target to build them on request.
11080 (s-avr-mlib, s-avr-mmcu-texi): Remove.
11081 * avr/avr-mcus.def: Adjust comments.
11083 2013-01-07 Uros Bizjak <ubizjak@gmail.com>
11085 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
11087 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11089 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
11091 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11093 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
11095 2013-01-05 David Edelsohn <dje.gcc@gmail.com>
11097 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
11098 to generate profiling.
11099 * config/rs6000/aix64.h (LIB_SPEC): Same.
11101 2013-01-04 Andrew Pinski <apinski@cavium.com>
11103 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
11105 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
11107 2013-01-04 Uros Bizjak <ubizjak@gmail.com>
11109 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
11111 (ix86_expand_move): Ditto.
11112 (ix86_zero_extend_to_Pmode): Ditto.
11113 (ix86_expand_call): Ditto.
11114 (ix86_expand_special_args_builtin): Ditto.
11115 (ix86_expand_builtin): Ditto.
11117 2013-01-04 Richard Biener <rguenther@suse.de>
11119 PR tree-optimization/55862
11120 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
11121 translating them through PHI nodes.
11123 2013-01-04 Martin Jambor <mjambor@suse.cz>
11125 PR tree-optimization/55755
11126 * tree-sra.c (sra_modify_assign): Do not check that an access has no
11127 children when trying to avoid producing a VIEW_CONVERT_EXPR.
11129 2013-01-04 Marek Polacek <polacek@redhat.com>
11131 PR middle-end/55859
11132 * opts.c (default_options_optimization): Clarify error message.
11134 2013-01-04 Richard Biener <rguenther@suse.de>
11136 PR middle-end/55863
11137 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
11140 2013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11143 * config/pa/pa.md (movsi): Revert previous change.
11144 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
11147 2013-01-03 Richard Henderson <rth@redhat.com>
11149 * config/i386/i386.c (ix86_expand_move): Always assign to op1
11150 after eliminating TLS symbols.
11152 2013-01-03 Marc Glisse <marc.glisse@inria.fr>
11155 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
11156 * graphite-poly.c (debug_gmp_value): Likewise.
11158 2013-01-03 Uros Bizjak <ubizjak@gmail.com>
11161 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
11162 selected code model, define __code_mode_small__, __code_model_medium__,
11163 __code_model_large__, __code_model_32__ or __code_model_kernel__.
11164 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
11165 xchg temporary register with %k. Declare temporary register as
11167 [__x86_64__]: For medium and large code models, preserve %rbx register.
11169 2013-01-03 Richard Biener <rguenther@suse.de>
11171 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
11172 (dump_subscript): Adjust.
11173 (finalize_ddr_dependent): Do not dump redundant info.
11174 (analyze_siv_subscript): Adjust.
11175 (subscript_dependence_tester): Likewise.
11176 (compute_affine_dependence): Likewise.
11178 2013-01-03 Richard Biener <rguenther@suse.de>
11181 2013-01-03 Richard Biener <rguenther@suse.de>
11183 PR tree-optimization/55857
11184 * tree-vect-stmts.c (vectorizable_load): Do not setup
11185 re-alignment for invariant loads.
11187 2013-01-02 Richard Biener <rguenther@suse.de>
11189 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
11190 invariant load do not generate a vector load from the scalar location.
11192 2013-01-03 Richard Biener <rguenther@suse.de>
11194 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
11195 for not vectorizing.
11196 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
11197 not build INDIRECT_REFs, call get_name once only.
11198 (vect_create_data_ref_ptr): Likewise. Dump base object kind
11199 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
11201 2013-01-03 Richard Biener <rguenther@suse.de>
11203 PR tree-optimization/55857
11204 * tree-vect-stmts.c (vectorizable_load): Do not setup
11205 re-alignment for invariant loads.
11207 2013-01-03 Richard Biener <rguenther@suse.de>
11210 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
11211 prefer a built-in decl.
11213 2013-01-03 Jakub Jelinek <jakub@redhat.com>
11215 * gcc.c (process_command): Update copyright notice dates.
11216 * gcov.c (print_version): Likewise.
11217 * gcov-dump.c (print_version): Likewise.
11219 PR rtl-optimization/55838
11220 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
11221 iv0.step, iv1.step and step.
11223 2013-01-03 Jakub Jelinek <jakub@redhat.com>
11224 Marc Glisse <marc.glisse@inria.fr>
11226 PR tree-optimization/55832
11227 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
11228 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
11229 integer_{one,zero}_node.
11231 2013-01-03 Jakub Jelinek <jakub@redhat.com>
11234 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
11235 * var-tracking.c (reverse_op): Don't add reverse ops to
11236 VALUEs that have already
11237 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
11239 2013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
11241 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
11243 2013-01-02 Teresa Johnson <tejohnson@google.com>
11245 * dumpfile.c (dump_loc): Print filename with location.
11246 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
11247 new location_t parameter to emit complete unroll message with
11248 new dump framework.
11249 (canonicalize_loop_induction_variables): Compute loops location
11250 and pass to try_unroll_loop_completely.
11251 * loop-unroll.c (report_unroll_peel): New function.
11252 (peel_loops_completely): Use new dump format with location
11253 for main dumpfile message, and invoke report_unroll_peel on success.
11254 (decide_unrolling_and_peeling): Ditto.
11255 (decide_peel_once_rolling): Remove old dumpfile message subsumed
11256 by report_unroll_peel.
11257 (decide_peel_completely): Ditto.
11258 (decide_unroll_constant_iterations): Ditto.
11259 (decide_unroll_runtime_iterations): Ditto.
11260 (decide_peel_simple): Ditto.
11261 (decide_unroll_stupid): Ditto.
11262 * cfgloop.c (get_loop_location): New function.
11263 * cfgloop.h (get_loop_location): Declare.
11265 2013-01-02 Sriraman Tallam <tmsriram@google.com>
11267 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
11270 2013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11272 PR middle-end/55198
11273 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
11274 BLKmode objects when EXPAND_MEMORY is specified.
11276 2013-01-02 Sriraman Tallam <tmsriram@google.com>
11278 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
11280 (fold_builtin_cpu): Do not share cpu model decls across statements.
11282 2013-01-02 Jason Merrill <jason@redhat.com>
11285 * tree.c (build_array_type_1): Revert earlier change.
11287 2013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
11289 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
11291 * config/aarch64/aarch64-tune.md: Re-generate.
11293 2013-01-02 Richard Biener <rguenther@suse.de>
11295 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
11296 invariant load do not generate a vector load from the scalar location.
11298 2013-01-02 Richard Biener <rguenther@suse.de>
11301 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
11302 * configure: Regenerate.
11304 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
11306 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
11307 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
11308 (expand_builtin_int_roundingfn_2): Keep the original target around
11309 for the fallback case.
11311 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
11313 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
11314 to be clear for sign changes.
11316 2013-01-01 Jan Hubicka <jh@suse.cz>
11318 * ipa-inline-analysis.c: Fix formatting.
11320 2013-01-01 Jakub Jelinek <jakub@redhat.com>
11322 PR tree-optimization/55831
11323 * tree-vect-loop.c (get_initial_def_for_induction): Use
11324 gsi_after_labels instead of gsi_start_bb.
11326 Copyright (C) 2013 Free Software Foundation, Inc.
11328 Copying and distribution of this file, with or without modification,
11329 are permitted in any medium without royalty provided the copyright
11330 notice and this notice are preserved.