Linaro GCC 4.6-2011.12

Milestone information

Project:
Linaro GCC
Series:
4.6
Version:
4.6-2011.12
Released:
2011-12-08  
Registrant:
Andrew Stubbs
Release registered:
2011-12-08
Active:
Yes. Drivers can target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
2 Andrew Stubbs, 1 Dr. David Alan Gilbert, 1 Michael Hope
Blueprints:
3 Implemented
Bugs:
2 Fix Released

Download files for this release

After you've downloaded a file, you can verify its authenticity using its MD5 sum or signature. (How do I verify a download?)

File Description Downloads
download icon gcc-linaro-4.6-2011.12.tar.bz2 (md5, sig) Linaro GCC Source 1,386
last downloaded 4 days ago
Total downloads: 1,386

Release notes 

The Linaro Toolchain Working Group is pleased to announce the 2011.12
release of Linaro GCC 4.6.

Linaro GCC 4.6 2011.12 is the tenth release in the 4.6 series. Based
off the latest GCC 4.6.2+svn181866, it contains a range of vectoriser
performance improvements and general bug fixes.

Interesting changes include:
 * Updates to 4.6.2+svn181866
 * Generic tuing support for Big-endian platforms.
 * SLP support for operations with arbirary numbers of operands.
 * SLP support for conditions.
 * Pattern recognition support in basic-block SLP.
 * Enhancements to mixed-size condition pattern recognition.
 * Support for 64bit __sync* primitives on ARM.
 * Unaligned block-move support for ARMv7.
 * Added Cortex-A15 integer pipeline tuning.

The source tarballs are available from:
 https://launchpad.net/gcc-linaro/+milestone/4.6-2011.12

Downloads are available from the Linaro GCC page on Launchpad:
 https://launchpad.net/gcc-linaro

More information on the features and issues are available from the
release page:
 https://launchpad.net/gcc-linaro/4.6/4.6-2011.12

Mailing list: http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Bugs: https://bugs.launchpad.net/gcc-linaro/

Questions? https://ask.linaro.org/

Interested in commercial support? inquire at support@linaro.org

Changelog 

View the full changelog

2011-12-06 Ramana Radhakrishnan <email address hidden>

 Revert earlier commit for fixed to floating point conversions.
 2011-12-05 Ramana Radhakrishnan <email address hidden>

 gcc/
 * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
 * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
 * config/arm/constraints.md ("Dt"): New constraint.
 * config/arm/predicates.md (const_double_vcvt_power_of_two_reciprocal):
 New.
 * config/arm/vfp.md (*arm_combine_vcvt_f32_s32): New.
 (*arm_combine_vcvt_f32_u32): New.

2011-12-01 Andrew Stubbs <email address hidden>

 Merge from FSF GCC 4.6.2 (svn branches/gcc-4_6-branch 181866).

2011-12-05 Ramana Radhakrishnan <email address hidden>

 Backport from mainline -A15 tuning.
 2011-11-30 Matthew Gretton-Dann <email address hidden>

 * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue.
 * config/arm/arm.md (mul64): New attribute.
 (generic_sched): Cortex-A15 is not scheduled generically.
 (cortex-a15.md): Include.
 * config/arm/cortex-a15.md: New machine description.
 * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md.

        2011-11-30 Matthew Gretton-Dann <email address hidden>
 * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed.

2011-12-05 Ramana Radhakrishnan <email address hidden>

 gcc/
 * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
 * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
 * config/arm/constraints.md ("Dt"): New constraint.
 * config/arm/predicates.md (const_double_vcvt_power_of_two_reciprocal):
 New.
 * config/arm/vfp.md (*arm_combine_vcvt_f32_s32): New.
 (*arm_combine_vcvt_f32_u32): New.

2011-11-27 Ira Rosen <email address hidden>

 Needs to be merged upstream:

 gcc/
 * tree-vect-patterns.c (widened_name_p): Rename to ...
 (type_conversion_p): ... this. Add new argument to determine
 if it's a promotion or demotion operation. Check for
 CONVERT_EXPR_CODE_P instead of NOP_EXPR.
 (vect_recog_dot_prod_pattern): Call type_conversion_p instead
 widened_name_p.
 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
 Likewise.
 (vect_recog_mixed_size_cond_pattern): Likewise and allow
 non-constant then and else clauses.

 gcc/testsuite/
 * gcc.dg/vect/bb-slp-cond-3.c: New test.
 * gcc.dg/vect/bb-slp-cond-4.c: New test.

2011-11-28 David Alan Gilbert <email address hidden>

 Backport from mainline (svn r19983):

 2011-10-14 David Alan Gilbert <email address hidden>

 gcc/testsuite/
 * gcc.dg/di-longlong64-sync-1.c: New test.
 * gcc.dg/di-sync-multithread.c: New test.
 * gcc.target/arm/di-longlong64-sync-withhelpers.c: New test.
 * gcc.target/arm/di-longlong64-sync-withldrexd.c: New test.
 * lib/target-supports.exp: (arm_arch_*_ok): Series of effective-target
 tests for v5, v6, v6k, and v7-a, and add-options helpers.
 (check_effective_target_arm_arm_ok): New helper.
 (check_effective_target_sync_longlong): New helper.

2011-11-28 David Alan Gilbert <email address hidden>

 Backport from mainline (svn r19982):

 2011-10-14 David Alan Gilbert <email address hidden>

 gcc/
 * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
 * config/arm/linux-atomic.c: Change comment to point to 64bit version.
 (SYNC_LOCK_RELEASE): Instantiate 64bit version.
 * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.

2011-11-28 David Alan Gilbert <email address hidden>

 Backport from mainline (svn r19981):

 2011-10-14 David Alan Gilbert <email address hidden>

 gcc/
 * config/arm/arm.c (arm_output_ldrex): Support ldrexd.
 (arm_output_strex): Support strexd.
 (arm_output_it): New helper to output it in Thumb2 mode only.
 (arm_output_sync_loop): Support DI mode. Change comment to
 not support const_int.
 (arm_expand_sync): Support DI mode.
 * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
 and LDREXD.
 * config/arm/iterators.md (NARROW): move from sync.md.
 (QHSD): New iterator for all current ARM integer modes.
 (SIDI): New iterator for SI and DI modes only.
 * config/arm/sync.md (sync_predtab): New mode_attr.
 (sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
 (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
 (sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
 (sync_nandsi): Fold into sync_nand<mode>.
 (sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
 (sync_new_nandsi): Fold into sync_new_nand<mode>.
 (sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
 (sync_old_nandsi): Fold into sync_old_nand<mode>.
 (sync_compare_and_swap<mode>): Support SI & DI.
 (sync_lock_test_and_set<mode>): Likewise.
 (sync_<sync_optab><mode>): Likewise.
 (sync_nand<mode>): Likewise.
 (sync_new_<sync_optab><mode>): Likewise.
 (sync_new_nand<mode>): Likewise.
 (sync_old_<sync_optab><mode>): Likewise.
 (sync_old_nand<mode>): Likewise.
 (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
 (arm_sync_lock_test_and_setsi): Likewise.
 (arm_sync_new_<sync_optab>si): Likewise.
 (arm_sync_new_nandsi): Likewise.
 (arm_sync_old_<sync_optab>si): Likewise.
 (arm_sync_old_nandsi): Likewise.
 (arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
 (arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
 (arm_sync_new_<sync_optab><mode> NARROW): Likewise.
 (arm_sync_new_nand<mode> NARROW): Likewise.
 (arm_sync_old_<sync_optab><mode> NARROW): Likewise.
 (arm_sync_old_nand<mode> NARROW): Likewise.

2011-11-28 David Alan Gilbert <email address hidden>

 Backport from mainline (svn r19980):

 2011-10-14 David Alan Gilbert <email address hidden>

 PR target/48126

 gcc/
 * config/arm/arm.c (arm_output_sync_loop): Move label before barrier.

2011-11-28 David Alan Gilbert <email address hidden>

 Backport from mainline (svn r19979):

 2011-10-14 David Alan Gilbert <email address hidden>

 gcc/
 * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.

2011-11-27 Ira Rosen <email address hidden>

 Needs to be merged upstream:

 gcc/
 * tree-vectorizer.h (vect_pattern_recog): Add new argument.
 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
 vect_pattern_recog.
 * tree-vect-patterns.c (widened_name_p): Pass basic block
 info to vect_is_simple_use.
 (vect_recog_dot_prod_pattern): Fail for basic blocks.
 (vect_recog_widen_sum_pattern): Likewise.
 (vect_handle_widen_op_by_const): Support basic blocks.
 (vect_operation_fits_smaller_type,
 vect_recog_over_widening_pattern): Likewise.
 (vect_recog_mixed_size_cond_pattern): Support basic blocks.
 Add printing.
 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
 (vect_pattern_recog_1): Check for reduction only in loops.
 (vect_pattern_recog): Add new argument. Support basic blocks.
 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
 info to vect_is_simple_use_1.
 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic
 blocks.
 (vect_slp_analyze_bb_1): Call vect_pattern_recog.

 gcc/testsuite/
 * gcc.dg/vect/bb-slp-pattern-1.c: New test.
 * gcc.dg/vect/bb-slp-pattern-2.c: New test.

2011-11-22 Ira Rosen <email address hidden>

 Backport from mainline:

 2011-11-06 Ira Rosen <email address hidden>

 gcc/
 * tree-vectorizer.h (vectorizable_condition): Add argument.
 * tree-vect-loop.c (vectorizable_reduction): Fail for condition
 in SLP. Update calls to vectorizable_condition.
 * tree-vect-stmts.c (vect_is_simple_cond): Add basic block info to
 the arguments. Pass it to vect_is_simple_use_1.
 (vectorizable_condition): Add slp_node to the arguments. Support
 vectorization of basic blocks. Fail for reduction in SLP. Update
 calls to vect_is_simple_cond and vect_is_simple_use. Support SLP:
 call vect_get_slp_defs to get vector operands.
 (vect_analyze_stmt): Update calls to vectorizable_condition.
 (vect_transform_stmt): Likewise.
 * tree-vect-slp.c (vect_create_new_slp_node): Handle COND_EXPR.
 (vect_get_and_check_slp_defs): Handle COND_EXPR. Allow pattern
 def stmts.
 (vect_build_slp_tree): Handle COND_EXPR.
 (vect_analyze_slp_instance): Push pattern statements to root node.
 (vect_get_constant_vectors): Fix comments. Handle COND_EXPR.

 gcc/testsuite/
 * gcc.dg/vect/bb-slp-cond-1.c: New test.
 * gcc.dg/vect/slp-cond-1.c: New test.

2011-11-22 Ira Rosen <email address hidden>

 Backport from mainline:

 2011-10-06 Jakub Jelinek <email address hidden>

 gcc/
 PR tree-optimization/50596
 * tree-vectorizer.h (vect_is_simple_cond): New prototype.
 (NUM_PATTERNS): Change to 6.
 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
 function.
 (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
 (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
 if it already has one, and don't set STMT_VINFO_VECTYPE in it
 if it is already set.
 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
 COND_EXPR in pattern stmts.
 (vect_is_simple_cond): No longer static.

 gcc/testsuite:
 PR tree-optimization/50596
 * gcc.dg/vect/vect-cond-8.c: New test.

 2011-10-07 Jakub Jelinek <email address hidden>

 gcc/
 PR tree-optimization/50650
 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
 call vect_is_simple_cond here, instead fail if cond_expr isn't
 COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
 for cond_expr's first operand.
 * tree-vect-stmts.c (vect_is_simple_cond): Static again.
 * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.

 gcc/
 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Reduce
 it to integral types only.

 gcc/testsuite/
 * gcc.dg/vect/pr30858.c: Expect the error message twice for targets
 with multiple vector sizes.
 * gcc.dg/vect/vect-cond-8.c: Rename to...
 * gcc.dg/vect/vect-cond-8a.c: ... this and change the type from float
 to int.
 * lib/target-supports.exp (check_effective_target_vect_condition):
 Return true for NEON.

2011-11-21 Michael Hope <email address hidden>

 Backport from mainline r180131:

 2011-10-18 Julian Brown <email address hidden>

 gcc/
 * config/arm/arm.c (arm_block_move_unaligned_straight)
 (arm_adjust_block_mem, arm_block_move_unaligned_loop)
 (arm_movmemqi_unaligned): New.
 (arm_gen_movmemqi): Support unaligned block copies.

 gcc/testsuite/
 * lib/target-supports.exp (check_effective_target_arm_unaligned): New.
 * gcc.target/arm/unaligned-memcpy-1.c: New.
 * gcc.target/arm/unaligned-memcpy-2.c: New.
 * gcc.target/arm/unaligned-memcpy-3.c: New.
 * gcc.target/arm/unaligned-memcpy-4.c: New.

 2011-09-15 James Greenhalgh <email address hidden>

 gcc/
 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.

2011-11-17 Ira Rosen <email address hidden>

 Backport from mainline:

 2011-11-03 Ira Rosen <email address hidden>

 gcc/
 * tree-vectorizer.h (slp_void_p): New.
 (struct _slp_tree): Replace left and right with children. Update
 documentation.
 (struct _slp_oprnd_info): New.
 (vect_get_vec_defs): Declare.
 (vect_get_slp_defs): Update arguments.
 * tree-vect-loop.c (vect_create_epilog_for_reduction): Call
 vect_get_vec_defs instead of vect_get_slp_defs.
 (vectorizable_reduction): Likewise.
 * tree-vect-stmts.c (vect_get_vec_defs): Remove static, add argument.
 Update call to vect_get_slp_defs.
 (vectorizable_conversion): Update call to vect_get_vec_defs.
 (vectorizable_assignment, vectorizable_shift,
 vectorizable_operation): Likewise.
 (vectorizable_type_demotion): Call vect_get_vec_defs instead of
 vect_get_slp_defs.
 (vectorizable_type_promotion, vectorizable_store): Likewise.
 (vect_analyze_stmt): Fix typo.
 * tree-vect-slp.c (vect_free_slp_tree): Update SLP tree traversal.
 (vect_print_slp_tree, vect_mark_slp_stmts,
 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
 vect_schedule_slp_instance): Likewise.
 (vect_create_new_slp_node): New.
 (vect_create_oprnd_info, vect_free_oprnd_info): Likewise.
 (vect_get_and_check_slp_defs): Pass information about defs using
 oprnds_info, allow any number of operands.
 (vect_build_slp_tree): Likewise. Update calls to
 vect_get_and_check_slp_defs. Fix comments.
 (vect_analyze_slp_instance): Move node creation to
 vect_create_new_slp_node.
 (vect_get_slp_defs): Allow any number of operands.

 2011-11-11 Jakub Jelinek <email address hidden>

 gcc/
 * tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN
 vector.
 (vect_create_new_slp_node): Don't allocate node before checking stmt
 type.
 (vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always
 free def_stmts vectors and additionally free oprnd_info.
 (vect_build_slp_tree): Adjust callers. Call it even if
 stop_recursion. If vect_create_new_slp_node or
 vect_build_slp_tree fails, properly handle freeing memory.
 If it succeeded, clear def_stmts in oprnd_info.

2011-11-02 Andrew Stubbs <email address hidden>

 Backport from FSF mainline:

 2011-11-01 Andrew Stubbs <email address hidden>

 gcc/
 * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning.

3 blueprints and 2 bugs targeted

Blueprint Priority Assignee Delivery
64 bit sync primitives 4 High Dr. David Alan Gilbert  11 Implemented
Allow more operations to be SLPed 3 Medium   11 Implemented
Unaligned memcpy() 2 Low Michael Hope  11 Implemented
Bug report Importance Assignee Status
809446 #809446 ICEs and infinite loops in neon_disambiguate_copy() 4 Medium Andrew Stubbs  10 Fix Released
809446 #809446 ICEs and infinite loops in neon_disambiguate_copy() 4 Medium Andrew Stubbs  10 Fix Released
This milestone contains Public information
Everyone can see this information.