| 2015-06-23 Ludovic Courtès <ludo@gnu.org> |
| |
| PR 65711 |
| * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move |
| '-dynamic-linker' within %{!shared: ...}. |
| |
| 2015-06-23 Release Manager |
| |
| * GCC 4.8.5 released. |
| |
| 2015-06-23 Richard Biener <rguenther@suse.de> |
| |
| * cpp.texi: Update displayed copyright years. |
| * cppinternals.texi: Likewise. |
| * gcc.texi: Likewise. |
| * gccint.texi: Likewise. |
| * gcov.texi: Likewise. |
| * install.texi: Likewise. |
| * invoke.texi: Likewise. |
| * gcc.c: Likewise. |
| * gcov-dump.c: Likewise. |
| * gcov.c: Likewise. |
| |
| 2015-06-18 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-12-04 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/56917 |
| * fold-const.c (fold_unary_loc): Perform the negation in A's type |
| when transforming ~ (A - 1) or ~ (A + -1) to -A. |
| |
| 2015-06-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/66233 |
| * fold-const.c (fold_unary_loc): Don't handle vector types. |
| Simplify. |
| * tree-ssa-forwprop.c (combine_conversions): Likewise. |
| |
| 2015-06-16 Richard Biener <rguenther@suse.de> |
| |
| Revert |
| 2015-06-01 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2015-05-26 Michael Matz <matz@suse.de> |
| |
| PR middle-end/66251 |
| * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set |
| STMT_VINFO_VEC_STMT, also with SLP. |
| |
| 2015-05-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/66251 |
| * tree-vect-stmts.c (vectorizable_conversion): Properly |
| set STMT_VINFO_VEC_STMT even for the SLP case. |
| |
| 2015-06-16 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| Backported from mainline r217076. |
| 2014-11-04 Michael Collison <michael.collison@linaro.org> |
| |
| * config/aarch64/iterators.md (lconst_atomic): New mode attribute |
| to support constraints for CONST_INT in atomic operations. |
| * config/aarch64/atomics.md |
| (atomic_<atomic_optab><mode>): Use lconst_atomic constraint. |
| (atomic_nand<mode>): Likewise. |
| (atomic_fetch_<atomic_optab><mode>): Likewise. |
| (atomic_fetch_nand<mode>): Likewise. |
| (atomic_<atomic_optab>_fetch<mode>): Likewise. |
| (atomic_nand_fetch<mode>): Likewise. |
| |
| 2015-06-12 Michael Matz <matz@suse.de> |
| |
| Backported from mainline |
| 2014-10-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/63623 |
| * var-tracking.c (stack_adjust_offset_pre_post_cb): New function. |
| (stack_adjust_offset_pre_post): Use it through for_each_inc_dec, |
| instead of only handling autoinc in dest if it is a MEM. |
| |
| 2015-06-12 Jakub Jelinek <jakub@redhat.com> |
| |
| Backported from mainline |
| 2014-12-15 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/62642 |
| * ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves. |
| |
| 2015-06-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/63608 |
| Backported from mainline |
| 2014-05-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case. |
| <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const. |
| |
| 2015-06-11 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus |
| CONST_INT for goto. |
| |
| 2015-06-11 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline, guarded with in_lto_p |
| 2015-06-02 Richard Biener <rguenther@suse.de> |
| |
| PR debug/65549 |
| * dwarf2out.c (lookup_context_die): New function. |
| (resolve_addr): Avoid forcing a full DIE for the |
| target of a DW_TAG_GNU_call_site during late compilation. |
| Instead create a stub DIE without a type if we have a |
| context DIE present. |
| |
| Backport from mainline |
| 2014-04-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/59626 |
| * ipa.c (process_references, symtab_remove_unreachable_nodes): |
| Drop bodies of always inline after early inlining. |
| (symtab_remove_unreachable_nodes): Remove always_inline attribute. |
| |
| 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| Backport from mainline: |
| 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/66474 |
| * doc/md.texi (Machine Constraints): Document that on the PowerPC |
| if you use a constraint that targets a VSX register, you must use |
| %x<n> in the template. |
| |
| 2015-06-10 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-04-04 Cong Hou <congh@google.com> |
| |
| PR tree-optimization/60656 |
| * tree-vect-stmts.c (supportable_widening_operation): |
| Fix a bug that elements in a vector with vect_used_by_reduction |
| property are incorrectly reordered when the operation on it is not |
| consistant with the one in reduction operation. |
| |
| 2014-01-31 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/59990 |
| * builtins.c (fold_builtin_memory_op): Make sure to not |
| use a floating-point mode or a boolean or enumeral type for |
| the copy operation. |
| |
| 2015-06-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/66470 |
| * config/i386/i386.c (ix86_split_long_move): For collisions |
| involving direct tls segment refs, move the UNSPEC_TP possibly |
| wrapped in ZERO_EXTEND out of the address for lea, to each of |
| the memory loads. |
| |
| 2015-06-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline: |
| 2015-06-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/66275 |
| * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi |
| to determine current function ABI. |
| (ix86_function_value_regno_p): Ditto. |
| |
| 2015-06-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com> |
| |
| * config/i386/sse.md (sse3_mwait): Swap the operand constriants. |
| |
| 2015-06-03 Jakub Jelinek <jakub@redhat.com> |
| |
| Backported from mainline |
| 2015-05-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/66133 |
| * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion, |
| make sure it is never noreturn, even when the task body does not |
| return. |
| (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE |
| right before GIMPLE_OMP_RETURN. |
| * tree-cfg.c (make_edges): Accept GIMPLE_OMP_CONTINUE as ->cont |
| for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to |
| GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit. |
| |
| 2015-04-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/65680 |
| * expr.c (get_inner_reference): Handle bit_offset that doesn't fit |
| into signed HOST_WIDE_INT the same as negative bit_offset. |
| |
| 2015-03-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/65368 |
| * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn, |
| new define_expand. |
| (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns. |
| |
| 2015-02-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR gcov-profile/64634 |
| * tree-eh.c (frob_into_branch_around): Fix up typos |
| in function comment. |
| (lower_catch): Put eh_seq resulting from EH lowering of |
| the cleanup sequence after the cleanup rather than before |
| it. |
| |
| 2015-06-03 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2015-05-26 Michael Matz <matz@suse.de> |
| |
| PR middle-end/66251 |
| * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set |
| STMT_VINFO_VEC_STMT, also with SLP. |
| |
| 2015-05-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/66251 |
| * tree-vect-stmts.c (vectorizable_conversion): Properly |
| set STMT_VINFO_VEC_STMT even for the SLP case. |
| |
| 2015-03-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/65518 |
| * tree-vect-stmts.c (vectorizable_load): Reject single-element |
| interleaving cases we generate absymal code for. |
| |
| 2015-05-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/66123 |
| * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found |
| a taken edge. |
| |
| 2015-05-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/66272 |
| Revert parts of |
| 2014-08-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/62031 |
| * tree-data-ref.c (dr_analyze_indices): Do not set |
| DR_UNCONSTRAINED_BASE. |
| (dr_may_alias_p): All indirect accesses have to go the |
| formerly DR_UNCONSTRAINED_BASE path. |
| * tree-data-ref.h (struct indices): Remove |
| unconstrained_base member. |
| (DR_UNCONSTRAINED_BASE): Remove. |
| |
| 2015-06-01 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| Backport from mainline |
| 2015-05-29 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| PR target/66215 |
| * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs |
| with -mhotpatch=. |
| |
| 2015-05-28 Mike Frysinger <vapier@gentoo.org> |
| |
| * config/microblaze/linux.h (CPP_SPEC): Define. |
| |
| 2015-05-28 Mike Frysinger <vapier@gentoo.org> |
| |
| * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when |
| -pthread is specified. |
| |
| 2015-05-27 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/66148 |
| * config/pa/pa.c (pa_emit_move_sequence): Correct placement of |
| REG_EQUAL note when doing insert. |
| |
| 2015-05-26 Rohit Arul Raj <rohitarulraj@freescale.com> |
| |
| Backported from mainline |
| 2015-05-14 Rohit Arul Raj <rohitarulraj@freescale.com> |
| |
| * varasm.c (output_constant_pool_1): Pass down alignment from |
| constant pool entry's descriptor to output_constant_pool_2. |
| (output_object_block): Add comment prior to call to |
| output_constant_pool_1. |
| |
| 2015-05-21 Sandra Loosemore <sandra@codesourcery.com> |
| |
| Backport from mainline r223418: |
| * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all |
| to build a biarch toolchain again. |
| |
| 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * doc/invoke.texi: Add missing cpu types for march option: z196 |
| and zEC12. |
| |
| 2015-05-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| Backport from mainline |
| 2015-05-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int |
| and zEC12_simple_fp. |
| * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12 |
| to 1. |
| |
| 2015-05-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/66140 |
| * config/alpha/alpha.c (get_aligned_mem): Also look for reload |
| replacements in memory addresses. |
| (get_unaligned_address): Ditto. |
| |
| 2015-05-11 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.opt (-mcompat-align-parm): Reset initial |
| value that was modified by accident in my last change. |
| |
| 2015-05-05 Shanyao Chen <chenshanyao@huawei.com> |
| |
| Backported from mainline |
| 2015-01-19 Jiong Wang <jiong.wang@arm.com> |
| Andrew Pinski <apinski@cavium.com> |
| |
| PR target/64304 |
| * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted. |
| (ashl<mode>3): Don't expand if operands[2] is not constant. |
| |
| 2015-05-05 Peter Bergner <bergner@vnet.ibm.com> |
| |
| Backport from mainline. |
| 2015-04-27 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/64579 |
| * config/rs6000/htm.md: Remove all define_expands. |
| (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC, |
| UNSPECV_HTM_TABORTWCI): Remove. |
| (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New. |
| (tabort_internal, tbegin_internal, tcheck_internal, tend_internal, |
| trechkpt_internal, treclaim_internal, tsr_internal): Rename from this... |
| (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this. |
| (tabortdc_internal, tabortdci_internal, tabortwc_internal, |
| tabortwci_internal): Remove define_insns. |
| (tabort<wd>c, tabort<wd>ci): New define_insns. |
| (tabort): Use gpc_reg_operand. |
| (tcheck): Remove operand. |
| (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro. |
| * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as |
| expected value. |
| * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove. |
| (BU_HTM_SPR1): Rename to BU_HTM_V1. Remove use of RS6000_BTC_SPR. |
| (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin, |
| tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend, |
| tsr, ttest): Pass in the RS6000_BTC_CR attribute. |
| (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr, |
| get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute. |
| (tcheck): Remove builtin argument. |
| * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64 |
| not TARGET_64BIT. |
| (htm_expand_builtin): Fix usage of expandedp. Disallow usage of the |
| tabortdc and tabortdci builtins when not in 64-bit mode. |
| Modify code to handle the loss of the HTM define_expands. |
| Emit code to copy the CR register to TARGET. |
| (htm_init_builtins): Modify code to handle the loss of the HTM |
| define_expands. |
| * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete. |
| (RS6000_BTC_64BIT): Likewise. |
| (RS6000_BTC_CR): New macro. |
| * doc/extend.texi: Update documentation for htm builtins. |
| |
| 2015-04-30 Marek Polacek <polacek@redhat.com> |
| |
| Backported from mainline |
| 2014-12-03 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/64153 |
| * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check |
| type sizes before view_converting. |
| |
| 2014-12-01 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/63551 |
| * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert |
| value of the argument to the type of the value in the condition. |
| |
| 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r222385 |
| 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove |
| asterisk from name so this can be generated directly. |
| (*altivec_stvx_<mode>_internal): Likewise. |
| * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert |
| that this is never called during or after reload/lra. |
| (rs6000_frame_related): Remove split_reg |
| argument and logic that references it. |
| (emit_frame_save): Remove last parameter from call to |
| rs6000_frame_related. |
| (rs6000_emit_prologue): Remove last parameter from eight calls to |
| rs6000_frame_related. Force generation of stvx instruction for |
| Altivec register saves. Remove split_reg handling, which is no |
| longer needed. |
| (rs6000_emit_epilogue): Force generation of lvx instruction for |
| Altivec register restores. |
| |
| 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| Backport from mainline |
| 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/65849 |
| * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that |
| save to independent variables use the Save attribute. This will |
| allow these options to be modified with the #pragma/attribute |
| target support. |
| (-mallow-movmisalign): Likewise. |
| (-mallow-df-permute): Likewise. |
| (-msched-groups): Likewise. |
| (-malways-hint): Likewise. |
| (-malign-branch-targets): Likewise. |
| (-mvectorize-builtins): Likewise. |
| (-msave-toc-indirect): Likewise. |
| |
| * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that |
| can be set via the #pragma/attribute target support. |
| (rs6000_opt_vars): Likewise. |
| (rs6000_inner_target_options): If VSX was set, also set |
| -mno-avoid-indexed-addresses. |
| |
| 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r222362 |
| 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change |
| TARGET_CRYPTO to TARGET_P8_VECTOR> |
| (crypto_vpermxor_<mode>): Likewise. |
| * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define. |
| (BU_CRYPTO_3A): Likewise. |
| (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2. |
| (BU_CRYPTO_OVERLOAD_3A): New #define. |
| (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A. |
| (VPMSUMH): Likewise. |
| (VPMSUMW): Likewise. |
| (VPMSUMD): Likewise. |
| (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A. |
| (VPERMXOR_V4SI): Likewise. |
| (VPERMXOR_V8HI): Likewise. |
| (VPERMXOR_V16QI): Likewise. |
| (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to |
| BU_CRYPTO_OVERLOAD_2A. |
| (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to |
| BU_CRYPTO_OVERLOAD_3A. |
| * config/rs6000/rs6000.opt (mcrypto): Change description of |
| option. |
| |
| Backport from mainline r222362 |
| 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.opt (mcrypto): Change option description to |
| match category changes in ISA 2.07B. |
| |
| 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r222351 |
| 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary |
| adjustments. |
| (insn_is_swappable_p): Return 1 for a convert from double to |
| single precision when all of its uses are splats of BE element |
| zero. |
| |
| 2015-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r222349 |
| 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/65456 |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): For |
| VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and |
| TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line |
| option. |
| (rs6000_builtin_mask_for_load): Return 0 for targets with |
| efficient unaligned VSX accesses so that the vectorizer will use |
| direct unaligned loads. |
| (rs6000_builtin_support_vector_misalignment): Always return true |
| for targets with efficient unaligned VSX accesses. |
| (rs6000_builtin_vectorization_cost): Cost of unaligned loads and |
| stores on targets with efficient unaligned VSX accesses is almost |
| always the same as the cost of an aligned load or store, so model |
| it that way. |
| * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for |
| unaligned vectors if we have efficient unaligned VSX accesses. |
| * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New |
| undocumented option. |
| |
| 2015-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| Backport from mainline r222205 |
| 2015-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/65787 |
| * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a |
| subsequent SH_NONE operand does not overwrite an existing *special |
| value. |
| (adjust_extract): Handle case where a vec_extract operation is |
| wrapped in a PARALLEL. |
| |
| 2015-04-02 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_output_move_double): Directly handle register |
| indexed memory operand. Simplify handling of scaled register indexed |
| memory operands. |
| |
| 2015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching |
| nested functions. |
| (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw. |
| (s390_asm_output_function_label): Adapt to new signature of |
| s390_function_num_hotpatch_hw |
| Optimise the code generating assembler output. |
| Add comments to assembler file. |
| |
| 2015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_function_num_hotpatch_hw): Remove special |
| cases for not hotpatching main () and artificial functions. |
| |
| 2015-03-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport of r214242, r214254, and bug fix patches from mainline |
| * config/rs6000/rs6000.c (tree-pass.h): New #include. |
| (rs6000_analyze_swaps): New declaration. |
| (gate_analyze_swaps): New function. |
| (execute_analyze_swaps): Likewise. |
| (pass_analyze_swaps): New struct rtl_opt_pass. |
| (rs6000_option_override): Register swap-optimization pass. |
| (swap_web_entry): New class. |
| (special_handling_values): New enum. |
| (union_defs): New function. |
| (union_uses): Likewise. |
| (insn_is_load_p): Likewise. |
| (insn_is_store_p): Likewise. |
| (insn_is_swap_p): Likewise. |
| (rtx_is_swappable_p): Likewise. |
| (insn_is_swappable_p): Likewise. |
| (chain_purpose): New enum. |
| (chain_contains_only_swaps): New function. |
| (mark_swaps_for_removal): Likewise. |
| (swap_const_vector_halves): Likewise. |
| (adjust_subreg_index): Likewise. |
| (permute_load): Likewise. |
| (permute_store): Likewise. |
| (adjust_extract): Likewise. |
| (adjust_splat): Likewise. |
| (handle_special_swappables): Likewise. |
| (replace_swap_with_copy): Likewise. |
| (dump_swap_insn_table): Likewise. |
| (rs6000_analyze_swaps): Likewise. |
| * config/rs6000/rs6000.opt (moptimize-swaps): New option. |
| * df.h (web_entry_base): New class, replacing struct web_entry. |
| (web_entry_base::pred): New method. |
| (web_entry_base::set_pred): Likewise. |
| (web_entry_base::unionfind_root): Likewise. |
| (web_entry_base::unionfind_union): Likewise. |
| (unionfind_root): Delete external reference. |
| (unionfind_union): Likewise. |
| (union_defs): Likewise. |
| * web.c (web_entry_base::unionfind_root): Convert to method. |
| (web_entry_base::unionfind_union): Likewise. |
| (web_entry): New class. |
| (union_match_dups): Convert to use class structure. |
| (union_defs): Likewise. |
| (entry_register): Likewise. |
| (web_main): Likewise. |
| |
| 2015-03-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/vsx.md (*vsx_extract_<mode>_zero): Remove |
| endianness requirement. |
| (*vsx_extract_<mode>_one_le): Remove define_insn. |
| |
| 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| Backport from mainline |
| 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian. |
| |
| 2015-03-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/65409 |
| * expr.c (store_field): Do not do a direct block copy if the source is |
| a PARALLEL with BLKmode. |
| |
| 2015-03-12 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_reorg): Move code to output nops after label |
| to s390_reorg (). |
| (s390_asm_output_function_label): Likewise. |
| * config/s390/s390.c (s390_asm_output_function_label): |
| Fix function label alignment with -mhtopatch. |
| * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE, |
| UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE |
| ("nop_2_byte"): New define_insn. |
| ("nop_4_byte"): Likewise. |
| ("nop_6_byte"): Likewise. |
| * doc/extend.texi (hotpatch): hotpatch attribute doc fixes. |
| * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes. |
| |
| 2015-03-12 Marek Polacek <polacek@redhat.com> |
| |
| Backport from mainline |
| 2015-03-11 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/65388 |
| * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison. |
| |
| 2015-03-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/65286 |
| * config/rs6000/t-linux: For powerpc64* target set |
| MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME. |
| |
| 2015-03-10 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/53988 |
| * config/sh/sh.md (*tst<mode>_t_zero): Remove insns. |
| |
| 2015-03-10 Alan Modra <amodra@gmail.com> |
| |
| PR target/65286 |
| * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux |
| to be single-arch by default. Set cpu_is_64bit for powerpc64 |
| given --with-cpu=native. |
| * config/rs6000/t-fprules: Do not set default MULTILIB vars. |
| * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64 |
| and powerpc64le. |
| * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test |
| rs6000_isa_flags rather than TARGET_64BIT. |
| |
| 2015-03-05 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| Backport from trunk |
| 2015-03-03 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR 65138/target |
| * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic |
| processor type for 64-bit little endian PowerPC. |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): If |
| -mdebug=reg, print TARGET_DEFAULT. Fix logic to use |
| TARGET_DEFAULT if there is no default cpu. Fix -mdebug=reg |
| printing built-in mask so it does not pass NULL pointers. |
| |
| * config/rs6000/rs6000-tables.opt: Regenerate. |
| |
| * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document |
| -mcpu=powerpc64le. |
| |
| Backport from trunk |
| 2015-01-19 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/default64.h: Include rs6000-cpus.def. |
| (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8). |
| (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4. |
| * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7 |
| and POWER8. |
| * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to |
| POWER8. |
| * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine |
| pseudo-op to specify assembler dialect. |
| |
| 2015-03-04 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| Backport from mainline |
| 2014-11-27 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR target/59593 |
| * config/arm/arm.c (dump_minipool): dispatch to consttable pattern |
| based on mode size. |
| * config/arm/arm.md (consttable_1): Make it TARGET_EITHER. |
| (consttable_2): Make it TARGET_EITHER and move HFmode handling from |
| consttable_4 to it. |
| (consttable_4): Move HFmode handling to consttable_2 pattern. |
| |
| 2015-03-04 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| Backport from mainline |
| 2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR target/64453 |
| * config/arm/arm.c (callee_saved_reg_p): Define. |
| (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if |
| register is callee saved instead of !call_used_regs[reg]. |
| (thumb1_compute_save_reg_mask): Likewise. |
| |
| 2015-02-27 Richard Biener <rguenther@suse.de> |
| |
| PR lto/65193 |
| Backport from mainline |
| 2014-07-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL |
| as non-indexable. |
| |
| 2015-02-26 Peter Bergner <bergner@vnet.ibm.com> |
| |
| Backport from mainline |
| 2015-02-25 Adhemerval Zanella <azanella@linux.vnet.ibm.com> |
| |
| * config/rs6000/htm.md (tcheck): Fix assembly encoding. |
| |
| 2015-02-26 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-11-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/61634 |
| * tree-vect-slp.c: (vect_detect_hybrid_slp_stmts): Rewrite to |
| propagate hybrid down the SLP tree for one scalar statement. |
| (vect_detect_hybrid_slp_1): New walker function. |
| (vect_detect_hybrid_slp_2): Likewise. |
| (vect_detect_hybrid_slp): Properly handle pattern statements |
| in a pre-scan over all loop stmts. |
| |
| 2015-02-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/65196 |
| * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized |
| only with NONDEBUG_INSN_P. |
| |
| 2015-02-25 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2015-02-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63593 |
| * tree-predcom.c (execute_pred_commoning_chain): Delay removing |
| stmts and releasing SSA names until... |
| (execute_pred_commoning): ... after processing all chains. |
| |
| 2015-02-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/65063 |
| * tree-predcom.c (determine_unroll_factor): Return 1 if we |
| have replaced looparound PHIs. |
| |
| 2015-02-24 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-11-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63844 |
| * omp-low.c (fixup_child_record_type): Use a restrict qualified |
| referece type for the receiver parameter. |
| |
| 2015-02-24 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-12-09 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/64199 |
| * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P. |
| |
| 2015-01-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/64493 |
| PR tree-optimization/64495 |
| * tree-vect-loop.c (vect_finalize_reduction): For double-reductions |
| assign the proper vectorized PHI to the inner loop exit PHIs. |
| |
| 2015-02-24 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2015-01-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/56273 |
| PR tree-optimization/59124 |
| PR tree-optimization/64277 |
| * tree-vrp.c (vrp_finalize): Emit array-bound warnings only |
| from the first VRP pass. |
| |
| 2015-02-24 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2015-02-11 Richard Biener <rguenther@suse.de> |
| |
| PR lto/65015 |
| * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list |
| and -fresolution. |
| |
| 2015-02-13 Richard Biener <rguenther@suse.de> |
| |
| PR lto/65015 |
| * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name |
| for LTO produced CUs. |
| |
| 2015-02-16 Richard Biener <rguenther@suse.de> |
| |
| PR lto/65015 |
| * varasm.c (default_file_start): For LTO produced units |
| emit <artificial> as file directive. |
| |
| 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com> |
| |
| * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed. |
| |
| 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| Backport from mainline |
| 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/65163 |
| * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536 |
| instead of const_int 4294901760. |
| |
| 2015-02-23 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| Backport from mainline |
| 2015-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * doc/extend.texi: s/390: Update documentation of hotpatch attribute. |
| * doc/invoke.texi (-mhotpatch): s/390: Update documentation of |
| -mhotpatch= option. |
| * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and |
| -mno-hotpatch options. Change syntax of -mhotpatch= option. |
| * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): |
| Renamed. |
| (s390_hotpatch_trampoline_halfwords_max): Renamed. |
| (s390_hotpatch_hw_max): New name. |
| (s390_hotpatch_trampoline_halfwords): Renamed. |
| (s390_hotpatch_hw_before_label): New name. |
| (get_hotpatch_attribute): Removed. |
| (s390_hotpatch_hw_after_label): New name. |
| (s390_handle_hotpatch_attribute): Add second parameter to hotpatch |
| attribute. |
| (s390_attribute_table): Ditto. |
| (s390_function_num_hotpatch_trampoline_halfwords): Renamed. |
| (s390_function_num_hotpatch_hw): New name. |
| Remove special handling of inline functions and hotpatching. |
| Return number of nops before and after the function label. |
| (s390_can_inline_p): Removed. |
| (s390_asm_output_function_label): Emit a configurable number of nops |
| after the function label. |
| (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch. |
| (TARGET_CAN_INLINE_P) Removed. |
| (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New. |
| |
| 2015-02-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline |
| 2014-12-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/64113 |
| * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn |
| using post-reload splitter. Use peephole2 pass instead. |
| (call_value_osf_tlsldm): Ditto. |
| (TLS_CALL): New int iterator. |
| (tls): New int attribute. |
| (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd |
| and call_value_tlsldm using TLS_CALL int iterator. |
| |
| 2015-02-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline |
| 2015-01-22 Wei Mi <wmi@google.com> |
| |
| PR rtl-optimization/64557 |
| * dse.c (record_store): Call get_addr for mem_addr. |
| (check_mem_read_rtx): Likewise. |
| |
| Backport from mainline |
| 2014-10-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * varasm.c (const_alias_set): Remove. |
| (init_varasm_once): Remove initialization of const_alias_set. |
| (build_constant_desc): Do not set alias set to const_alias_set. |
| |
| Backport from mainline |
| 2014-10-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/63475 |
| * alias.c (true_dependence_1): Always use get_addr to extract |
| true address operands from x_addr and mem_addr. Use extracted |
| address operands to check for references with alignment ANDs. |
| Use extracted address operands with find_base_term and |
| base_alias_check. For noncanonicalized operands call canon_rtx with |
| extracted address operand. |
| (write_dependence_1): Ditto. |
| (may_alias_p): Ditto. Remove unused calls to canon_rtx. |
| |
| Backport from mainline |
| 2014-10-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/63483 |
| * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P |
| references when alignment ANDs are involved. |
| (write_dependence_p): Ditto. |
| (may_alias_p): Ditto. |
| |
| Backport from mainline |
| 2013-03-26 Richard Biener <rguenther@suse.de> |
| |
| * alias.c (find_base_term): Avoid redundant and not used recursion. |
| (base_alias_check): Get the initial base term from the caller. |
| (true_dependence_1): Compute and pass base terms to base_alias_check. |
| (write_dependence_p): Likewise. |
| (may_alias_p): Likewise. |
| |
| 2015-02-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| Backport from 2015-02-20 trunk r220847. |
| |
| PR target/64452 |
| * config/avr/avr.md (pushhi_insn): New insn. |
| (push<mode>1): Push virtual regs in one chunk using pushhi1_insn. |
| |
| 2015-02-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline |
| 2013-09-08 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * ira.c (update_equiv_regs): Only call set_paradoxical_subreg |
| for non-debug insns. |
| * lra.c (new_insn_reg): Take the containing insn as a parameter. |
| Only modify lra_reg_info[].biggest_mode if it's non-debug insn. |
| (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update |
| accordingly. |
| |
| 2015-02-17 Ilya Tocar <ilya.tocar@intel.com> |
| |
| Backported from mainline |
| 2015-01-14 Ilya Tocar <ilya.tocar@intel.com> |
| |
| PR target/64387 |
| * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate. |
| |
| 2015-02-12 Jakub Jelinek <jakub@redhat.com> |
| |
| Backported from mainline |
| 2015-02-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/64979 |
| * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for |
| va_list escapes. |
| |
| 2015-02-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2 |
| and 3 earlyclobber operands. |
| |
| 2015-02-05 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64580 |
| Backport from mainline |
| * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order. |
| (rs6000_stack_info): Add assert. |
| (rs6000_output_savres_externs): New function, split off from... |
| (rs6000_output_function_prologue): ... here. Do not call it for |
| thunks. |
| |
| 2015-02-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline |
| 2015-01-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/64882 |
| * config/i386/predicates.md (address_no_seg_operand): Reject |
| non-CONST_INT_P operands in invalid mode. |
| |
| Backport from mainline |
| 2015-01-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (lea_address_operand): Call |
| address_operand with VOIDmode. |
| (vsib_address_operand): Ditto. |
| |
| 2015-02-01 Jakub Jelinek <jakub@redhat.com> |
| |
| Backported from mainline |
| 2015-01-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/61058 |
| * jump.c (cleanup_barriers): Update basic block boundaries |
| if BLOCK_FOR_INSN is non-NULL on PREV. |
| |
| 2013-04-16 Steven Bosscher <steven@gcc.gnu.org> |
| |
| PR middle-end/43631 |
| * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making |
| the moved barrier the tail of the basic block it follows. |
| |
| 2015-01-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add |
| OPTION_MASK_QUAD_MEMORY_ATOMIC. |
| |
| 2015-01-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/64563 |
| * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE |
| instead of != VR_VARYING. |
| |
| PR target/64513 |
| * config/i386/i386.c (ix86_expand_prologue): Add |
| REG_FRAME_RELATED_EXPR to %rax and %r10 pushes. |
| |
| 2015-01-29 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/avx2intrin.h (_mm256_bslli_epi128, |
| _mm256_bsrli_epi128): New. |
| * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto. |
| |
| 2015-01-27 Mikael Pettersson <mikpelinux@gmail.com> |
| |
| Backport from mainline |
| |
| 2013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR middle-end/57748 |
| * expr.c (expand_assignment): Remove misalignp code path. |
| |
| 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR middle-end/57748 |
| * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter |
| inner_reference_p. |
| (expand_expr, expand_normal): Adjust. |
| * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter |
| inner_reference_p. Use inner_reference_p to expand inner references. |
| (store_expr): Adjust. |
| * cfgexpand.c (expand_call_stmt): Adjust. |
| |
| 2015-01-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline |
| 2015-01-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/64795 |
| * config/i386/i386.md (*movdi_internal): Also check operand 0 |
| to determine TYPE_LEA operand. |
| (*movsi_internal): Ditto. |
| |
| Backport from mainline |
| 2015-01-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for |
| alternative 1. |
| |
| 2015-01-15 Martin Liska <mliska@suse.cz> |
| |
| Backport from mainline |
| 2014-11-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63704 |
| * alias.c (mems_in_disjoint_alias_sets_p): Remove assert |
| and instead return false when !fstrict-aliasing. |
| |
| 2015-01-14 Renlin Li <renlin.li@arm.com> |
| |
| Backport form mainline |
| 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR target/61413 |
| * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition |
| of __ARM_SIZEOF_WCHAR_T. |
| |
| 2015-01-13 Pat Haugen <pthaugen@us.ibm.com> |
| |
| Backport from mainline |
| 2014-12-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64358 |
| * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the |
| input operands if only the second is inverted. |
| * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128): |
| Swap BOOL_REGS_OP1 and BOOL_REGS_OP2. Correct arguments to |
| rs6000_split_logical. |
| (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2]. |
| |
| 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| Backport form mainline |
| 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/64479 |
| * rtlanal.c (set_reg_p): Handle SEQUENCE constructs. |
| |
| 2014-12-27 H.J. Lu <hongjiu.lu@intel.com> |
| |
| Backport from mainline: |
| 2014-12-27 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/64409 |
| * config/i386/i386.c (ix86_function_type_abi): Issue an error |
| when ms_abi attribute is used with x32. |
| |
| 2014-12-19 H.J. Lu <hongjiu.lu@intel.com> |
| |
| Backported from mainline |
| 2014-12-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/64037 |
| * combine.c (setup_incoming_promotions): Pass the argument |
| before any promotions happen to promote_function_mode. |
| |
| 2014-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * BASE-VER: Set to 4.8.5. |
| * DEV-PHASE: Set to prerelease. |
| |
| 2014-12-19 Release Manager |
| |
| * GCC 4.8.4 released. |
| |
| 2014-12-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| Backport from trunk. |
| PR fortran/61407 |
| * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10 |
| and above. |
| * config/darwin-driver.c (darwin_find_version_from_kernel): Removed |
| kernel version check to avoid incrementing it after every major OS X |
| release. |
| (darwin_default_min_version): Avoid static memory buffer. |
| |
| 2014-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/64265 |
| * tsan.c (instrument_func_entry): Insert __tsan_func_entry |
| call on edge from entry block to single succ instead |
| of after labels of single succ of entry block. |
| |
| 2014-12-13 Jakub Jelinek <jakub@redhat.com> |
| |
| Backported from mainline |
| 2014-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/64269 |
| * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if |
| len2 or diff are too large. |
| |
| 2014-12-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/md.texi (Insn Lengths): Fix description of (pc). |
| |
| 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline |
| 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New |
| built-in definition. |
| (XVCVUXDDP_SCALE): Likewise. |
| (XVCVDPSXDS_SCALE): Likewise. |
| (XVCVDPUXDS_SCALE): Likewise. |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| entries for VSX_BUILTIN_XVCVSXDDP_SCALE, |
| VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and |
| VSX_BUILTIN_XVCVDPUXDS_SCALE. |
| * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New |
| prototype. |
| * config/rs6000/rs6000.c (real.h): New include. |
| (rs6000_scale_v2df): New function. |
| * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec. |
| (UNSPEC_VSX_XVCVUXDDP): Likewise. |
| (UNSPEC_VSX_XVCVDPSXDS): Likewise. |
| (UNSPEC_VSX_XVCVDPUXDS): Likewise. |
| (vsx_xvcvsxddp_scale): New define_expand. |
| (vsx_xvcvsxddp): New define_insn. |
| (vsx_xvcvuxddp_scale): New define_expand. |
| (vsx_xvcvuxddp): New define_insn. |
| (vsx_xvcvdpsxds_scale): New define_expand. |
| (vsx_xvcvdpsxds): New define_insn. |
| (vsx_xvcvdpuxds_scale): New define_expand. |
| (vsx_xvcvdpuxds): New define_insn. |
| * doc/extend.texi (vec_ctf): Add new prototypes. |
| (vec_cts): Likewise. |
| (vec_ctu): Likewise. |
| (vec_splat): Likewise. |
| (vec_div): Likewise. |
| (vec_mul): Likewise. |
| |
| Backport from mainline |
| 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.h (vec_xl): New #define. |
| (vec_xst): Likewise. |
| * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in. |
| (XXSPLTD_V2DI): Likewise. |
| (DIV_V2DI): Likewise. |
| (UDIV_V2DI): Likewise. |
| (MUL_V2DI): Likewise. |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI, |
| VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI, |
| VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI). |
| * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec. |
| (UNSPEC_VSX_DIVSD): Likewise. |
| (UNSPEC_VSX_DIVUD): Likewise. |
| (UNSPEC_VSX_MULSD): Likewise. |
| (vsx_mul_v2di): New insn-and-split. |
| (vsx_div_v2di): Likewise. |
| (vsx_udiv_v2di): Likewise. |
| (vsx_xxspltd_<mode>): New insn. |
| |
| Backport from mainline |
| 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.h (vec_cpsgn): New #define. |
| (vec_mergee): Likewise. |
| (vec_mergeo): Likewise. |
| (vec_cntlz): Likewise. |
| * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new |
| entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR, |
| VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P, |
| VMRGEW, and VMRGOW. |
| * doc/extend.texi: Document various forms of vec_cpsgn, |
| vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor, |
| vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq, |
| vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne, |
| vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt, |
| vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz. |
| |
| Backport from mainline |
| 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI. |
| (altivec_vsldoi_<mode>): Likewise. |
| |
| 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline: |
| 2014-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR middle-end/64225 |
| * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation |
| for BUILT_IN_POW when flag_errno_math is present. |
| |
| 2014-12-10 Marek Polacek <polacek@redhat.com> |
| |
| Backport from mainline |
| 2014-12-10 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/61686 |
| * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of |
| p->high. |
| |
| 2014-12-09 David Edelsohn <dje.gcc@gmail.com> |
| |
| Backport from mainline |
| 2014-12-05 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append |
| alignment to section name. Increase default alignment to |
| word. |
| |
| 2014-12-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR bootstrap/64213 |
| Revert: |
| 2014-11-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/64037 |
| * combine.c (setup_incoming_promotions): Pass the argument |
| before any promotions happen to promote_function_mode. |
| |
| 2014-12-08 Richard Biener <rguenther@suse.de> |
| |
| Backport from 4.9 branch |
| * configure.ac |
| (ac_has_isl_schedule_constraints_compute_schedule): |
| New check. |
| * graphite-clast-to-gimple.c: For ISL 0.14, include deprecate headers. |
| * graphite-interchange.c: Ditto. |
| * graphite-poly.c: Ditto. |
| * graphite-sese-to-poly.c: Ditto. |
| * graphite-optimize-isl.c (getScheduleForBandList): Ditto. |
| Conditionally use ISL 0.13+ functions. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| |
| 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| Backport from mainline |
| 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/50751 |
| * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1. |
| |
| 2014-12-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| Backport from mainline |
| 2014-11-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/64037 |
| * combine.c (setup_incoming_promotions): Pass the argument |
| before any promotions happen to promote_function_mode. |
| |
| 2014-12-04 Shanyao Chen <chenshanyao@huawei.com> |
| |
| Backport from mainline |
| 2014-11-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR target/59593 |
| * config/arm/arm.md (*movhi_insn): Use right formatting |
| for immediate. |
| |
| 2014-11-19 Felix Yang <felix.yang@huawei.com> |
| Shanyao Chen <chenshanyao@huawei.com> |
| |
| PR target/59593 |
| * config/arm/arm.md (define_attr "arch"): Add v6t2. |
| (define_attr "arch_enabled"): Add test for the above. |
| (*movhi_insn_arch4): Add new alternative. |
| |
| 2014-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/56493 |
| * convert.c (convert_to_real, convert_to_expr, convert_to_complex): |
| Handle COMPOUND_EXPR. |
| |
| 2014-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| PR target/64115 |
| * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove |
| invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING. |
| |
| 2014-12-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/64111 |
| * tree.c (int_cst_hash_hash): Use TYPE_UID instead of |
| htab_hash_pointer to not break PCH. |
| |
| 2014-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| Backported from mainline |
| 2014-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/64067 |
| * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>: |
| Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL |
| not only if modifier is EXPAND_INITIALIZER, but whenever |
| COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC. |
| |
| 2014-10-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/63659 |
| * ree.c (update_reg_equal_equiv_notes): New function. |
| (combine_set_extension, transform_ifelse): Use it. |
| |
| 2014-10-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR libgomp/61200 |
| * omp-low.c (taskreg_contexts): New variable. |
| (scan_omp_parallel): Push newly created context into taskreg_contexts |
| vector and move record layout code to finish_taskreg_scan. |
| (scan_omp_task): Likewise. |
| (finish_taskreg_scan): New function. |
| (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts |
| vector elements and release it. |
| |
| 2014-11-26 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-10-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/61969 |
| * tree-nrv.c (pass_nrv::execute): Properly test for automatic |
| variables. |
| |
| 2014-08-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/62031 |
| * tree-data-ref.c (dr_analyze_indices): Do not set |
| DR_UNCONSTRAINED_BASE. |
| (dr_may_alias_p): All indirect accesses have to go the |
| formerly DR_UNCONSTRAINED_BASE path. |
| * tree-data-ref.h (struct indices): Remove |
| unconstrained_base member. |
| (DR_UNCONSTRAINED_BASE): Remove. |
| |
| 2014-10-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63379 |
| * tree-vect-slp.c (vect_get_constant_vectors): Do not compute |
| a neutral operand for min/max when it is not a reduction chain. |
| |
| 2014-11-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63605 |
| * fold-const.c (fold_binary_loc): Properly use element_precision |
| for types that may not be scalar. |
| |
| 2014-10-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63665 |
| * fold-const.c (fold_comparison): Properly guard simplifying |
| against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS. |
| |
| 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| Backport from mainline |
| 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/60111 |
| * config/sh/sh.c: Use signed char for signed field. |
| |
| 2014-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/63673 |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow |
| the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to |
| double. |
| |
| 2014-11-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/63947 |
| * config/i386/i386.c (put_condition_code) <case LTU, case GEU>: |
| Output "b" and "nb" suffix for FP mode. |
| |
| 2014-11-19 Tom de Vries <tom@codesourcery.com> |
| |
| Backport from mainline |
| PR tree-optimization/62167 |
| * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse |
| conservatively. |
| (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of |
| assigns. |
| |
| 2014-11-18 Teresa Johnson <tejohnson@google.com> |
| |
| Backport from mainline and gcc-4_9 branch. |
| 2014-11-13 Teresa Johnson <tejohnson@google.com> |
| |
| PR tree-optimization/63841 |
| * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers. |
| |
| 2014-11-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around. |
| * doc/tm.texi: Regenerate. |
| |
| Backport from mainline |
| 2013-09-16 Andreas Schwab <schwab@linux-m68k.org> |
| |
| * doc/tm.texi.in (Cond Exec Macros): Remove node. |
| (Condition Code): Don't reference it. |
| * doc/tm.texi: Regenerate. |
| |
| 2014-11-13 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| Backport from mainline |
| 2014-11-02 Michael Collison <michael.collison@linaro.org> |
| |
| * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update |
| to support vector modes. |
| (CTZ_DEFINED_VALUE_AT_ZERO): Ditto. |
| |
| 2014-11-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/tm.texi.in (SELECT_CC_MODE): Update example. |
| (REVERSIBLE_CC_MODE): Fix example. |
| (REVERSE_CONDITION): Fix typo. |
| * doc/tm.texi: Regenerate. |
| |
| 2014-11-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/63838 |
| * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls |
| chain instead of node->indirect_calls. |
| |
| 2014-11-10 Daniel Hellstrom <daniel@gaisler.com> |
| |
| Backport from mainline |
| * config.gcc (sparc-*-rtems*): Clean away unused t-elf. |
| * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs. |
| |
| 2014-11-07 Daniel Hellstrom <daniel@gaisler.com> |
| |
| * config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor. |
| * doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment. |
| * config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle |
| leon3v7 as leon3. |
| * config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7. |
| * config/sparc/sparc.c (sparc_option_override): Add leon3v7 support. |
| * config/sparc/sparc.h (TARGET_CPU_leon3v7): New define. |
| * config/sparc/sparc.md (cpu): Add leon3v7. |
| * config/sparc/sparc.opt (enum processor_type): Add leon3v7. |
| |
| 2014-11-06 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.md (trap): New insn. Add "trap" to attribute type. |
| Don't allow trap insn in in_branch_delay, in_nullified_branch_delay |
| or in_call_delay. |
| |
| 2014-11-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define. |
| (LINK_SPEC): Include CA53_ERR_835769_SPEC. |
| * config/aarch64/aarch64-linux.h |
| (CA53_ERR_835769_SPEC): Define. |
| (LINK_SPEC): Include CA53_ERR_835769_SPEC. |
| |
| 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore |
| recog state after aarch64_prev_real_insn call. |
| |
| 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config.gcc (aarch64*-*-*): Define TARGET_FIX_ERR_A53_835769_DEFAULT |
| if asked. |
| * configure.ac: Add --enable-fix-cortex-a53-835769 option. |
| * configure: Regenerate. |
| * config/aarch64/aarch64.c (aarch64_override_options): Handle |
| TARGET_FIX_ERR_A53_835769_DEFAULT. |
| * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init value |
| to 2. |
| * doc/install.texi: Document --enable-fix-cortex-a53-835769 option. |
| |
| 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option. |
| * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Define. |
| (FINAL_PRESCAN_INSN): Likewise. |
| * config/aarch64/aarch64.h (is_mem_p): New function. |
| (has_memory_op): Likewise. |
| (aarch64_prev_real_insn): Likewise. |
| (is_madd_op): Likewise. |
| (dep_between_memop_and_curr): Likewise. |
| (aarch64_madd_needs_nop): Likewise. |
| (aarch64_final_prescan_insn): Likewise. |
| * doc/invoke.texi (Document new option). |
| |
| 2014-10-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * stor-layout.c (self_referential_size): Do not promote arguments. |
| |
| 2014-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r215880 |
| 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Issue a warning message when vec_lvsl or vec_lvsr is used with a |
| little endian target. |
| |
| Backport from mainline r215882 |
| 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * altivec.md (altivec_lvsl): New define_expand. |
| (altivec_lvsl_direct): Rename define_insn from altivec_lvsl. |
| (altivec_lvsr): New define_expand. |
| (altivec_lvsr_direct): Rename define_insn from altivec_lvsr. |
| * rs6000.c (rs6000_expand_builtin): Change to use |
| altivec_lvs[lr]_direct; remove commented-out code. |
| |
| 2014-10-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline |
| 2014-10-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/57003 |
| * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg, |
| also check CALL_INSN_FUNCTION_USAGE for clobbers again after |
| killing regs_invalidated_by_call. |
| |
| 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| Backport from mainline |
| 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/52941 |
| * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard, |
| atomic_fetch_<fetchop_name>si_hard, |
| atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard, |
| atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard, |
| atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard, |
| atomic_nand_fetch<mode>_hard): Add missing set of T_REG. |
| |
| 2014-10-02 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/63375 |
| * tree-sra.c (build_access_from_expr_1): Disqualify volatile |
| references. |
| |
| 2014-10-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/63342 |
| * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and |
| SSA_NAME. |
| |
| PR target/63428 |
| * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0] |
| argument to avx2_permv2ti. |
| |
| 2014-10-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline |
| 2014-09-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only. |
| (fmod<mode>3): Ditto. |
| (fpremxf4_i387): Ditto. |
| (reminderxf3): Ditto. |
| (reminder<mode>3): Ditto. |
| (fprem1xf4_i387): Ditto. |
| |
| 2014-09-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR inline-asm/63282 |
| * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1 |
| or invert_jump_1 if jump isn't any_condjump_p. |
| |
| 2014-09-29 Charles Baylis <charles.baylis@linaro.org> |
| |
| Backport from mainline r212303 |
| PR target/49423 |
| * config/arm/arm-protos.h (arm_legitimate_address_p, |
| arm_is_constant_pool_ref): Add prototypes. |
| * config/arm/arm.c (arm_legitimate_address_p): Remove static. |
| (arm_is_constant_pool_ref) New function. |
| * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6, |
| arm_zero_extendqisi2_v6): Use Uh constraint for memory operand. |
| (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory |
| operand and remove pool_range and neg_pool_range attributes. |
| (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove |
| pool_range and neg_pool_range attributes. |
| * config/arm/constraints.md (Uh): New constraint. (Uq): Don't allow |
| constant pool references. |
| |
| 2014-09-28 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_output_function_epilogue): Only update |
| last_address when a nonnote insn is found. |
| |
| 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| Backport from mainline |
| 2014-09-25 Nick Clifton <nickc@redhat.com> |
| 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/62218 |
| * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask, |
| atomic_test_and_set_soft_imask): Fix typo in instruction sequence. |
| |
| 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r215559 |
| 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/63335 |
| * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): |
| Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling. |
| |
| 2014-09-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/63341 |
| * tree-vectorizer.h (vect_create_data_ref_ptr, |
| vect_create_addr_base_for_vector_ref): Add another tree argument |
| defaulting to NULL_TREE. |
| * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset |
| argument, pass it down to vect_create_addr_base_for_vector_ref. |
| (vect_create_addr_base_for_vector_ref): Add byte_offset argument, |
| add that to base_offset too if non-NULL. |
| * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable, |
| for dr_explicit_realign_optimized set it to vector byte size |
| - 1 instead of setting offset, pass byte_offset down to |
| vect_create_data_ref_ptr. |
| |
| 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| Back port from trunk: |
| 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.md (f32_vsx): New mode attributes to |
| refine the constraints used on 32/64-bit floating point moves. |
| (f32_av): Likewise. |
| (f64_vsx): Likewise. |
| (f64_dm): Likewise. |
| (f64_av): Likewise. |
| (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa. |
| (BOOL_REGS_OP1): Likewise. |
| (BOOL_REGS_OP2): Likewise. |
| (BOOL_REGS_UNARY): Likewise. |
| (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for |
| 32/64-bit floating point moves. Do not use wa, instead use ww/ws |
| for moves involving VSX registers. Do not use constraints that |
| target VSX registers for decimal types. |
| (mov<mode>_hardfloat32, DFmode/DDmode): Likewise. |
| (mov<mode>_hardfloat64, DFmode/DDmode): Likewise. |
| |
| 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| Back port from trunk: |
| 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing |
| for base_reg_operand to be common between LO_SUM and PLUS. |
| (fusion_gpr_mem_combo): New predicate to match a fused address |
| that combines the addis and memory offset address. |
| |
| * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change |
| calling signature. |
| (emit_fusion_gpr_load): Likewise. |
| |
| * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling |
| signature to pass each argument separately, rather than |
| using an operands array. Rewrite the insns found by peephole2 to |
| be a single insn, rather than hoping the insns will still be |
| together when the peephole pass is done. Drop being called via a |
| normal peephole. |
| (emit_fusion_gpr_load): Change calling signature to be called from |
| the fusion_gpr_load_<mode> insns with a combined memory address |
| instead of the peephole pass passing the addis and offset |
| separately. |
| |
| * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR |
| fusion. |
| (power8 fusion peephole): Drop support for doing power8 via a |
| normal peephole that was created by the peephole2 pass. |
| (power8 fusion peephole2): Create a new insn with the fused |
| address, so that the fused operation is kept together after |
| register allocation is done. |
| (fusion_gpr_load_<mode>): Likewise. |
| |
| 2014-09-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/63284 |
| * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block |
| if there are only debug stmts after the noreturn call, instead |
| remove the debug stmts. |
| |
| 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for |
| V2DF, V4SF, DF, and DI modes. |
| (vsx_fmav2df2): Likewise. |
| (vsx_float_fix_<mode>2): Likewise. |
| (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise. |
| |
| 2014-09-10 Alan Modra <amodra@gmail.com> |
| |
| PR debug/60655 |
| * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend |
| can't be output. |
| |
| 2014-09-09 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-06-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/61452 |
| * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of |
| expr and has_constants in case we found a leader. |
| (simplify_binary_expression): Always valueize operands first. |
| (simplify_unary_expression): Likewise. |
| |
| 2014-09-09 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-05-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/61010 |
| * fold-const.c (fold_binary_loc): Consistently avoid |
| canonicalizing X & CST away from a CST that is the mask |
| of a mode. |
| |
| 2014-05-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/61045 |
| * fold-const.c (fold_comparison): When folding |
| X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure |
| the sign of the remaining constant operand stays the same. |
| |
| 2014-08-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/62075 |
| * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly |
| handle uses in patterns. |
| |
| 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| Backport from mainline. |
| 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * doc/invoke.texi (-march): Use GNU/Linux rather than Linux. |
| (-mtune): Likewise. |
| (-mcpu): Likewise. |
| |
| 2014-09-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/60196 |
| PR tree-optimization/63189 |
| Backported from mainline |
| 2013-09-17 Cong Hou <congh@google.com> |
| |
| * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug |
| when checking the dot production pattern. The type of rhs operand |
| of multiply is now checked correctly. |
| |
| 2014-09-08 Jakub Jelinek <jakub@redhat.com> |
| |
| Backported from mainline |
| 2014-08-06 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR debug/61923 |
| * haifa-sched.c (advance_one_cycle): Fix dump. |
| (schedule_block): Don't advance cycle if we are already at the |
| beginning of the cycle. |
| |
| 2014-09-03 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/62015 |
| * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible |
| pass-trough jump functions correctly. |
| |
| 2014-09-03 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/61986 |
| * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain |
| created replacements in ascending order of offsets. |
| (known_aggs_to_agg_replacement_list): Likewise. |
| |
| 2014-09-01 Marek Polacek <polacek@redhat.com> |
| |
| Backport from mainline |
| 2014-08-21 Marek Polacek <polacek@redhat.com> |
| |
| PR c/61271 |
| * expr.c (is_aligning_offset): Remove logical not. |
| |
| 2014-09-01 Marek Polacek <polacek@redhat.com> |
| |
| Backport from mainline |
| 2014-08-19 Marek Polacek <polacek@redhat.com> |
| |
| PR c/61271 |
| * cgraphunit.c (handle_alias_pairs): Fix condition. |
| |
| 2014-08-30 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation |
| prefix to function labels when generating fast indirect calls. |
| |
| 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com> |
| |
| * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit. |
| |
| 2014-08-26 Marek Polacek <polacek@redhat.com> |
| |
| Backport from mainline |
| 2014-08-26 Marek Polacek <polacek@redhat.com> |
| |
| PR c/61271 |
| * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT, |
| LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens. |
| |
| 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| Backport from mainline |
| 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/61996 |
| * config/sh/sh.opt (musermode): Allow negative form. |
| * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for |
| targets that don't support it. |
| * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*. |
| Document -mno-usermode option. |
| |
| 2014-08-23 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/62038 |
| * config/pa/pa.c (pa_output_function_epilogue): Don't set |
| last_address when the current function is a thunk. |
| (pa_asm_output_mi_thunk): When we don't have named sections or they |
| are not being used, check that thunk can reach the stub table with a |
| short branch. |
| |
| 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| Backport fro mainline |
| 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/62195 |
| * doc/md.texi (Machine Constraints): Update PowerPC wi constraint |
| documentation to state it is only for VSX operations. |
| |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi |
| constraint only active if VSX. |
| |
| * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of |
| wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions. |
| (lfiwzx): Likewise. |
| |
| 2014-08-15 Tom de Vries <tom@codesourcery.com> |
| |
| Backport from mainline: |
| 2014-08-14 Tom de Vries <tom@codesourcery.com> |
| |
| PR rtl-optimization/62004 |
| PR rtl-optimization/62030 |
| * ifcvt.c (rtx_interchangeable_p): New function. |
| (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p. |
| |
| 2014-08-05 Richard Biener <rguenther@suse.de> |
| |
| * emit-rtl.h (mem_attrs_eq_p): Declare. |
| * emit-rtl.c (mem_attrs_eq_p): Export. |
| |
| 2014-08-16 John David Anglin <danglin@gcc.gnu.org> |
| |
| Backport from trunk: |
| 2014-04-06 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR debug/55794 |
| * config/pa/pa.c (pa_output_function_epilogue): Skip address and code |
| size accounting for thunks. |
| (pa_asm_output_mi_thunk): Use final_start_function() and |
| final_end_function() to output function start and end directives. |
| |
| 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| Backport from mainline: |
| 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| * doc/invoke.texi (SH options): Document missing processor variant |
| options. Remove references to Hitachi. Undocument deprecated mspace |
| option. |
| |
| 2014-08-13 Felix Yang <fei.yang0953@gmail.com> |
| |
| PR tree-optimization/62073 |
| * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has |
| a basic block. |
| |
| 2014-08-13 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| Backport from mainline |
| 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR middle-end/62103 |
| * gimple-fold.c (fold_ctor_reference): Don't fold in presence of |
| bitfields, that is when size doesn't match the size of type or the |
| size of the constructor. |
| |
| 2014-08-12 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| Backport patch from mainline |
| 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/constraints.md (wh constraint): New constraint, |
| for FP registers if direct move is available. |
| (wi constraint): New constraint, for VSX/FP registers that can |
| handle 64-bit integers. |
| (wj constraint): New constraint for VSX/FP registers that can |
| handle 64-bit integers for direct moves. |
| (wk constraint): New constraint for VSX/FP registers that can |
| handle 64-bit doubles for direct moves. |
| (wy constraint): Make documentation match implementation. |
| |
| * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add |
| scalar_in_vmx_p field to simplify tests of whether SFmode or |
| DFmode can go in the Altivec registers. |
| (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field. |
| (rs6000_setup_reg_addr_masks): Likewise. |
| (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p |
| field, and wh/wi/wj/wk constraints. |
| (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and |
| the wh/wi/wj/wk constraints. |
| (rs6000_preferred_reload_class): If SFmode/DFmode can go in the |
| upper registers, prefer VSX registers unless the operation is a |
| memory operation with REG+OFFSET addressing. |
| |
| * config/rs6000/vsx.md (VSr mode attribute): Add support for |
| DImode. Change SFmode to use ww constraint instead of d to allow |
| SF registers in the upper registers. |
| (VSr2): Likewise. |
| (VSr3): Likewise. |
| (VSr5): Fix thinko in comment. |
| (VSa): New mode attribute that is an alternative to wa, that |
| returns the VSX register class that a mode can go in, but may not |
| be the preferred register class. |
| (VS_64dm): New mode attribute for appropriate register classes for |
| referencing 64-bit elements of vectors for direct moves and normal |
| moves. |
| (VS_64reg): Likewise. |
| (vsx_mov<mode>): Change wa constraint to <VSa> to limit the |
| register allocator to only registers the data type can handle. |
| (vsx_le_perm_load_<mode>): Likewise. |
| (vsx_le_perm_store_<mode>): Likewise. |
| (vsx_xxpermdi2_le_<mode>): Likewise. |
| (vsx_xxpermdi4_le_<mode>): Likewise. |
| (vsx_lxvd2x2_le_<mode>): Likewise. |
| (vsx_lxvd2x4_le_<mode>): Likewise. |
| (vsx_stxvd2x2_le_<mode>): Likewise. |
| (vsx_add<mode>3): Likewise. |
| (vsx_sub<mode>3): Likewise. |
| (vsx_mul<mode>3): Likewise. |
| (vsx_div<mode>3): Likewise. |
| (vsx_tdiv<mode>3_internal): Likewise. |
| (vsx_fre<mode>2): Likewise. |
| (vsx_neg<mode>2): Likewise. |
| (vsx_abs<mode>2): Likewise. |
| (vsx_nabs<mode>2): Likewise. |
| (vsx_smax<mode>3): Likewise. |
| (vsx_smin<mode>3): Likewise. |
| (vsx_sqrt<mode>2): Likewise. |
| (vsx_rsqrte<mode>2): Likewise. |
| (vsx_tsqrt<mode>2_internal): Likewise. |
| (vsx_fms<mode>4): Likewise. |
| (vsx_nfma<mode>4): Likewise. |
| (vsx_eq<mode>): Likewise. |
| (vsx_gt<mode>): Likewise. |
| (vsx_ge<mode>): Likewise. |
| (vsx_eq<mode>_p): Likewise. |
| (vsx_gt<mode>_p): Likewise. |
| (vsx_ge<mode>_p): Likewise. |
| (vsx_xxsel<mode>): Likewise. |
| (vsx_xxsel<mode>_uns): Likewise. |
| (vsx_copysign<mode>3): Likewise. |
| (vsx_float<VSi><mode>2): Likewise. |
| (vsx_floatuns<VSi><mode>2): Likewise. |
| (vsx_fix_trunc<mode><VSi>2): Likewise. |
| (vsx_fixuns_trunc<mode><VSi>2): Likewise. |
| (vsx_x<VSv>r<VSs>i): Likewise. |
| (vsx_x<VSv>r<VSs>ic): Likewise. |
| (vsx_btrunc<mode>2): Likewise. |
| (vsx_b2trunc<mode>2): Likewise. |
| (vsx_floor<mode>2): Likewise. |
| (vsx_ceil<mode>2): Likewise. |
| (vsx_<VS_spdp_insn>): Likewise. |
| (vsx_xscvspdp): Likewise. |
| (vsx_xvcvspuxds): Likewise. |
| (vsx_float_fix_<mode>2): Likewise. |
| (vsx_set_<mode>): Likewise. |
| (vsx_extract_<mode>_internal1): Likewise. |
| (vsx_extract_<mode>_internal2): Likewise. |
| (vsx_extract_<mode>_load): Likewise. |
| (vsx_extract_<mode>_store): Likewise. |
| (vsx_splat_<mode>): Likewise. |
| (vsx_xxspltw_<mode>): Likewise. |
| (vsx_xxspltw_<mode>_direct): Likewise. |
| (vsx_xxmrghw_<mode>): Likewise. |
| (vsx_xxmrglw_<mode>): Likewise. |
| (vsx_xxsldwi_<mode>): Likewise. |
| (vsx_xscvdpspn): Tighten constraints to only use register classes |
| the types use. |
| (vsx_xscvspdpn): Likewise. |
| (vsx_xscvdpspn_scalar): Likewise. |
| |
| * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi, |
| wj, and wk constraints. |
| (GPR_REG_CLASS_P): New helper macro for register classes targeting |
| general purpose registers. |
| |
| * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode |
| direct moves. |
| (zero_extendsidi2_lfiwz): Use wj constraint for direct move of |
| DImode instead of wm. Use wk constraint for direct move of DFmode |
| instead of wm. |
| (extendsidi2_lfiwax): Likewise. |
| (lfiwax): Likewise. |
| (lfiwzx): Likewise. |
| (movdi_internal64): Likewise. |
| |
| * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and |
| wk constraints. Make the wy constraint documentation match them |
| implementation. |
| |
| 2014-08-01 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| Backport from mainline |
| 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR tree-optimization/61375 |
| * tree-ssa-math-opts.c (find_bswap_or_nop_1): Cancel optimization if |
| symbolic number cannot be represented in an unsigned HOST_WIDE_INT. |
| (execute_optimize_bswap): Cancel optimization if CHAR_BIT != 8. |
| |
| 2014-08-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/61964 |
| * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): New |
| function merged from trunk. |
| (gimple_equal_p): Handle non-SSA LHS solely by structural |
| equality. |
| |
| 2014-07-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT. |
| |
| 2014-07-24 Kyle McMartin <kyle@redhat.com> |
| |
| * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define. |
| |
| 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p): |
| Add prototype. |
| * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New |
| function. Issue -Wpsabi warning if future GCC releases will use |
| different field alignment rules for this type. |
| * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it. |
| * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise. |
| * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise. |
| |
| 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_function_arg_boundary): Issue |
| -Wpsabi note when encountering a type where future GCC releases |
| will apply different alignment requirements. |
| |
| 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument |
| does not fit fully into floating-point registers, and there is still |
| space in the register parameter area, issue -Wpsabi note that the ABI |
| will change in a future GCC release. |
| |
| 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config/arm/t-rtems-eabi: Add |
| mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard, |
| mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard, |
| mbig-endian/mthumb/march=armv7-r, and |
| mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard |
| multilibs. |
| |
| 2014-07-21 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/sysv4.h (LIBASAN_EARLY_SPEC): Define. |
| (LIBTSAN_EARLY_SPEC): Likewise. |
| (STATIC_LIBASAN_LIBS): Likewise. |
| (STATIC_LIBTSAN_LIBS): Likewise. |
| |
| 2014-07-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * toplev.c (output_stack_usage): Adjust the location of the warning. |
| |
| 2014-07-19 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sync.md (*membar_storeload_leon3): New insn. |
| (*membar_storeload): Disable for LEON3. |
| |
| 2014-07-17 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/61801 |
| * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and |
| ASM_INPUT don't set reg_pending_barrier if it appears in a |
| debug-insn. |
| |
| 2014-07-16 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS |
| on the FUNCTION_DECL. |
| |
| 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com> |
| |
| * doc/install.texi: Remove links to defunct package providers for |
| Solaris. |
| |
| 2014-07-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/53590 |
| * function.c (allocate_struct_function): Revert r188667 change. |
| |
| 2014-07-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/61684 |
| * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure |
| rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it. |
| |
| 2014-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| Backport from Mainline |
| 2014-06-20 Jakub Jelinek <jakub@redhat.com> |
| 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR tree-optimization/61306 |
| * tree-ssa-math-opts.c (struct symbolic_number): Store type of |
| expression instead of its size. |
| (do_shift_rotate): Adapt to change in struct symbolic_number. Return |
| false to prevent optimization when the result is unpredictable due to |
| arithmetic right shift of signed type with highest byte is set. |
| (verify_symbolic_number_p): Adapt to change in struct symbolic_number. |
| (find_bswap_1): Likewise. Return NULL to prevent optimization when the |
| result is unpredictable due to sign extension. |
| (find_bswap): Adapt to change in struct symbolic_number. |
| |
| 2014-06-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline |
| 2014-06-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/61586 |
| * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX. |
| |
| 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/61542 |
| * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element |
| extraction other than index 3. |
| |
| 2014-06-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/61570 |
| * config/i386/driver-i386.c (host_detect_local_cpu): For unknown |
| model family 6 CPU with has_longmode never use a CPU without |
| 64-bit support. |
| |
| 2014-06-20 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| Backport from mainline |
| |
| 2014-06-20 Julian Brown <julian@codesourcery.com> |
| Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * config/arm/arm.c (arm_output_mi_thunk): Fix offset for |
| TARGET_THUMB1_ONLY. Add comments. |
| |
| 2014-06-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline |
| 2014-06-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/61423 |
| * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New |
| define_insn_and_split pattern, merged from *floatunssi<mode>2_1 |
| and corresponding splitters. Zero extend general register |
| or memory input operand to XMM temporary. Enable for |
| TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only. |
| (floatunssi<mode>2): Update expander predicate. |
| |
| 2014-06-18 Richard Henderson <rth@redhat.com> |
| |
| PR target/61545 |
| * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM. |
| |
| 2014-06-17 Nagaraju Mekala <nagaraju.mekala@xilinx.com> |
| |
| Revert on gcc-4_8-branch. |
| * config/microblaze/microblaze.md: Add movsi4_rev insn pattern. |
| * config/microblaze/predicates.md: Add reg_or_mem_operand predicate. |
| |
| 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com> |
| |
| Backport from mainline |
| |
| PR target/61483 |
| * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local |
| variable 'size'; calculate 'size' right in the front; use |
| 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and |
| pcum->aapcs_stack_words. |
| |
| 2014-06-13 Peter Bergner <bergner@vnet.ibm.com> |
| |
| Backport from mainline |
| |
| 2014-06-13 Peter Bergner <bergner@vnet.ibm.com> |
| PR target/61415 |
| * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete. |
| (BU_MISC_2): Rename to ... |
| (BU_LDBL128_2): ... this. |
| * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define. |
| (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128. |
| * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle |
| RS6000_BTM_LDBL128. |
| (rs6000_invalid_builtin): Add long double 128-bit builtin support. |
| (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128. |
| * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand. |
| (unpacktf_1): Likewise. |
| * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation. |
| (__builtin_longdouble_dw1): Likewise. |
| * doc/sourcebuild.texi (longdouble128): Document. |
| |
| 2014-06-13 Jason Merrill <jason@redhat.com> |
| |
| PR c++/60731 |
| * common.opt (-fno-gnu-unique): Add. |
| * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it. |
| |
| 2014-06-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| Backport from 2014-05-09 trunk r210272 |
| |
| * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in |
| unsigned int initializers for regno_in, regno_out. |
| |
| Backport from 2014-05-14 trunk r210418 |
| * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for |
| shifted values to avoid build warning. |
| |
| Backport from 2014-06-12 trunk r211491 |
| |
| PR target/61443 |
| * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when |
| loading from address spaces. |
| |
| 2014-06-12 Alan Modra <amodra@gmail.com> |
| |
| PR target/61300 |
| * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document. |
| * doc/tm.texi: Regenerate. |
| * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default. |
| Use throughout in place of REG_PARM_STACK_SPACE. |
| * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add |
| "incoming" param. Pass to rs6000_function_parms_need_stack. |
| (rs6000_function_parms_need_stack): Add "incoming" param, ignore |
| prototype_p when incoming. Use function decl when incoming |
| to handle K&R style functions. |
| * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust. |
| (INCOMING_REG_PARM_STACK_SPACE): Define. |
| |
| 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| Back port from trunk |
| 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/61431 |
| * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate |
| iterators, VSX_D that handles 64-bit types, and VSX_LE that |
| handles swapping the two 64-bit double words on little endian |
| systems. Include V1TImode and optionally TImode in VSX_LE so that |
| these types are properly swapped. Change all of the insns and |
| splits that do the 64-bit swaps to use VSX_LE. |
| (vsx_le_perm_load_<mode>): Likewise. |
| (vsx_le_perm_store_<mode>): Likewise. |
| (splitters for little endian memory operations): Likewise. |
| (vsx_xxpermdi2_le_<mode>): Likewise. |
| (vsx_lxvd2x2_le_<mode>): Likewise. |
| (vsx_stxvd2x2_le_<mode>): Likewise. |
| |
| 2014-06-05 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/61393 |
| * ipa-cp.c (determine_versionability): Pretend that tm_clones are |
| not versionable. |
| |
| 2014-06-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/61383 |
| * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure |
| stmts can't trap. |
| |
| 2014-06-03 Andrey Belevantsev <abel@ispras.ru> |
| |
| Backport from mainline |
| 2014-05-14 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/60866 |
| * sel-sched-ir (sel_init_new_insn): New parameter old_seqno. |
| Default it to -1. Pass it down to init_simplejump_data. |
| (init_simplejump_data): New parameter old_seqno. Pass it down |
| to get_seqno_for_a_jump. |
| (get_seqno_for_a_jump): New parameter old_seqno. Use it for |
| initializing new jump seqno as a last resort. Add comment. |
| (sel_redirect_edge_and_branch): Save old seqno of the conditional |
| jump and pass it down to sel_init_new_insn. |
| (sel_redirect_edge_and_branch_force): Likewise. |
| |
| 2014-06-03 Andrey Belevantsev <abel@ispras.ru> |
| |
| Backport from mainline |
| 2014-05-14 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/60901 |
| * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that |
| bb predecessor belongs to the same scheduling region. Adjust comment. |
| |
| 2014-06-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline |
| 2014-06-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/61239 |
| * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use |
| GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant. |
| |
| 2014-05-28 Guozhi Wei <carrot@google.com> |
| |
| PR target/61202 |
| * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's |
| constraint. |
| (vqdmulhq_n_s16): Likewise. |
| |
| 2014-05-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| Backport from mainline |
| 2014-05-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper |
| predicate to detect a negative quotient. |
| |
| 2014-05-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/61044 |
| * doc/extend.texi (Local Labels): Note that label differences are |
| not supported for AVR. |
| |
| 2014-05-26 Michael Tautschnig <mt@debian.org> |
| |
| PR target/61249 |
| * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of |
| __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256. |
| |
| 2014-05-23 Alan Modra <amodra@gmail.com> |
| |
| PR target/61231 |
| * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode. |
| * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell): |
| Use "Y" constraint rather than "m". |
| |
| 2014-05-22 Peter Bergner <bergner@vnet.ibm.com> |
| |
| Backport from mainline |
| 2014-05-22 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/htm.md (ttest): Use correct shift value to get CR0. |
| |
| 2014-05-22 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/61208 |
| * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2. |
| |
| 2013-05-22 Richard Biener <rguenther@suse.de> |
| |
| * BASE-VER: Set to 4.8.4. |
| * DEV-PHASE: Set to prerelease. |
| |
| 2014-05-22 Release Manager |
| |
| * GCC 4.8.3 released. |
| |
| 2014-05-15 Peter Bergner <bergner@vnet.ibm.com> |
| |
| Backport from mainline |
| 2014-05-15 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/61193 |
| * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define. |
| (__TM_simple_begin): Use it. |
| (__TM_begin): Likewise. |
| |
| 2014-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate): |
| Delete. |
| * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise. |
| * config/sparc/sparc.md (fptype_ut699): New attribute. |
| (in_branch_delay): Return false if -mfix-ut699 is specified and |
| fptype_ut699 is set to single. |
| (truncdfsf2): Add fptype_ut699 attribute. |
| (fix_truncdfsi2): Likewise. |
| (floatsisf2): Change fptype attribute. |
| (fix_truncsfsi2): Likewise. |
| (negtf2_notv9): Delete. |
| (negtf2_v9): Likewise. |
| (negtf2_hq): New instruction. |
| (negtf2): New instruction and splitter. |
| (negdf2_notv9): Rewrite. |
| (abstf2_notv9): Delete. |
| (abstf2_hq_v9): Likewise. |
| (abstf2_v9): Likewise. |
| (abstf2_hq): New instruction. |
| (abstf2): New instruction and splitter. |
| (absdf2_notv9): Rewrite. |
| |
| 2014-05-14 Matthias Klose <doko@ubuntu.com> |
| |
| Revert: |
| 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| Matthias Klose <doko@ubuntu.com> |
| |
| PR driver/61106 |
| * optc-gen.awk: Fix option handling for -Wunused-parameter. |
| |
| 2014-05-13 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * doc/sourcebuild.texi: (dfp_hw): Document. |
| (p8vector_hw): Likewise. |
| (powerpc_eabi_ok): Likewise. |
| (powerpc_elfv2): Likewise. |
| (powerpc_htm_ok): Likewise. |
| (ppc_recip_hw): Likewise. |
| (vsx_hw): Likewise. |
| |
| 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> |
| |
| Backport from mainline |
| 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> |
| |
| PR target/60991 |
| * config/avr/avr.c (avr_out_store_psi): Use correct constant |
| to restore Y. |
| |
| 2014-05-09 Georg-Johann Lay <avr@gjlay.de> |
| |
| Backport from 2014-05-09 trunk r210267 |
| |
| PR target/61055 |
| * config/avr/avr.md (cc): Add new attribute set_vzn. |
| (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]: |
| Set cc insn attribute to set_vzn instead of set_zn for alternatives |
| with INC, DEC or NEG. |
| * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN. |
| (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN. |
| INC, DEC and ADD+ADC set cc0 to CC_CLOBBER. |
| |
| 2014-05-09 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * builtins.c (expand_builtin_setjmp_receiver): Emit a use of |
| the hard frame pointer. Synchronize commentary with mainline. |
| * cse.c (cse_insn): Only check for volatile asms. |
| * cselib.c (cselib_process_insn): Likewise. |
| * dse.c (scan_insn): Likewise. |
| * stmt.c (expand_nl_goto_receiver): Emit a use and a clobber of |
| the hard frame pointer. |
| |
| 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| Matthias Klose <doko@ubuntu.com> |
| |
| PR driver/61106 |
| * optc-gen.awk: Fix option handling for -Wunused-parameter. |
| |
| 2014-05-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/59952 |
| * config/i386/i386.c (ix86_option_override_internal): Remove PTA_RTM |
| from core-avx2. |
| |
| 2014-05-08 Charles Baylis <charles.baylis@linaro.org> |
| |
| Backport from mainline |
| 2014-04-07 Charles Baylis <charles.baylis@linaro.org> |
| |
| PR target/60609 |
| * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove. |
| (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after |
| ADDR_DIFF_VEC. |
| |
| 2014-05-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def. |
| Do not define target_cpu_default2 to generic. |
| |
| 2014-05-06 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-04-14 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/55022 |
| * fold-const.c (negate_expr_p): Don't negate directional rounding |
| division. |
| (fold_negate_expr): Likewise. |
| |
| 2014-05-06 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-04-17 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/60849 |
| * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective |
| boolean results for comparisons. |
| |
| 2014-04-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/60766 |
| * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an |
| unsigned type. |
| (may_eliminate_iv): Convert cand_value_at result to desired |
| type. |
| |
| 2014-04-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/60903 |
| * tree-ssa-loop-im.c (execute_sm_if_changed): Properly apply |
| IRREDUCIBLE_LOOP loop flags to newly created BBs and edges. |
| |
| 2014-05-05 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-04-23 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/60895 |
| * tree-inline.c (declare_return_variable): Use mark_addressable. |
| |
| 2014-04-07 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/60750 |
| * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs |
| for noreturn calls. |
| * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs. |
| |
| 2014-04-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/59817 |
| PR tree-optimization/60453 |
| * graphite-scop-detection.c (graphite_can_represent_scev): Complete |
| recursion to catch all CHRECs in the scalar evolution and restrict |
| the predicate for the remains appropriately. |
| |
| 2014-04-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/60836 |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Force |
| initial PHI args to be gimple values. |
| |
| 2014-05-05 Jakub Jelinek <jakub@redhat.com> |
| |
| Backported from mainline |
| 2014-04-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/60960 |
| * tree-vect-generic.c (expand_vector_operation): Only call |
| expand_vector_divmod if type's mode satisfies VECTOR_MODE_P. |
| |
| 2014-05-04 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define. |
| (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT. |
| (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT. |
| * config/rs6000/rs6000-builtin.def (BU_MISC_1): |
| Use RS6000_BTM_HARD_FLOAT. |
| (BU_MISC_2): Likewise. |
| * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle |
| RS6000_BTM_HARD_FLOAT. |
| (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp |
| is explicitly used. |
| (rs6000_invalid_builtin): Add hard floating builtin support. |
| (rs6000_expand_builtin): Relax the gcc_assert to allow the new |
| hard float builtins. |
| (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT. |
| |
| 2014-05-03 Joey Ye <joey.ye@arm.com> |
| |
| Backport from mainline r209463 |
| 2014-04-17 Joey Ye <joey.ye@arm.com> |
| |
| * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og. |
| |
| 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| Back port from mainline |
| PR target/61026 |
| * config/sh/sh.c: Include stdlib headers before everything else. |
| |
| 2014-05-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/60930 |
| * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject |
| creating a multiply candidate by folding two constant |
| multiplicands when the result overflows. |
| |
| 2014-05-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.h (TARGET_SIMD): Take AARCH64_ISA_SIMD |
| into account. |
| (TARGET_FLOAT): Take AARCH64_ISA_FP into account. |
| |
| 2014-04-30 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| Back port from mainline |
| 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * doc/extend.texi (PowerPC Built-in Functions): Document new |
| powerpc extended divide, bcd, pack/unpack 128-bit, builtin |
| functions. |
| (PowerPC AltiVec/VSX Built-in Functions): Likewise. |
| |
| * config/rs6000/predicates.md (const_0_to_3_operand): New |
| predicate to match 0..3 integer constants. |
| |
| * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros |
| to support adding miscellaneous builtin functions. |
| (BU_DFP_MISC_2): Likewise. |
| (BU_P7_MISC_1): Likewise. |
| (BU_P7_MISC_2): Likewise. |
| (BU_P8V_MISC_3): Likewise. |
| (BU_MISC_1): Likewise. |
| (BU_MISC_2): Likewise. |
| (DIVWE): Add extended divide builtin functions. |
| (DIVWEO): Likewise. |
| (DIVWEU): Likewise. |
| (DIVWEUO): Likewise. |
| (DIVDE): Likewise. |
| (DIVDEO): Likewise. |
| (DIVDEU): Likewise. |
| (DIVDEUO): Likewise. |
| (DXEX): Add decimal floating-point builtin functions. |
| (DXEXQ): Likewise. |
| (DDEDPD): Likewise. |
| (DDEDPDQ): Likewise. |
| (DENBCD): Likewise. |
| (DENBCDQ): Likewise. |
| (DIEX): Likewise. |
| (DIEXQ): Likewise. |
| (DSCLI): Likewise. |
| (DSCLIQ): Likewise. |
| (DSCRI): Likewise. |
| (DSCRIQ): Likewise. |
| (CDTBCD): Add new BCD builtin functions. |
| (CBCDTD): Likewise. |
| (ADDG6S): Likewise. |
| (BCDADD): Likewise. |
| (BCDADD_LT): Likewise. |
| (BCDADD_EQ): Likewise. |
| (BCDADD_GT): Likewise. |
| (BCDADD_OV): Likewise. |
| (BCDSUB): Likewise. |
| (BCDSUB_LT): Likewise. |
| (BCDSUB_EQ): Likewise. |
| (BCDSUB_GT): Likewise. |
| (BCDSUB_OV): Likewise. |
| (PACK_TD): Add new pack/unpack 128-bit type builtin functions. |
| (UNPACK_TD): Likewise. |
| (PACK_TF): Likewise. |
| (UNPACK_TF): Likewise. |
| (UNPACK_TF_0): Likewise. |
| (UNPACK_TF_1): Likewise. |
| (PACK_V1TI): Likewise. |
| (UNPACK_V1TI): Likewise. |
| |
| * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add |
| support for decimal floating point builtin functions. |
| (rs6000_expand_ternop_builtin): Add checks for the new builtin |
| functions that take constant arguments. |
| (rs6000_invalid_builtin): Add decimal floating point builtin |
| support. |
| (rs6000_init_builtins): Setup long double, _Decimal64, and |
| _Decimal128 types for new builtin functions. |
| (builtin_function_type): Set the unsigned flags appropriately for |
| the new builtin functions. |
| (rs6000_opt_masks): Add support for decimal floating point builtin |
| functions. |
| |
| * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal |
| floating point builtin functions. |
| (RS6000_BTM_COMMON): Likewise. |
| (RS6000_BTI_long_double): Likewise. |
| (RS6000_BTI_dfloat64): Likewise. |
| (RS6000_BTI_dfloat128): Likewise. |
| (long_double_type_internal_node): Likewise. |
| (dfloat64_type_internal_node): Likewise. |
| (dfloat128_type_internal_node): Likewise. |
| |
| * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA |
| 2.07 bcd arithmetic instructions. |
| (UNSPEC_BCDSUB): Likewise. |
| (UNSPEC_BCD_OVERFLOW): Likewise. |
| (UNSPEC_BCD_ADD_SUB): Likewise. |
| (bcd_add_sub): Likewise. |
| (BCD_TEST): Likewise. |
| (bcd<bcd_add_sub>): Likewise. |
| (bcd<bcd_add_sub>_test): Likewise. |
| (bcd<bcd_add_sub>_test2): Likewise. |
| (bcd<bcd_add_sub>_<code>): Likewise. |
| (peephole2 for combined bcd ops): Likewise. |
| |
| * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new |
| decimal floating point builtin functions. |
| (UNSPEC_DENBCD): Likewise. |
| (UNSPEC_DXEX): Likewise. |
| (UNSPEC_DIEX): Likewise. |
| (UNSPEC_DSCLI): Likewise. |
| (UNSPEC_DSCRI): Likewise. |
| (D64_D128): Likewise. |
| (dfp_suffix): Likewise. |
| (dfp_ddedpd_<mode>): Likewise. |
| (dfp_denbcd_<mode>): Likewise. |
| (dfp_dxex_<mode>): Likewise. |
| (dfp_diex_<mode>): Likewise. |
| (dfp_dscli_<mode>): Likewise. |
| (dfp_dscri_<mode>): Likewise. |
| |
| * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD |
| builtin functions. |
| (UNSPEC_CDTBCD): Likewise. |
| (UNSPEC_CBCDTD): Likewise. |
| (UNSPEC_DIVE): Add support for new extended divide builtin |
| functions. |
| (UNSPEC_DIVEO): Likewise. |
| (UNSPEC_DIVEU): Likewise. |
| (UNSPEC_DIVEUO): Likewise. |
| (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to |
| pack/unpack 128-bit types. |
| (UNSPEC_PACK_128BIT): Likewise. |
| (idiv_ldiv): New mode attribute to set the 32/64-bit divide type. |
| (udiv<mode>3): Use idiv_ldiv mode attribute. |
| (div<mode>3): Likewise. |
| (addg6s): Add new BCD builtin functions. |
| (cdtbcd): Likewise. |
| (cbcdtd): Likewise. |
| (UNSPEC_DIV_EXTEND): Add support for new extended divide |
| instructions. |
| (div_extend): Likewise. |
| (div<div_extend>_<mode>"): Likewise. |
| (FP128_64): Add support for new builtin functions to pack/unpack |
| 128-bit types. |
| (unpack<mode>): Likewise. |
| (unpacktf_0): Likewise. |
| (unpacktf_1): Likewise. |
| (unpack<mode>_dm): Likewise. |
| (unpack<mode>_nodm): Likewise. |
| (pack<mode>): Likewise. |
| (unpackv1ti): Likewise. |
| (packv1ti): Likewise. |
| |
| 2014-04-29 Pat Haugen <pthaugen@us.ibm.com> |
| |
| Backport from mainline |
| 2014-04-17 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.md (addti3, subti3): New. |
| |
| 2014-04-28 Pat Haugen <pthaugen@us.ibm.com> |
| |
| Backport from mainline |
| 2014-04-28 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/sync.md (AINT mode_iterator): Move definition. |
| (loadsync_<mode>): Change mode. |
| (load_quadpti, store_quadpti): New. |
| (atomic_load<mode>, atomic_store<mode>): Add support for TI mode. |
| * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. |
| |
| 2014-04-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * configure.ac: Tweak GAS check for LEON instructions on SPARC. |
| * configure: Regenerate. |
| * config/sparc/sparc.opt (muser-mode): New option. |
| * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable |
| for LEON3. |
| (atomic_compare_and_swap_leon3_1): New instruction for LEON3. |
| * doc/invoke.texi (SPARC options): Document -muser-mode. |
| |
| 2014-04-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/60941 |
| * config/sparc/sparc.md (ashlsi3_extend): Delete. |
| |
| 2014-04-22 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| Back port from main line: |
| 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin |
| for ISA 2.07. |
| |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| vbpermq builtins. |
| |
| * config/rs6000/altivec.md (UNSPEC_VBPERMQ): Add support for the |
| vbpermq instruction. |
| (altivec_vbpermq): Likewise. |
| |
| PR target/60672 |
| * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to |
| enable use of xxsldwi and xxpermdi builtin functions. |
| (vec_xxpermdi): Likewise. |
| |
| * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): |
| Document use of vec_xxsldwi and vec_xxpermdi builtins. |
| |
| 2014-04-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| Backport from mainline |
| 2014-04-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/60909 |
| * config/i386/i386.c (ix86_expand_builtin) |
| <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary |
| register for target RTX. |
| <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto. |
| |
| 2014-04-23 Richard Biener <rguenther@suse.de> |
| |
| Backport from mainline |
| 2014-04-02 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/60729 |
| * optabs.c (expand_abs_nojump): Honor flag_trapv only for |
| MODE_INTs. Properly use negv_optab. |
| (expand_abs): Likewise. |
| |
| 2014-04-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/60740 |
| * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate |
| over all GIMPLE_COND operands. |
| |
| 2014-04-23 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/60635 |
| * gimplify.c (gimple_regimplify_operands): Update the |
| re-gimplifed stmt. |
| |
| 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| Back port from the trunk, subversion id 209546. |
| |
| 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/60735 |
| * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case): |
| If mode is DDmode and TARGET_E500_DOUBLE allow move. |
| |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some |
| more debug information for E500 if -mdebug=reg. |
| |
| 2014-04-18 Richard Henderson <rth@redhat.com> |
| |
| * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode |
| to GET_MODE_SIZE, not a reg_class_t. |
| |
| 2014-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for |
| little-endian. |
| (vsx_xxmrglw_<mode>): Likewise. |
| |
| 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/60839 |
| Revert the following patch |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Back port mainline subversion id 209025. |
| 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/60735 |
| * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have |
| software floating point or no floating point registers, do not |
| allow any type in the FPRs. Eliminate a test for SPE SIMD types |
| in GPRs that occurs after we tested for GPRs that would never be |
| true. |
| |
| * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64): |
| Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE, |
| since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE, |
| specifically allow DDmode, since that does not use the SPE SIMD |
| instructions. |
| |
| 2014-04-10 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/60769 |
| * lra-constraints.c (simplify_operand_subreg): Force reload of |
| paradoxical subreg if it is not in the class contents. |
| |
| 2014-04-10 Jakub Jelinek <jakub@redhat.com> |
| |
| Backport from mainline |
| 2014-03-12 Jakub Jelinek <jakub@redhat.com> |
| Marc Glisse <marc.glisse@inria.fr> |
| |
| PR tree-optimization/60502 |
| * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst |
| instead of build_low_bits_mask. |
| |
| 2013-06-13 Marc Glisse <marc.glisse@inria.fr> |
| |
| * tree.c (build_all_ones_cst): New function. |
| * tree.h (build_all_ones_cst): Declare it. |
| |
| 2013-05-10 Marc Glisse <marc.glisse@inria.fr> |
| |
| * tree.c (build_minus_one_cst): New function. |
| * tree.h (build_minus_one_cst): Declare new function. |
| |
| 2014-04-10 Jakub Jelinek <jakub@redhat.com> |
| |
| Backport from mainline |
| 2014-03-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/60693 |
| * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg |
| also if addr has VOIDmode. |
| |
| 2014-03-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/60516 |
| * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA |
| note creation for the 2010-08-31 changes. |
| |
| 2014-03-06 Jakub Jelinek <jakub@redhat.com> |
| Meador Inge <meadori@codesourcery.com> |
| |
| PR target/58595 |
| * config/arm/arm.c (arm_tls_symbol_p): Remove. |
| (arm_legitimize_address): Call legitimize_tls_address for any |
| arm_tls_referenced_p expression, handle constant addend. Call it |
| before testing for !TARGET_ARM. |
| (thumb_legitimize_address): Don't handle arm_tls_symbol_p here. |
| |
| 2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r208750 |
| 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a |
| pattern for vector nor instead of subtract from splat(-1). |
| (altivec_expand_vec_perm_const_le): Likewise. |
| |
| Backport from mainline r209235 |
| 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand |
| instead of vnor to exploit possible fusion opportunity in the |
| future. |
| (altivec_expand_vec_perm_const_le): Likewise. |
| |
| 2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Revert following patch |
| 2014-04-08 Pat Haugen <pthaugen@us.ibm.com> |
| |
| Backport from mainline |
| 2014-04-08 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/sync.md (AINT mode_iterator): Move definition. |
| (loadsync_<mode>): Change mode. |
| (load_quadpti, store_quadpti): New. |
| (atomic_load<mode>, atomic_store<mode>): Add support for TI mode. |
| * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. |
| |
| 2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r202642 |
| 2013-09-17 Alan Modra <amodra@gmail.com> |
| |
| PR target/57589 |
| * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 |
| patch (r199972). |
| |
| 2014-04-08 Pat Haugen <pthaugen@us.ibm.com> |
| |
| Backport from mainline |
| 2014-04-08 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/sync.md (AINT mode_iterator): Move definition. |
| (loadsync_<mode>): Change mode. |
| (load_quadpti, store_quadpti): New. |
| (atomic_load<mode>, atomic_store<mode>): Add support for TI mode. |
| * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. |
| |
| 2014-04-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/60640 |
| * ipa-cp.c (propagate_constants_accross_call): Do not propagate |
| accross thunks. |
| |
| 2014-04-07 Dominique d'Humieres <dominiq@lps.ens.fr> |
| |
| Backport from mainline |
| 2013-09-14 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR target/48094 |
| * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata |
| is seen. |
| (darwin_objc1_section): Likewise. |
| (darwin_file_end): Emit Image Info section when required. |
| |
| 2014-04-05 Alan Modra <amodra@gmail.com> |
| |
| Apply from mainline |
| 2014-01-28 Alan Modra <amodra@gmail.com> |
| * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS. |
| * configure.ac <recursive call for build != host>: Define |
| GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD |
| and LD_FOR_BUILD too. |
| * configure: Regenerate. |
| |
| 2014-04-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| Backport from mainline r208895: |
| 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization |
| if it would clobber the stack pointer, even temporarily. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Back port from main line: |
| 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): |
| Document vec_vgbbd. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Back port mainline subversion id 209025. |
| 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/60735 |
| * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have |
| software floating point or no floating point registers, do not |
| allow any type in the FPRs. Eliminate a test for SPE SIMD types |
| in GPRs that occurs after we tested for GPRs that would never be |
| true. |
| |
| * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64): |
| Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE, |
| since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE, |
| specifically allow DDmode, since that does not use the SPE SIMD |
| instructions. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r205308 |
| 2013-11-23 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro. |
| (rs6000_xcoff_select_section): Place decls with stricter alignment |
| into named sections. |
| (rs6000_xcoff_unique_section): Allow unique sections for |
| uninitialized data with strict alignment. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline |
| 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * gcc/configure: Regenerate. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Back port from trunk |
| 2013-04-25 Alan Modra <amodra@gmail.com> |
| |
| PR target/57052 |
| * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to |
| rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN. |
| (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn. |
| Repeat for many other rotate/shift and mask patterns using subregs. |
| Name lshiftrt insns. |
| (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition |
| on WORDS_BIG_ENDIAN. |
| |
| 2013-06-07 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't |
| override user -mfp-in-toc. |
| (offsettable_ok_by_alignment): Consider just the current access |
| rather than the whole object, unless BLKmode. Handle |
| CONSTANT_POOL_ADDRESS_P constants that lack a decl too. |
| (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants |
| for -mcmodel=medium. |
| * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't |
| override user -mfp-in-toc or -msum-in-toc. Default to |
| -mno-fp-in-toc for -mcmodel=medium. |
| |
| 2013-06-18 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.h (enum data_align): New. |
| (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment. |
| (DATA_ABI_ALIGNMENT): Define. |
| (CONSTANT_ALIGNMENT): Correct comment. |
| * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare. |
| * config/rs6000/rs6000.c (rs6000_data_alignment): New function. |
| |
| 2013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"): |
| Require GOT register as additional operand in UNSPEC. |
| ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise. |
| ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise. |
| ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise. |
| ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter. |
| ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise. |
| ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise. |
| ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise. |
| |
| 2014-01-23 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't |
| force flag_ira_loop_pressure if set via command line. |
| |
| 2014-02-06 Alan Modra <amodra@gmail.com> |
| |
| PR target/60032 |
| * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only |
| change SDmode to DDmode when lra_in_progress. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| V1TImode Support |
| Back port from trunk |
| 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types. |
| (VEC_M): Likewise. |
| (VEC_N): Likewise. |
| (VEC_R): Likewise. |
| (VEC_base): Likewise. |
| (mov<MODE>, VEC_M modes): If we are loading TImode into VSX |
| registers, we need to swap double words in little endian mode. |
| |
| * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode |
| to be a container mode for 128-bit integer operations added in ISA |
| 2.07. Unlike TImode and PTImode, the preferred register set is |
| the Altivec/VMX registers for the 128-bit operations. |
| |
| * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add |
| declarations. |
| (rs6000_split_128bit_ok_p): Likewise. |
| |
| * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support |
| macros for creating ISA 2.07 normal and overloaded builtin |
| functions with 3 arguments. |
| (BU_P8V_OVERLOAD_3): Likewise. |
| (VPERM_1T): Add support for V1TImode in 128-bit vector operations |
| for use as overloaded functions. |
| (VPERM_1TI_UNS): Likewise. |
| (VSEL_1TI): Likewise. |
| (VSEL_1TI_UNS): Likewise. |
| (ST_INTERNAL_1ti): Likewise. |
| (LD_INTERNAL_1ti): Likewise. |
| (XXSEL_1TI): Likewise. |
| (XXSEL_1TI_UNS): Likewise. |
| (VPERM_1TI): Likewise. |
| (VPERM_1TI_UNS): Likewise. |
| (XXPERMDI_1TI): Likewise. |
| (SET_1TI): Likewise. |
| (LXVD2X_V1TI): Likewise. |
| (STXVD2X_V1TI): Likewise. |
| (VEC_INIT_V1TI): Likewise. |
| (VEC_SET_V1TI): Likewise. |
| (VEC_EXT_V1TI): Likewise. |
| (EQV_V1TI): Likewise. |
| (NAND_V1TI): Likewise. |
| (ORC_V1TI): Likewise. |
| (VADDCUQ): Add support for 128-bit integer arithmetic instructions |
| added in ISA 2.07. Add both normal 'altivec' builtins, and the |
| overloaded builtin. |
| (VADDUQM): Likewise. |
| (VSUBCUQ): Likewise. |
| (VADDEUQM): Likewise. |
| (VADDECUQ): Likewise. |
| (VSUBEUQM): Likewise. |
| (VSUBECUQ): Likewise. |
| |
| * config/rs6000/rs6000-c.c (__int128_type): New static to hold |
| __int128_t and __uint128_t types. |
| (__uint128_type): Likewise. |
| (altivec_categorize_keyword): Add support for vector __int128_t, |
| vector __uint128_t, vector __int128, and vector unsigned __int128 |
| as a container type for TImode operations that need to be done in |
| VSX/Altivec registers. |
| (rs6000_macro_to_expand): Likewise. |
| (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions |
| to support 128-bit integer instructions vaddcuq, vadduqm, |
| vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm. |
| (altivec_resolve_overloaded_builtin): Add support for V1TImode. |
| |
| * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support |
| for V1TImode, and set up preferences to use VSX/Altivec |
| registers. Setup VSX reload handlers. |
| (rs6000_debug_reg_global): Likewise. |
| (rs6000_init_hard_regno_mode_ok): Likewise. |
| (rs6000_preferred_simd_mode): Likewise. |
| (vspltis_constant): Do not allow V1TImode as easy altivec |
| constants. |
| (easy_altivec_constant): Likewise. |
| (output_vec_const_move): Likewise. |
| (rs6000_expand_vector_set): Convert V1TImode set and extract to |
| simple move. |
| (rs6000_expand_vector_extract): Likewise. |
| (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg |
| addressing. |
| (rs6000_const_vec): Add support for V1TImode. |
| (rs6000_emit_le_vsx_load): Swap double words when loading or |
| storing TImode/V1TImode. |
| (rs6000_emit_le_vsx_store): Likewise. |
| (rs6000_emit_le_vsx_move): Likewise. |
| (rs6000_emit_move): Add support for V1TImode. |
| (altivec_expand_ld_builtin): Likewise. |
| (altivec_expand_st_builtin): Likewise. |
| (altivec_expand_vec_init_builtin): Likewise. |
| (altivec_expand_builtin): Likewise. |
| (rs6000_init_builtins): Add support for V1TImode type. Add |
| support for ISA 2.07 128-bit integer builtins. Define type names |
| for the VSX/Altivec vector types. |
| (altivec_init_builtins): Add support for overloaded vector |
| functions with V1TImode type. |
| (rs6000_preferred_reload_class): Prefer Altivec registers for |
| V1TImode. |
| (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to |
| external function. |
| (rs6000_split_128bit_ok_p): Likewise. |
| (rs6000_handle_altivec_attribute): Create V1TImode from vector |
| __int128_t and vector __uint128_t. |
| |
| * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators |
| and mode attributes. |
| (VSX_M): Likewise. |
| (VSX_M2): Likewise. |
| (VSm): Likewise. |
| (VSs): Likewise. |
| (VSr): Likewise. |
| (VSv): Likewise. |
| (VS_scalar): Likewise. |
| (VS_double): Likewise. |
| (vsx_set_v1ti): New builtin function to create V1TImode from |
| TImode. |
| |
| * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say |
| whether we support the ISA 2.07 128-bit integer arithmetic |
| instructions. |
| (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode. |
| (enum rs6000_builtin_type_index): Add fields to hold V1TImode |
| and TImode types for use with the builtin functions. |
| (V1TI_type_node): Likewise. |
| (unsigned_V1TI_type_node): Likewise. |
| (intTI_type_internal_node): Likewise. |
| (uintTI_type_internal_node): Likewise. |
| |
| * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA |
| 2.07 128-bit builtin functions. |
| (UNSPEC_VADDEUQM): Likewise. |
| (UNSPEC_VADDECUQ): Likewise. |
| (UNSPEC_VSUBCUQ): Likewise. |
| (UNSPEC_VSUBEUQM): Likewise. |
| (UNSPEC_VSUBECUQ): Likewise. |
| (VM): Add V1TImode to vector mode iterators. |
| (VM2): Likewise. |
| (VI_unit): Likewise. |
| (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins. |
| (altivec_vaddcuq): Likewise. |
| (altivec_vsubuqm): Likewise. |
| (altivec_vsubcuq): Likewise. |
| (altivec_vaddeuqm): Likewise. |
| (altivec_vaddecuq): Likewise. |
| (altivec_vsubeuqm): Likewise. |
| (altivec_vsubecuq): Likewise. |
| |
| * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector |
| mode iterators. |
| (BOOL_128): Likewise. |
| (BOOL_REGS_OUTPUT): Likewise. |
| (BOOL_REGS_OP1): Likewise. |
| (BOOL_REGS_OP2): Likewise. |
| (BOOL_REGS_UNARY): Likewise. |
| (BOOL_REGS_AND_CR0): Likewise. |
| |
| * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07 |
| 128-bit integer builtin support. |
| (vec_vadduqm): Likewise. |
| (vec_vaddecuq): Likewise. |
| (vec_vaddeuqm): Likewise. |
| (vec_vsubecuq): Likewise. |
| (vec_vsubeuqm): Likewise. |
| (vec_vsubcuq): Likewise. |
| (vec_vsubuqm): Likewise. |
| |
| * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): |
| Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm, |
| vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding |
| 128-bit integer add/subtract to ISA 2.07. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Apply mainline r207798 |
| 2014-02-26 Alan Modra <amodra@gmail.com> |
| PR target/58675 |
| PR target/57935 |
| * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use |
| find_replacement on parts of insn rtl that might be reloaded. |
| |
| Backport from mainline r208287 |
| 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow |
| reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax |
| constraint on constants to permit them being loaded into |
| GENERAL_REGS or BASE_REGS. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r207699. |
| 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/60137 |
| * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter |
| for VSX/Altivec vectors that land in GPR registers. |
| |
| Backport from mainline r207808. |
| 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/60203 |
| * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints. |
| (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves |
| into 64-bit and 32-bit moves. On 64-bit moves, add support for |
| using direct move instructions on ISA 2.07. Also adjust |
| instruction length for 64-bit. |
| (mov<mode>_64bit, TFmode/TDmode): Likewise. |
| (mov<mode>_32bit, TFmode/TDmode): Likewise. |
| |
| Backport from mainline r207868. |
| 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/60203 |
| * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves): |
| Split 64-bit moves into 2 patterns. Do not allow the use of |
| direct move for TDmode in little endian, since the decimal value |
| has little endian bytes within a word, but the 64-bit pieces are |
| ordered in a big endian fashion, and normal subreg's of TDmode are |
| not allowed. |
| (mov<mode>_64bit_dm): Likewise. |
| (movtd_64bit_nodm): Likewise. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r207658 |
| 2014-02-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce |
| big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd, |
| -mcall-openbsd, or -mcall-linux. |
| (CC1_ENDIAN_BIG_SPEC): Remove. |
| (CC1_ENDIAN_LITTLE_SPEC): Remove. |
| (CC1_ENDIAN_DEFAULT_SPEC): Remove. |
| (CC1_SPEC): Remove (always empty) %cc1_endian_... spec. |
| (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little, |
| and %cc1_endian_default. |
| * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Little Endian Vector API Support |
| Backport from mainline r206443 |
| 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove |
| two duplicate entries. |
| |
| Backport from mainline r206494 |
| 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * doc/invoke.texi: Add -maltivec={be,le} options, and document |
| default element-order behavior for -maltivec. |
| * config/rs6000/rs6000.opt: Add -maltivec={be,le} options. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure |
| that -maltivec={le,be} implies -maltivec; disallow -maltivec=le |
| when targeting big endian, at least for now. |
| * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG. |
| |
| Backport from mainline r206541 |
| 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS. |
| |
| Backport from mainline r206590 |
| 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Implement -maltivec=be for vec_insert and vec_extract. |
| |
| Backport from mainline r206641 |
| 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com> |
| |
| * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh |
| and vmulosh rather than call gen_vec_widen_smult_*. |
| (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather |
| than BYTES_BIG_ENDIAN to determine use of even or odd instruction. |
| (vec_widen_smult_even_v16qi): Likewise. |
| (vec_widen_umult_even_v8hi): Likewise. |
| (vec_widen_smult_even_v8hi): Likewise. |
| (vec_widen_umult_odd_v16qi): Likewise. |
| (vec_widen_smult_odd_v16qi): Likewise. |
| (vec_widen_umult_odd_v8hi): Likewise. |
| (vec_widen_smult_odd_v8hi): Likewise. |
| (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and |
| vmuloub rather than call gen_vec_widen_umult_*. |
| (vec_widen_umult_lo_v16qi): Likewise. |
| (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and |
| vmulosb rather than call gen_vec_widen_smult_*. |
| (vec_widen_smult_lo_v16qi): Likewise. |
| (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh |
| rather than call gen_vec_widen_umult_*. |
| (vec_widen_umult_lo_v8hi): Likewise. |
| (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh |
| rather than call gen_vec_widen_smult_*. |
| (vec_widen_smult_lo_v8hi): Likewise. |
| |
| Backport from mainline r207062 |
| 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove |
| correction for little endian... |
| * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to |
| here. |
| |
| Backport from mainline r207262 |
| 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use |
| CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*. |
| * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for |
| -maltivec=be with LE targets. |
| (vsx_mergeh_<mode>): Likewise. |
| * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New |
| unspecs. |
| (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct. |
| (altivec_vmrghb): Replace with define_expand and new |
| *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE |
| targets. |
| (altivec_vmrghb_direct): New define_insn. |
| (altivec_vmrghh): Replace with define_expand and new |
| *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE |
| targets. |
| (altivec_vmrghh_direct): New define_insn. |
| (altivec_vmrghw): Replace with define_expand and new |
| *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE |
| targets. |
| (altivec_vmrghw_direct): New define_insn. |
| (*altivec_vmrghsf): Adjust for endianness. |
| (altivec_vmrglb): Replace with define_expand and new |
| *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE |
| targets. |
| (altivec_vmrglb_direct): New define_insn. |
| (altivec_vmrglh): Replace with define_expand and new |
| *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE |
| targets. |
| (altivec_vmrglh_direct): New define_insn. |
| (altivec_vmrglw): Replace with define_expand and new |
| *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE |
| targets. |
| (altivec_vmrglw_direct): New define_insn. |
| (*altivec_vmrglsf): Adjust for endianness. |
| (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct. |
| (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct. |
| (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct. |
| (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct. |
| (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct. |
| (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct. |
| (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct. |
| (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct. |
| |
| Backport from mainline r207318 |
| 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use |
| gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf; |
| remove element index adjustment for endian (now handled in vsx.md |
| and altivec.md). |
| (altivec_expand_vec_perm_const): Use |
| gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw]. |
| * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec. |
| (vsx_xxspltw_<mode>): Adjust element index for little endian. |
| * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a |
| define_expand and a new define_insn *altivec_vspltb_internal; |
| adjust for -maltivec=be on a little endian target. |
| (altivec_vspltb_direct): New. |
| (altivec_vsplth): Divide into a define_expand and a new |
| define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a |
| little endian target. |
| (altivec_vsplth_direct): New. |
| (altivec_vspltw): Divide into a define_expand and a new |
| define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a |
| little endian target. |
| (altivec_vspltw_direct): New. |
| (altivec_vspltsf): Divide into a define_expand and a new |
| define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on |
| a little endian target. |
| |
| Backport from mainline r207326 |
| 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove |
| unused variable "field". |
| * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE. |
| (vsx_mergeh_<mode>): Likewise. |
| * config/rs6000/altivec.md (altivec_vmrghb): Likewise. |
| (altivec_vmrghh): Likewise. |
| (altivec_vmrghw): Likewise. |
| (altivec_vmrglb): Likewise. |
| (altivec_vmrglh): Likewise. |
| (altivec_vmrglw): Likewise. |
| (altivec_vspltb): Add missing uses. |
| (altivec_vsplth): Likewise. |
| (altivec_vspltw): Likewise. |
| (altivec_vspltsf): Likewise. |
| |
| Backport from mainline r207414 |
| 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec. |
| (altivec_vsumsws): Add handling for -maltivec=be with a little |
| endian target. |
| (altivec_vsumsws_direct): New. |
| (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of |
| gen_altivec_vsumsws. |
| |
| Backport from mainline r207415 |
| 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize |
| for vector types other than V16QImode. |
| * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a |
| define_expand, and call altivec_expand_vec_perm_le when producing |
| code with little endian element order. |
| (*altivec_vperm_<mode>_internal): New insn having previous |
| behavior of altivec_vperm_<mode>. |
| (altivec_vperm_<mode>_uns): Change to a define_expand, and call |
| altivec_expand_vec_perm_le when producing code with little endian |
| element order. |
| (*altivec_vperm_<mode>_uns_internal): New insn having previous |
| behavior of altivec_vperm_<mode>_uns. |
| |
| Backport from mainline r207520 |
| 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec. |
| (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise. |
| (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise. |
| (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of |
| gen_altivec_vpkuwum. |
| (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for |
| BYTES_BIG_ENDIAN. |
| (altivec_vpks<VI_char>ss): Likewise. |
| (altivec_vpks<VI_char>us): Likewise. |
| (altivec_vpku<VI_char>us): Likewise. |
| (altivec_vpku<VI_char>um): Likewise. |
| (altivec_vpku<VI_char>um_direct): New (copy of |
| altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for |
| internal use). |
| (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when |
| target is little endian and -maltivec=be is not specified. |
| (*altivec_vupkhs<VU_char>_direct): New (copy of |
| altivec_vupkhs<VU_char> that always emits vupkhs*, for internal |
| use). |
| (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when |
| target is little endian and -maltivec=be is not specified. |
| (*altivec_vupkls<VU_char>_direct): New (copy of |
| altivec_vupkls<VU_char> that always emits vupkls*, for internal |
| use). |
| (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is |
| little endian and -maltivec=be is not specified. |
| (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is |
| little endian and -maltivec=be is not specified. |
| |
| Backport from mainline r207521 |
| 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code |
| generation for -maltivec=be. |
| (altivec_vsumsws): Simplify redundant test. |
| |
| Backport from mainline r207525 |
| 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change |
| CODE_FOR_altivec_vpku[hw]um to |
| CODE_FOR_altivec_vpku[hw]um_direct. |
| * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change |
| UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT. |
| (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to |
| UNSPEC_VUNPACK_LO_SIGN_DIRECT. |
| |
| Backport from mainline r207814. |
| 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little |
| endian targets. |
| |
| Backport from mainline r207815. |
| 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (p8_vmrgew): Handle little endian |
| targets. |
| (p8_vmrgow): Likewise. |
| |
| Backport from mainline r207919. |
| 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (vspltis_constant): Fix most significant |
| bit of zero. |
| |
| Backport from mainline 208019 |
| 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (altivec_lvxl): Rename as |
| *altivec_lvxl_<mode>_internal and use VM2 iterator instead of |
| V4SI. |
| (altivec_lvxl_<mode>): New define_expand incorporating |
| -maltivec=be semantics where needed. |
| (altivec_lvx): Rename as *altivec_lvx_<mode>_internal. |
| (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be |
| semantics where needed. |
| (altivec_stvx): Rename as *altivec_stvx_<mode>_internal. |
| (altivec_stvx_<mode>): New define_expand incorporating |
| -maltivec=be semantics where needed. |
| (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use |
| VM2 iterator instead of V4SI. |
| (altivec_stvxl_<mode>): New define_expand incorporating |
| -maltivec=be semantics where needed. |
| * config/rs6000/rs6000-builtin.def: Add new built-in definitions |
| LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI, |
| LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, |
| STVX_V2DF, STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, |
| STVXL_V2DF, STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, |
| STVXL_V16QI. |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace |
| ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout; |
| similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and |
| ALTIVEC_BUILTIN_STVXL. |
| * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New |
| prototype. |
| (altivec_expand_stvx_be): Likewise. |
| * config/rs6000/rs6000.c (swap_selector_for_mode): New function. |
| (altivec_expand_lvx_be): Likewise. |
| (altivec_expand_stvx_be): Likewise. |
| (altivec_expand_builtin): Add cases for |
| ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>, |
| ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>. |
| (altivec_init_builtins): Add definitions for |
| __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>, |
| __builtin_altivec_stvx_<mode>, and |
| __builtin_altivec_stvxl_<mode>. |
| |
| Backport from mainline 208021 |
| 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (altivec_vsumsws): Replace second |
| vspltw with vsldoi. |
| (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of |
| gen_altivec_vsumsws. |
| |
| Backport from mainline 208049 |
| 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace |
| define_insn with define_expand and new define_insn |
| *altivec_lve<VI_char>x_internal. |
| (altivec_stve<VI_char>x): Replace define_insn with define_expand |
| and new define_insn *altivec_stve<VI_char>x_internal. |
| * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New |
| prototype. |
| * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by |
| lve*x built-ins. |
| (altivec_expand_stvex_be): New function. |
| |
| Backport from mainline |
| 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert |
| to permit subregs. |
| |
| Backport from mainline |
| 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| * config/rs6000/vector.md (*vector_unordered<mode>): Change split |
| to use canonical form for nor<mode>3. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline |
| 2014-02-04 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.opt (-mlra): Add switch to enable the LRA |
| register allocator. |
| |
| * config/rs6000/rs6000.c (TARGET_LRA_P): Add support for -mlra to |
| enable the LRA register allocator. Back port the changes from the |
| trunk to enable LRA. |
| (rs6000_legitimate_offset_address_p): Likewise. |
| (legitimate_lo_sum_address_p): Likewise. |
| (use_toc_relative_ref): Likewise. |
| (rs6000_legitimate_address_p): Likewise. |
| (rs6000_emit_move): Likewise. |
| (rs6000_secondary_memory_needed_mode): Likewise. |
| (rs6000_alloc_sdmode_stack_slot): Likewise. |
| (rs6000_lra_p): Likewise. |
| |
| * config/rs6000/sync.md (load_lockedti): Copy TI/PTI variables by |
| 64-bit parts to force the register allocator to allocate even/odd |
| register pairs for the quad word atomic instructions. |
| (store_conditionalti): Likewise. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Back port from mainline |
| 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/59909 |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Document |
| -mquad-memory-atomic. Update -mquad-memory documentation to say |
| it is only used for non-atomic loads/stores. |
| |
| * config/rs6000/predicates.md (quad_int_reg_operand): Allow either |
| -mquad-memory or -mquad-memory-atomic switches. |
| |
| * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add |
| -mquad-memory-atomic to ISA 2.07 support. |
| |
| * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch |
| to separate support of normal quad word memory operations (ldq, |
| stq) from the atomic quad word memory operations. |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Add |
| support to separate non-atomic quad word operations from atomic |
| quad word operations. Disable non-atomic quad word operations in |
| little endian mode so that we don't have to swap words after the |
| load and before the store. |
| (quad_load_store_p): Add comment about atomic quad word support. |
| (rs6000_opt_masks): Add -mquad-memory-atomic to the list of |
| options printed with -mdebug=reg. |
| |
| * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use |
| -mquad-memory-atomic as the test for whether we have quad word |
| atomic instructions. |
| (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, |
| -mquad-memory, or -mp8-vector are used, allow byte/half-word |
| atomic operations. |
| |
| * config/rs6000/sync.md (load_lockedti): Insure that the address |
| is a proper indexed or indirect address for the lqarx instruction. |
| On little endian systems, swap the hi/lo registers after the lqarx |
| instruction. |
| (load_lockedpti): Use indexed_or_indirect_operand predicate to |
| insure the address is valid for the lqarx instruction. |
| (store_conditionalti): Insure that the address is a proper indexed |
| or indirect address for the stqcrx. instruction. On little endian |
| systems, swap the hi/lo registers before doing the stqcrx. |
| instruction. |
| (store_conditionalpti): Use indexed_or_indirect_operand predicate to |
| insure the address is valid for the stqcrx. instruction. |
| |
| * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros): |
| Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what |
| type of quad memory support is available. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Apply mainline r202190, powerpc64le multilibs and multiarch dir |
| 2013-09-03 Alan Modra <amodra@gmail.com> |
| |
| * config.gcc (powerpc*-*-linux*): Add support for little-endian |
| multilibs to big-endian target and vice versa. |
| * config/rs6000/t-linux64: Use := assignment on all vars. |
| (MULTILIB_EXTRA_OPTS): Remove fPIC. |
| (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options. |
| * config/rs6000/t-linux64le: New file. |
| * config/rs6000/t-linux64bele: New file. |
| * config/rs6000/t-linux64lebe: New file. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Back port from mainline |
| 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/59844 |
| * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little |
| endian support, remove tests for WORDS_BIG_ENDIAN. |
| (p8_mfvsrd_3_<mode>): Likewise. |
| (reload_gpr_from_vsx<mode>): Likewise. |
| (reload_gpr_from_vsxsf): Likewise. |
| (p8_mfvsrd_4_disf): Likewise. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline |
| 2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/56843 |
| * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove. |
| (rs6000_emit_swdiv_low_precision): Remove. |
| (rs6000_emit_swdiv): Rewrite to handle between one and four |
| iterations of Newton-Raphson generally; modify required number of |
| iterations for some cases. |
| * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline |
| 2013-08-19 Peter Bergner <bergner@vnet.ibm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin. |
| (BUILT_IN_FABSD64): Likewise. |
| (BUILT_IN_FABSD128): Likewise. |
| * builtins.c (expand_builtin): Add support for |
| new DFP ABS builtins. |
| (fold_builtin_1): Likewise. |
| * config/rs6000/dfp.md |
| (*abstd2_fpr): Handle non-overlapping destination |
| and source operands. |
| (*nabstd2_fpr): Likewise. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Apply mainline r205060. |
| 2013-11-20 Alan Modra <amodra@gmail.com> |
| * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Default |
| to strict alignment on older processors when little-endian. |
| * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8 |
| for ELFv2. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| POWER ELFv2 ABI Support |
| Backport from mainline r204842: |
| |
| 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document. |
| |
| Backport from mainline r204809: |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define. |
| |
| Backport from mainline r204808: |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2. |
| (RS6000_SAVE_TOC): Remove. |
| (RS6000_TOC_SAVE_SLOT): New macro. |
| * config/rs6000/rs6000.c (rs6000_parm_offset): New function. |
| (rs6000_parm_start): Use it. |
| (rs6000_function_arg_advance_1): Likewise. |
| (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT. |
| (rs6000_emit_epilogue): Likewise. |
| (rs6000_call_aix): Likewise. |
| (rs6000_output_function_prologue): Do not save/restore r11 |
| around calling _mcount for ABI_ELFv2. |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space): |
| Add prototype. |
| * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove. |
| (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space. |
| * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function. |
| (rs6000_function_parms_need_stack): Likewise. |
| (rs6000_reg_parm_stack_space): Likewise. |
| (rs6000_function_arg): Do not replace BLKmode by Pmode when |
| returning a register argument. |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| Michael Gschwind <mkg@us.ibm.com> |
| |
| * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro. |
| (ALTIVEC_ARG_MAX_RETURN): Likewise. |
| (FUNCTION_VALUE_REGNO_P): Use them. |
| * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define. |
| (rs6000_return_in_msb): New function. |
| (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates. |
| Handle aggregates of up to 16 bytes for ELFv2. |
| (rs6000_function_value): Handle ELFv2 homogeneous aggregates. |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| Michael Gschwind <mkg@us.ibm.com> |
| |
| * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define. |
| * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function. |
| (rs6000_discover_homogeneous_aggregate): Likewise. |
| (rs6000_function_arg_boundary): Handle homogeneous aggregates. |
| (rs6000_function_arg_advance_1): Likewise. |
| (rs6000_function_arg): Likewise. |
| (rs6000_arg_partial_bytes): Likewise. |
| (rs6000_psave_function_arg): Handle BLKmode arguments. |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| Michael Gschwind <mkg@us.ibm.com> |
| |
| * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define. |
| * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function. |
| (rs6000_discover_homogeneous_aggregate): Likewise. |
| (rs6000_function_arg_boundary): Handle homogeneous aggregates. |
| (rs6000_function_arg_advance_1): Likewise. |
| (rs6000_function_arg): Likewise. |
| (rs6000_arg_partial_bytes): Likewise. |
| (rs6000_psave_function_arg): Handle BLKmode arguments. |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (machine_function): New member |
| r2_setup_needed. |
| (rs6000_emit_prologue): Set r2_setup_needed if necessary. |
| (rs6000_output_mi_thunk): Set r2_setup_needed. |
| (rs6000_output_function_prologue): Output global entry point |
| prologue and local entry point marker if needed for ABI_ELFv2. |
| Output -mprofile-kernel code here. |
| (output_function_profiler): Do not output -mprofile-kernel |
| code here; moved to rs6000_output_function_prologue. |
| (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2. |
| |
| (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2. |
| (rs6000_output_function_entry): Likewise. |
| (rs6000_assemble_integer): Likewise. |
| (rs6000_elf_encode_section_info): Likewise. |
| (rs6000_elf_declare_function_name): Do not create dot symbols |
| or .opd section for ABI_ELFv2. |
| |
| (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines. |
| (rs6000_trampoline_init): Likewise. |
| (rs6000_elf_file_end): Call file_end_indicate_exec_stack |
| for ABI_ELFv2. |
| |
| (rs6000_call_aix): Handle ELFv2 indirect calls. Do not check |
| for function descriptors in ABI_ELFv2. |
| |
| * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support |
| on ABI_AIX only, not ABI_ELFv2. |
| ("*call_value_indirect_aix<mode>"): Likewise. |
| ("*call_indirect_elfv2<mode>"): New pattern. |
| ("*call_value_indirect_elfv2<mode>"): Likewise. |
| |
| * config/rs6000/predicates.md ("symbol_ref_operand"): Do not |
| check for function descriptors in ABI_ELFv2. |
| ("current_file_function_operand"): Likewise. |
| |
| * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]: |
| (toc): Undefine. |
| (FUNC_NAME): Define ELFv2 variant. |
| (JUMP_TARGET): Likewise. |
| (FUNC_START): Likewise. |
| (HIDDEN_FUNC): Likewise. |
| (FUNC_END): Likeiwse. |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1 |
| and --with-abi=elfv2. |
| * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi". |
| * config/rs6000/rs6000.opt (mabi=elfv1): New option. |
| (mabi=elfv2): Likewise. |
| * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2. |
| * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI |
| if !RS6000_BI_ARCH. |
| (ELFv2_ABI_CHECK): New macro. |
| (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set |
| rs6000_current_abi to ABI_AIX or ABI_ELFv2. |
| (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version. |
| * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine |
| _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate. |
| |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2. |
| (debug_stack_info): Likewise. |
| (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX. |
| (rs6000_legitimize_tls_address): Likewise. |
| (rs6000_conditional_register_usage): Likewise. |
| (rs6000_emit_move): Likewise. |
| (init_cumulative_args): Likewise. |
| (rs6000_function_arg_advance_1): Likewise. |
| (rs6000_function_arg): Likewise. |
| (rs6000_arg_partial_bytes): Likewise. |
| (rs6000_output_function_entry): Likewise. |
| (rs6000_assemble_integer): Likewise. |
| (rs6000_savres_strategy): Likewise. |
| (rs6000_stack_info): Likewise. |
| (rs6000_function_ok_for_sibcall): Likewise. |
| (rs6000_emit_load_toc_table): Likewise. |
| (rs6000_savres_routine_name): Likewise. |
| (ptr_regno_for_savres): Likewise. |
| (rs6000_emit_prologue): Likewise. |
| (rs6000_emit_epilogue): Likewise. |
| (rs6000_output_function_epilogue): Likewise. |
| (output_profile_hook): Likewise. |
| (output_function_profiler): Likewise. |
| (rs6000_trampoline_size): Likewise. |
| (rs6000_trampoline_init): Likewise. |
| (rs6000_elf_output_toc_section_asm_op): Likewise. |
| (rs6000_elf_encode_section_info): Likewise. |
| (rs6000_elf_reloc_rw_mask): Likewise. |
| (rs6000_elf_declare_function_name): Likewise. |
| (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX, |
| except that rs6000_compat_align_parm is always assumed false. |
| (rs6000_gimplify_va_arg): Likewise. |
| (rs6000_call_aix): Update comment. |
| (rs6000_sibcall_aix): Likewise. |
| * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"): |
| Treat ABI_ELFv2 the same as ABI_AIX. |
| ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise. |
| ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise. |
| ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise. |
| ("load_toc_aix_si"): Likewise. |
| ("load_toc_aix_di"): Likewise. |
| ("call"): Likewise. |
| ("call_value"): Likewise. |
| ("*call_local_aix<mode>"): Likewise. |
| ("*call_value_local_aix<mode>"): Likewise. |
| ("*call_nonlocal_aix<mode>"): Likewise. |
| ("*call_value_nonlocal_aix<mode>"): Likewise. |
| ("*call_indirect_aix<mode>"): Likewise. |
| ("*call_value_indirect_aix<mode>"): Likewise. |
| ("sibcall"): Likewise. |
| ("sibcall_value"): Likewise. |
| ("*sibcall_aix<mode>"): Likewise. |
| ("*sibcall_value_aix<mode>"): Likewise. |
| * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise. |
| ("current_file_function_operand"): Likewise. |
| |
| Backport from mainline r204807: |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic |
| by making use of the fact that for vector / floating point arguments |
| passed both in VRs/FPRs and in the fixed parameter area, the partial |
| bytes mechanism is in fact not used. |
| |
| Backport from mainline r204806: |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function. |
| (rs6000_finish_function_arg): Likewise. |
| (rs6000_function_arg): Use rs6000_psave_function_arg and |
| rs6000_finish_function_arg to handle both vector and floating |
| point arguments that are also passed in GPRs / the stack. |
| |
| Backport from mainline r204805: |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument. |
| (USE_ALTIVEC_FOR_ARG_P): Likewise. |
| (rs6000_darwin64_record_arg_advance_recurse): Update uses. |
| (rs6000_function_arg_advance_1):Likewise. |
| (rs6000_darwin64_record_arg_recurse): Likewise. |
| (rs6000_function_arg): Likewise. |
| (rs6000_arg_partial_bytes): Likewise. |
| |
| Backport from mainline r204804: |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace |
| "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN. |
| (rs6000_savres_strategy): Likewise. |
| (rs6000_return_addr): Likewise. |
| (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by |
| testing for ABI_V4 (since ABI_DARWIN is impossible here). |
| (rs6000_emit_prologue): Likewise. |
| (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test. |
| (rs6000_elf_declare_function_name): Remove duplicated test. |
| * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test |
| for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test). |
| ("load_toc_v4_PIC_1_normal"): Likewise. |
| ("load_toc_v4_PIC_1_476"): Likewise. |
| ("load_toc_v4_PIC_1b"): Likewise. |
| ("load_toc_v4_PIC_1b_normal"): Likewise. |
| ("load_toc_v4_PIC_1b_476"): Likewise. |
| ("load_toc_v4_PIC_2"): Likewise. |
| ("load_toc_v4_PIC_3b"): Likewise. |
| ("load_toc_v4_PIC_3c"): Likewise. |
| * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test. |
| (RS6000_SAVE_AREA): Likewise. |
| (FP_ARG_MAX_REG): Likewise. |
| (RETURN_ADDRESS_OFFSET): Likewise. |
| * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead |
| of ABI_AIX. |
| (SUBTARGET_OVERRIDE_OPTIONS): Likewise. |
| (MINIMAL_TOC_SECTION_ASM_OP): Likewise. |
| |
| Backport from mainline r204803: |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ... |
| (rs6000_call_aix): ... this. Handle both direct and indirect calls. |
| Create call insn directly instead of via various gen_... routines. |
| Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE. |
| (rs6000_sibcall_aix): New function. |
| * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove. |
| (TOC_SAVE_OFFSET_64BIT): Likewise. |
| (AIX_FUNC_DESC_TOC_32BIT): Likewise. |
| (AIX_FUNC_DESC_TOC_64BIT): Likewise. |
| (AIX_FUNC_DESC_SC_32BIT): Likewise. |
| (AIX_FUNC_DESC_SC_64BIT): Likewise. |
| ("call" expander): Call rs6000_call_aix. |
| ("call_value" expander): Likewise. |
| ("call_indirect_aix<ptrsize>"): Replace this pattern ... |
| ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ... |
| ("*call_indirect_aix<mode>"): ... by this insn pattern. |
| ("call_value_indirect_aix<ptrsize>"): Replace this pattern ... |
| ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ... |
| ("*call_value_indirect_aix<mode>"): ... by this insn pattern. |
| ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ... |
| ("*call_nonlocal_aix<mode>"): ... this pattern. |
| ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace |
| ("*call_value_nonlocal_aix<mode>"): ... by this pattern. |
| ("*call_local_aix<mode>"): New insn pattern. |
| ("*call_value_local_aix<mode>"): Likewise. |
| ("sibcall" expander): Call rs6000_sibcall_aix. |
| ("sibcall_value" expander): Likewise. Move earlier in file. |
| ("*sibcall_nonlocal_aix<mode>"): Replace by ... |
| ("*sibcall_aix<mode>"): ... this pattern. |
| ("*sibcall_value_nonlocal_aix<mode>"): Replace by ... |
| ("*sibcall_value_aix<mode>"): ... this pattern. |
| * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove. |
| (rs6000_call_aix): Add prototype. |
| (rs6000_sibcall_aix): Likewise. |
| |
| Backport from mainline r204799: |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a |
| RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn. |
| Instead, add USEs of all modified call-saved CR fields to the |
| insn storing the result to the stack slot, and provide an |
| appropriate REG_FRAME_RELATED_EXPR for that insn. |
| * config/rs6000/rs6000.md ("*crsave"): New insn pattern. |
| * config/rs6000/predicates.md ("crsave_operation"): New predicate. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| ELFv2 ABI Call Support |
| Backport from mainline r204798: |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| Alan Modra <amodra@gmail.com> |
| |
| * function.c (assign_parms): Use all.reg_parm_stack_space instead |
| of re-evaluating REG_PARM_STACK_SPACE target macro. |
| (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE. Use it |
| instead of evaluating target macro REG_PARM_STACK_SPACE every time. |
| (assign_parm_find_entry_rtl): Update call. |
| * calls.c (initialize_argument_information): Update call. |
| (emit_library_call_value_1): Likewise. |
| * expr.h (locate_and_pad_parm): Update prototype. |
| |
| Backport from mainline r204797: |
| |
| 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL |
| arguments. |
| |
| Backport from mainline r197003: |
| |
| 2013-03-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * calls.c (expand_call): Add missing guard to code handling return |
| of non-BLKmode structures in MSB. |
| * function.c (expand_function_end): Likewise. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Backport from mainline r201750. |
| Note: Default setting of -mcompat-align-parm inverted! |
| |
| 2013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/57949 |
| * doc/invoke.texi: Add documentation of mcompat-align-parm |
| option. |
| * config/rs6000/rs6000.opt: Add mcompat-align-parm option. |
| * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX |
| and Linux, correct BLKmode alignment when 128-bit alignment is |
| required and compatibility flag is not set. |
| (rs6000_gimplify_va_arg): For AIX and Linux, honor specified |
| alignment for zero-size arguments when compatibility flag is not |
| set. |
| |
| 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| Little Endian Vector Support |
| Backport from mainline r205333 |
| 2013-11-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct |
| for little endian. |
| |
| Backport from mainline r205241 |
| 2013-11-21 Bill Schmidt <wschmidt@vnet.ibm.com> |
| |
| * config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous |
| little endian change. |
| (vec_pack_sfix_trunc_v2df): Likewise. |
| (vec_pack_ufix_trunc_v2df): Likewise. |
| * config/rs6000/rs6000.c (rs6000_expand_interleave): Correct |
| double checking of endianness. |
| |
| Backport from mainline r205146 |
| 2013-11-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian. |
| (vsx_extract_<mode>): Likewise. |
| (*vsx_extract_<mode>_one_le): New LE variant on |
| *vsx_extract_<mode>_zero. |
| (vsx_extract_v4sf): Adjust for little endian. |
| |
| Backport from mainline r205080 |
| 2013-11-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust |
| V16QI vector splat case for little endian. |
| |
| Backport from mainline r205045: |
| |
| 2013-11-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/vector.md ("mov<mode>"): Do not call |
| rs6000_emit_le_vsx_move to move into or out of GPRs. |
|