Linaro GCC 4.6-2011.09

Milestone information

Project:
Linaro GCC
Series:
4.6
Version:
4.6-2011.09
Released:
 
Registrant:
Michael Hope
Release registered:
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:
6 Andrew Stubbs, 3 Ira Rosen, 1 Ken Werner, 5 Ramana Radhakrishnan, 2 Richard Sandiford
Blueprints:
10 Implemented
Bugs:
8 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.09-1.tar.bz2 (md5, sig) Linaro GCC Source 1,193
last downloaded 3 weeks ago
Total downloads: 1,193

Release notes 

Linaro GCC 4.6 2011.09-1 is the seventh release in the 4.6 series. Based
off the latest GCC 4.6.1+svn178681, it contains a range of vectoriser
and core performance improvements as well as fixing a number of
bugs.

Interesting changes include:
 * Updates to 4.6.1+svn178681
 * Improves performance by making better use of conditional compares
 * Improves performance by properly scheduling widening multiplies
 * Improves size and speed by improving constant generation in Thumb-2
 * Implements support for widening multiples in toe core
 * Improves vectorised code by reducing the over-promotion of intermediates
 * Improves performance by reducing redundant moves between VFP and ARM
 * Finishes off supporting the Android team in integrating Linaro GCC

Fixes:
 * LP: #823548 Can't use -flto with skia
 * LP: #823711 libvirt version 0.9.2-4ubuntu8 failed to build on armel
 * LP: #827990 internal compiler error: in decode_addr_const, at varasm.c:2632
 * LP: #836401 ICE on a | (b << negative-constant)
 * LP: #838994 ICE building perl w/ -marm
 * LP: #843775 ICE optimizing widening multiply-and-accumulate

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

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.09

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-09-15 Richard Sandiford <email address hidden>

 GCC Linaro 4.6-2011.09-1 released.

 gcc/
 * LINARO-VERSION: Update.

2011-09-15 Richard Sandiford <email address hidden>

 Revert:

 gcc/
 PR target/49030
 * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
 * config/arm/arm.c (maybe_get_arm_condition_code): New function,
 reusing the old code from get_arm_condition_code. Return ARM_NV
 for invalid comparison codes.
 (get_arm_condition_code): Redefine in terms of
 maybe_get_arm_condition_code.
 * config/arm/predicates.md (arm_comparison_operator): Use
 maybe_get_arm_condition_code.

 gcc/testsuite/
 PR target/49030
 * gcc.dg/torture/pr49030.c: New test.

2011-09-13 Andrew Stubbs <email address hidden>

 gcc/
 * LINARO-VERSION: Bump version.

2011-09-13 Andrew Stubbs <email address hidden>

 GCC Linaro 4.6-2011.09 released.

 gcc/
 * LINARO-VERSION: Update.

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

 Backport from FSF mainline:
        2011-04-06 Wei Guozhi <email address hidden>

        PR target/47855
 gcc/
        * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
        (arm_cond_branch): Likewise.
        (arm_cond_branch_reversed): Likewise.
        (arm_jump): Likewise.
        (push_multi): Likewise.
        * config/arm/constraints.md (Py): New constraint.

 2011-04-08 Wei Guozhi <email address hidden>

 PR target/47855
 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
 * config/arm/arm.c (arm_attr_length_push_multi): New function.
 * config/arm/arm.md (*push_multi): Change the length computation to
 call a C function.

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

 Backport from FSF mainline:

        2011-08-18 Jiangning Liu <email address hidden>

 gcc/
 * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
 (*ior_scc_scc_cmp): Likewise
 (*and_scc_scc): Likewise.
 (*and_scc_scc_cmp): Likewise.
 (*and_scc_scc_nodom): Likewise.
 (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.

 gcc/testsuite
 * gcc.target/arm/thumb2-cond-cmp-1.c: New. Make sure conditional
 compare can be generated.
 * gcc.target/arm/thumb2-cond-cmp-2.c: Likewise.
 * gcc.target/arm/thumb2-cond-cmp-3.c: Likewise.
 * gcc.target/arm/thumb2-cond-cmp-4.c: Likewise.

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

 gcc/testsuite/
 * gcc.target/arm/pr50099.c: Fix testcase from previous commit.

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

 LP:838994
 gcc/
 Backport from mainline.

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

        PR target/50099
 * config/arm/iterators.md (qhs_zextenddi_cstr): New.
 (qhs_zextenddi_op): New.
 * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
 * config/arm/predicates.md ("arm_extendqisi_mem_op"):
 Distinguish between ARM and Thumb2 states.

 gcc/testsuite/
 * gcc.target/arm/pr50099.c: New test.

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

 Backport from FSF mainline:

 2011-09-08 Andrew Stubbs <email address hidden>

 PR tree-optimization/50318

 gcc/
 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
 typo in use of mult_rhs1 and mult_rhs2.

 gcc/testsuite/
 * gcc.target/arm/pr50318-1.c: New file.

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

 gcc/
 * config/arm/predicates.md (shift_amount_operand): Ensure shift
 amount is positive.

 gcc/testsuite/
 * gcc.dg/pr50193-1.c: New file.

2011-09-12 Richard Sandiford <email address hidden>

 gcc/
 PR target/49030
 * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
 * config/arm/arm.c (maybe_get_arm_condition_code): New function,
 reusing the old code from get_arm_condition_code. Return ARM_NV
 for invalid comparison codes.
 (get_arm_condition_code): Redefine in terms of
 maybe_get_arm_condition_code.
 * config/arm/predicates.md (arm_comparison_operator): Use
 maybe_get_arm_condition_code.

 gcc/testsuite/
 PR target/49030
 * gcc.dg/torture/pr49030.c: New test.

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

 Backport from FSF mainline:

 2011-08-30 Andrew Stubbs <email address hidden>

 gcc/
 * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
 b3 and b4 unsigned.

 2011-08-30 Andrew Stubbs <email address hidden>

 gcc/
 * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
 when code is SET.

 2011-08-26 Andrew Stubbs <email address hidden>

 gcc/
 * config/arm/arm.c (struct four_ints): New type.
 (count_insns_for_constant): Delete function.
 (find_best_start): Delete function.
 (optimal_immediate_sequence): New function.
 (optimal_immediate_sequence_1): New function.
 (arm_gen_constant): Move constant splitting code to
 optimal_immediate_sequence.
 Rewrite constant negation/invertion code.

 gcc/testsuite/
 * gcc.target/arm/thumb2-replicated-constant1.c: New file.
 * gcc.target/arm/thumb2-replicated-constant2.c: New file.
 * gcc.target/arm/thumb2-replicated-constant3.c: New file.
 * gcc.target/arm/thumb2-replicated-constant4.c: New file.

 2011-08-26 Andrew Stubbs <email address hidden>

 gcc/
 * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
 * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
 Remove prototype. Remove static function type.
 * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
 Add arch attribute.
 * config/arm/constraints.md (Pj, PJ): New constraints.

 2011-04-20 Andrew Stubbs <email address hidden>

 gcc/
 * config/arm/arm.c (arm_gen_constant): Move mowv support ....
 (const_ok_for_op): ... to here.

 2011-04-20 Andrew Stubbs <email address hidden>

 gcc/
 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.

2011-09-08 Andrew Stubbs <email address hidden>

 Merge from FSF GCC 4.6.1 (svn branches/gcc-4_6-branch 178681).

2011-09-07 Ira Rosen <email address hidden>

 Backport from mainline:

 2011-08-04 Ira Rosen <email address hidden>

 gcc/
 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
 pattern def statement, and its access macro.
 (NUM_PATTERNS): Set to 5.
 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
 pattern def statement.
 (vect_transform_loop): Likewise.
 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
 function vect_recog_over_widening_pattern ().
 (vect_operation_fits_smaller_type): New function.
 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
 Likewise.
 (vect_pattern_recog_1): Move the code that marks pattern
 statements to vect_mark_pattern_stmts (), and call it. Update
 documentation.
 * tree-vect-stmts.c (vect_supportable_shift): New function.
 (vect_analyze_stmt): Handle pattern def statement.
 (new_stmt_vec_info): Initialize pattern def statement.

 gcc/testsuite/
 * gcc.dg/vect/vect-over-widen-1.c: New test.
 * gcc.dg/vect/vect-over-widen-2.c: New test.
 * gcc.dg/vect/vect-over-widen-3.c: New test.
 * gcc.dg/vect/vect-over-widen-4.c: New test.

 2011-08-09 Ira Rosen <email address hidden>

 gcc/
 PR tree-optimization/50014
 * tree-vect-loop.c (vectorizable_reduction): Get def type before
 calling vect_get_vec_def_for_stmt_copy ().

 gcc/testsuite/
 PR tree-optimization/50014
 * gcc.dg/vect/pr50014.c: New test.

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

 gcc/
 PR tree-optimization/50039
 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
 that DEF_STMT has a stmt_vec_info.

 gcc/testsuite/
 PR tree-optimization/50039
 * gcc.dg/vect/vect.exp: Run no-tree-fre-* tests with -fno-tree-fre.
 * gcc.dg/vect/no-tree-fre-pr50039.c: New test.

 2011-09-04 Jakub Jelinek <email address hidden>
      Ira Rosen <email address hidden>

 gcc/
 PR tree-optimization/50208
 * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
 argument. Check that def_stmt is inside the loop.
 (vect_recog_widen_mult_pattern): Update calls to
 vect_handle_widen_mult_by_cons.
 (vect_operation_fits_smaller_type): Check that def_stmt is
 inside the loop.

 gcc/testsuite/
 PR tree-optimization/50208
 * gcc.dg/vect/no-fre-pre-pr50208.c: New test.
 * gcc.dg/vect/vect.exp: Run no-fre-pre-*.c tests with
 -fno-tree-fre -fno-tree-pre.

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

 Backport from mainline.
 2011-08-26 Ramana Radhakrishnan <email address hidden>

 * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
 ("cortex_a9_multiply_long"): New and use above. Handle all
 long multiply cases.
 ("cortex_a9_multiply"): Handle smmul and smmulr.
 ("cortex_a9_mac"): Handle smmla.

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

 gcc/
 2011-08-12 Ramana Radhakrishnan <email address hidden>

 PR target/48328
 * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
 for tbh instructions.

2011-08-26 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainline:

 2011-08-26 Richard Sandiford <email address hidden>

 * df-problems.c (df_note_bb_compute): Pass uses rather than defs
 to df_set_dead_notes_for_mw.

2011-08-25 Andrew Stubbs <email address hidden>

 Backport from FSF mainline:

 2011-08-19 Andrew Stubbs <email address hidden>

 gcc/
 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
 beyond conversions.
 (convert_mult_to_widen): Convert constant inputs to the right type.
 (convert_plusminus_to_widen): Don't automatically reject inputs that
 are not an SSA_NAME.
 Convert constant inputs to the right type.

 gcc/testsuite/
 * gcc.target/arm/wmul-11.c: New file.
 * gcc.target/arm/wmul-12.c: New file.
 * gcc.target/arm/wmul-13.c: New file.

 2011-08-19 Andrew Stubbs <email address hidden>

 gcc/
 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
 to the correct type.

 gcc/testsuite/
 * gcc.target/arm/wmul-10.c: New file.

 2011-08-19 Andrew Stubbs <email address hidden>

 gcc/
 * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
 unsigned inputs of different modes.
 (convert_plusminus_to_widen): Likewise.

 gcc/testsuite/
 * gcc.target/arm/wmul-9.c: New file.
 * gcc.target/arm/wmul-bitfield-2.c: New file.

 2011-08-19 Andrew Stubbs <email address hidden>

 gcc/
 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
 'type'.
 Use 'type' from caller, not inferred from 'rhs'.
 Don't reject non-conversion statements. Do return lhs in this case.
 (is_widening_mult_p): Add new argument 'type'.
 Use 'type' from caller, not inferred from 'stmt'.
 Pass type to is_widening_mult_rhs_p.
 (convert_mult_to_widen): Pass type to is_widening_mult_p.
 (convert_plusminus_to_widen): Likewise.

 gcc/testsuite/
 * gcc.target/arm/wmul-8.c: New file.

 2011-08-19 Andrew Stubbs <email address hidden>

 gcc/
 * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
 Ensure the the larger type is the first operand.

 gcc/testsuite/
 * gcc.target/arm/wmul-7.c: New file.

 2011-08-19 Andrew Stubbs <email address hidden>

 gcc/
 * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
 unsupported unsigned multiplies to signed.
 (convert_plusminus_to_widen): Likewise.

 gcc/testsuite/
 * gcc.target/arm/wmul-6.c: New file.

 2011-08-19 Andrew Stubbs <email address hidden>

 gcc/
 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
 conversion statement separating multiply-and-accumulate.

 gcc/testsuite/
 * gcc.target/arm/wmul-5.c: New file.
 * gcc.target/arm/no-wmla-1.c: New file.

 2011-08-19 Andrew Stubbs <email address hidden>

 gcc/
 * config/arm/arm.md (maddhidi4): Remove '*' from name.
 * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
 * optabs.c (find_widening_optab_handler_and_mode): New function.
 (expand_widen_pattern_expr): Use find_widening_optab_handler.
 (expand_binop_directly): Likewise.
 (expand_binop): Likewise.
 * optabs.h (find_widening_optab_handler): New macro define.
 (find_widening_optab_handler_and_mode): New prototype.
 * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
 type precision rules.
 (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
 * tree-ssa-math-opts.c (build_and_insert_cast): New function.
 (is_widening_mult_rhs_p): Allow widening by more than one mode.
 Explicitly disallow mis-matched input types.
 (convert_mult_to_widen): Use find_widening_optab_handler, and cast
 input types to fit the new handler.
 (convert_plusminus_to_widen): Likewise.

 gcc/testsuite/
 * gcc.target/arm/wmul-bitfield-1.c: New file.

 2011-08-19 Andrew Stubbs <email address hidden>

 gcc/
 * expr.c (expand_expr_real_2): Use widening_optab_handler.
 * genopinit.c (optabs): Use set_widening_optab_handler for $N.
 (gen_insn): $N now means $a must be wider than $b, not consecutive.
 * optabs.c (widened_mode): New function.
 (expand_widen_pattern_expr): Use widening_optab_handler.
 (expand_binop_directly): Likewise.
 (expand_binop): Likewise.
 * optabs.h (widening_optab_handlers): New struct.
 (optab_d): New member, 'widening'.
 (widening_optab_handler): New function.
 (set_widening_optab_handler): New function.
 * tree-ssa-math-opts.c (convert_mult_to_widen): Use
 widening_optab_handler.
 (convert_plusminus_to_widen): Likewise.

2011-08-24 Ramana Radhakrishnan <email address hidden>

 LP:823548
 gcc/
 * config/arm/arm.c (arm_init_neon_builtins): Use
 n_operands instead of n_generator_args.

2011-08-24 Ramana Radhakrishnan <email address hidden>

 LP:823548
 Backport from mainline
 2011-04-18 Jie Zhang <email address hidden>
 Richard Earnshaw <email address hidden>

 * arm.c (neon_builtin_type_bits): Remove.
 (typedef enum neon_builtin_mode): New.
 (T_MAX): Don't define.
 (typedef enum neon_builtin_datum): Remove bits, codes[],
 num_vars and base_fcode. Add mode, code and fcode.
 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
 VAR10): Change accordingly.
 (neon_builtin_data[]): Change accordingly
 (arm_init_neon_builtins): Change accordingly.
 (neon_builtin_compare): Remove.
 (locate_neon_builtin_icode): Remove.
 (arm_expand_neon_builtin): Change accordingly.

 * arm.h (enum arm_builtins): Move to ...
 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.

 * arm.c (arm_builtin_decl): Declare.
 (TARGET_BUILTIN_DECL): Define.
 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
 (arm_builtin_decls[]): New.
 (arm_init_neon_builtins): Store builtin declarations in
 arm_builtin_decls[].
 (arm_init_tls_builtins): Likewise.
 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
 (arm_builtin_decl): New.

2011-08-18 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainline:

 2011-08-18 Richard Sandiford <email address hidden>

 * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
 (arm_size_rtx_costs): Likewise.

2011-08-18 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainline:

 2011-08-12 Richard Sandiford <email address hidden>

 * config/arm/arm.c (get_label_padding): New function.
 (create_fix_barrier, arm_reorg): Use it.

10 blueprints and 8 bugs targeted

Blueprint Priority Assignee Delivery
Conditional compares Conditional compares 4 High Ramana Radhakrishnan  11 Implemented
Fix widening multiply scheduling Fix widening multiply scheduling 4 High Ramana Radhakrishnan  11 Implemented
Improve constant generation in Thumb-2 Improve constant generation in Thumb-2 4 High Andrew Stubbs  11 Implemented
Improve support for widening multiplies for ARM Improve support for widening multiplies for ARM 4 High Andrew Stubbs  11 Implemented
Linaro GCC the product Linaro GCC the product (some work for this milestone) 4 High Andrew Stubbs  11 Implemented
Reduce over-promotion Reduce over-promotion 4 High Ira Rosen  11 Implemented
Reduce redundant VFP/ARM moves Reduce redundant VFP/ARM moves 4 High Ramana Radhakrishnan  11 Implemented
Tidy vectoriser testsuite Tidy vectoriser testsuite 4 High Ira Rosen  11 Implemented
Vectoriser doubling multiply support Vectoriser doubling multiply support 4 High Ira Rosen  11 Implemented
Linaro toolchain in Android Linaro toolchain in Android 3 Medium Ken Werner  11 Implemented
Bug report Importance Assignee Status
823711 #823711 libvirt version 0.9.2-4ubuntu8 failed to build on armel 3 High Richard Sandiford  10 Fix Released
823711 #823711 libvirt version 0.9.2-4ubuntu8 failed to build on armel 3 High Richard Sandiford  10 Fix Released
843775 #843775 ICE optimizing widening multiply-and-accumulate 3 High Andrew Stubbs  10 Fix Released
827990 #827990 internal compiler error: in decode_addr_const, at varasm.c:2632 4 Medium Andrew Stubbs  10 Fix Released
838994 #838994 ICE building perl w/ -marm 4 Medium Ramana Radhakrishnan  10 Fix Released
709283 #709283 long long multiply-and-add far from optimal 5 Low   10 Fix Released
823548 #823548 Can't use -flto with skia 5 Low Ramana Radhakrishnan  10 Fix Released
663939 #663939 Improve constant handling of thumb2 instructions 1 Undecided Andrew Stubbs  10 Fix Released
This milestone contains Public information
Everyone can see this information.