Linaro GCC 4.6-2011.06-0

Milestone information

Project:
Linaro GCC
Series:
4.6
Version:
4.6-2011.06-0
Released:
 
Registrant:
Michael Hope
Release registered:
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
No users assigned to blueprints and bugs.
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
No bugs are targeted to this milestone.

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.06-0.tar.bz2 (md5, sig) Linaro GCC Source 1,320
last downloaded 71 weeks ago
Total downloads: 1,320

Release notes 

Linaro GCC 4.6 is the fourth release in the 4.6 series. Based off the
latest GCC 4.6.0+svn174261, it adds new optimisations and vectoriser
improvements.

Interesting changes include:
 * Updates to 4.6.0+r174261
 * Blocks can now vectorise into ORN and BIC instructions
 * Support for half word to double word multiply and accumulate operations
 * Better support for other widening multiply operations
 * Further performance improvements in NEON strided loads and stores
 * Performance improvements targeted at EEMBC CoreMark

Fixes:
 * PR target/48454: Set the lengths correctly for the case with Quad vectors.

Known issues:
 * Building Python 2.7 with -mfpu=neon exposes a bug in vmov.i64 in binutils 2.20.51. Please use 2.21 or later.

The strided load/store improvements allow the vectoriser to
efficiently access values that occur at every n'th address, such as
all of the red values in a RGB image or all of the left channel
samples in a interleaved audio array. For example, a plain C function
that converts between RGB and CYMK now runs 7.3 x faster on an A9.

The source tarball is available from:
 https://launchpad.net/gcc-linaro/+milestone/4.6-2011.06-0

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

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-06-13 Ramana Radhakrishnan <email address hidden>

 Backport from mainline:
 gcc/
 2011-06-13 Ramana Radhakrishnan <email address hidden>

 PR target/48454
 * config/arm/neon.md (vec_pack_trunc<mode>): Set the lengths
 correctly for the case with Quad vectors.

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

 Backport from mainline:
 gcc/
        2011-06-02 Ramana Radhakrishnan <email address hidden>
 * config/arm/neon.md (orndi3_neon): Actually split it.

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

        Backport from mainline.
 gcc/
        2011-05-26 Ramana Radhakrishnan <email address hidden>

 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
 ("orndi3_neon"): Likewise.
 ("bic<mode>3_neon"): Likewise.

 gcc/testsuite
 2011-05-26 Ramana Radhakrishnan <email address hidden>

 * gcc.target/arm/neon-vorn-vbic.c: New test.

2011-06-07 Andrew Stubbs <email address hidden>

 Backport from FSF:

 2011-06-07 Andrew Stubbs <email address hidden>

 gcc/
 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
 (*maddhisi4tb, *maddhisi4tt): New define_insns.

 gcc/testsuite/
 * gcc.target/arm/smlatb-1.c: New file.
 * gcc.target/arm/smlatt-1.c: New file.
 * gcc.target/arm/smlaltb-1.c: New file.
 * gcc.target/arm/smlaltt-1.c: New file.

2011-06-07 Andrew Stubbs <email address hidden>

 Backport from FSF:

 2011-06-07 Bernd Schmidt <email address hidden>
      Andrew Stubbs <email address hidden>

 gcc/
 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
 multiplies.
 * doc/md.texi (Canonicalization of Instructions): Document widening
 multiply canonicalization.

 gcc/testsuite/
 * gcc.target/arm/mla-2.c: New test.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/
 * gimple.c (gimple_build_call_internal_1): Add missing call to
 gimple_call_reset_alias_info.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/testsuite/
 Backport from mainline:

 2011-05-03 Richard Sandiford <email address hidden>

 * gcc.dg/vect/vect-strided-u16-i3.c: New test.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/testsuite/
 Backport from mainline:

 2011-05-03 Richard Sandiford <email address hidden>

 * lib/target-supports.exp (check_effective_target_vect_strided):
 Replace with...
 (check_effective_target_vect_strided2)
 (check_effective_target_vect_strided3)
 (check_effective_target_vect_strided4)
 (check_effective_target_vect_strided8): ...these new functions.

 * gcc.dg/vect/O3-pr39675-2.c: Update accordingly.
 * gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c: Likewise.
 * gcc.dg/vect/fast-math-slp-27.c: Likewise.
 * gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c: Likewise.
 * gcc.dg/vect/pr37539.c: Likewise.
 * gcc.dg/vect/slp-11a.c: Likewise.
 * gcc.dg/vect/slp-11b.c: Likewise.
 * gcc.dg/vect/slp-11c.c: Likewise.
 * gcc.dg/vect/slp-12a.c: Likewise.
 * gcc.dg/vect/slp-12b.c: Likewise.
 * gcc.dg/vect/slp-18.c: Likewise.
 * gcc.dg/vect/slp-19a.c: Likewise.
 * gcc.dg/vect/slp-19b.c: Likewise.
 * gcc.dg/vect/slp-21.c: Likewise.
 * gcc.dg/vect/slp-23.c: Likewise.
 * gcc.dg/vect/vect-cselim-1.c: Likewise.

 * gcc.dg/vect/fast-math-vect-complex-3.c: Use vect_stridedN
 instead of vect_interleave && vect_extract_even_odd.
 * gcc.dg/vect/no-scevccp-outer-10a.c: Likewise.
 * gcc.dg/vect/no-scevccp-outer-10b.c: Likewise.
 * gcc.dg/vect/no-scevccp-outer-20.c: Likewise.
 * gcc.dg/vect/vect-1.c: Likewise.
 * gcc.dg/vect/vect-10.c: Likewise.
 * gcc.dg/vect/vect-98.c: Likewise.
 * gcc.dg/vect/vect-107.c: Likewise.
 * gcc.dg/vect/vect-strided-a-mult.c: Likewise.
 * gcc.dg/vect/vect-strided-a-u16-i2.c: Likewise.
 * gcc.dg/vect/vect-strided-a-u16-i4.c: Likewise.
 * gcc.dg/vect/vect-strided-a-u16-mult.c: Likewise.
 * gcc.dg/vect/vect-strided-a-u32-mult.c: Likewise.
 * gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Likewise.
 * gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Likewise.
 * gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Likewise.
 * gcc.dg/vect/vect-strided-float.c: Likewise.
 * gcc.dg/vect/vect-strided-mult-char-ls.c: Likewise.
 * gcc.dg/vect/vect-strided-mult.c: Likewise.
 * gcc.dg/vect/vect-strided-same-dr.c: Likewise.
 * gcc.dg/vect/vect-strided-u16-i2.c: Likewise.
 * gcc.dg/vect/vect-strided-u16-i4.c: Likewise.
 * gcc.dg/vect/vect-strided-u32-i4.c: Likewise.
 * gcc.dg/vect/vect-strided-u32-i8.c: Likewise.
 * gcc.dg/vect/vect-strided-u32-mult.c: Likewise.
 * gcc.dg/vect/vect-strided-u8-i2-gap.c: Likewise.
 * gcc.dg/vect/vect-strided-u8-i2.c: Likewise.
 * gcc.dg/vect/vect-strided-u8-i8-gap2.c: Likewise.
 * gcc.dg/vect/vect-strided-u8-i8-gap4.c: Likewise.
 * gcc.dg/vect/vect-strided-u8-i8-gap7.c: Likewise.
 * gcc.dg/vect/vect-strided-u8-i8.c: Likewise.
 * gcc.dg/vect/vect-vfa-03.c: Likewise.

 * gcc.dg/vect/no-scevccp-outer-18.c: Add vect_stridedN to the
 target condition.
 * gcc.dg/vect/pr30843.c: Likewise.
 * gcc.dg/vect/pr33866.c: Likewise.
 * gcc.dg/vect/slp-reduc-6.c: Likewise.
 * gcc.dg/vect/vect-strided-store-a-u8-i2.c: Likewise.
 * gcc.dg/vect/vect-strided-store-u16-i4.c: Likewise.
 * gcc.dg/vect/vect-strided-store-u32-i2.c: Likewise.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/testsuite/
 Backport from mainline:

 2011-05-03 Richard Sandiford <email address hidden>

 * gcc.dg/vect/slp-11.c: Split into...
 * gcc.dg/vect/slp-11a.c, gcc.dg/vect/slp-11b.c,
 gcc.dg/vect/slp-11c.c: ...these tests.
 * gcc.dg/vect/slp-12a.c: Split 4-stride loop into...
 * gcc.dg/vect/slp-12c.c: ...this new test.
 * gcc.dg/vect/slp-19.c: Split into...
 * gcc.dg/vect/slp-19a.c, gcc.dg/vect/slp-19b.c,
 gcc.dg/vect/slp-19c.c: ...these new tests.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/testsuite/
 Backport from mainline:

 2011-05-03 Richard Sandiford <email address hidden>

 * lib/target-supports.exp
 (check_effective_target_vect_extract_even_odd_wide): Delete.
 (check_effective_target_vect_strided_wide): Likewise.
 * gcc.dg/vect/O3-pr39675-2.c: Use the non-wide versions instead.
 * gcc.dg/vect/fast-math-pr35982.c: Likewise.
 * gcc.dg/vect/fast-math-vect-complex-3.c: Likewise.
 * gcc.dg/vect/pr37539.c: Likewise.
 * gcc.dg/vect/slp-11.c: Likewise.
 * gcc.dg/vect/slp-12a.c: Likewise.
 * gcc.dg/vect/slp-12b.c: Likewise.
 * gcc.dg/vect/slp-19.c: Likewise.
 * gcc.dg/vect/slp-23.c: Likewise.
 * gcc.dg/vect/vect-1.c: Likewise.
 * gcc.dg/vect/vect-98.c: Likewise.
 * gcc.dg/vect/vect-107.c: Likewise.
 * gcc.dg/vect/vect-strided-float.c: Likewise.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/testsuite/
 Backport from mainline:

 2011-04-21 Richard Sandiford <email address hidden>

 * gcc.dg/vect/vect.exp: Run the main tests twice, one with -flto
 and once without.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainlie:

 2011-05-03 Richard Sandiford <email address hidden>

 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
 (vec_store_lanes<mode><mode>): Likewise.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainline:

 2011-05-03 Richard Sandiford <email address hidden>

 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
 convert_optab_index values.
 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
 * genopinit.c (optabs): Initialize the new optabs.
 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
 (expand_STORE_LANES): New functions.
 * tree.h (build_array_type_nelts): Declare.
 * tree.c (build_array_type_nelts): New function.
 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
 (vect_model_load_cost): Likewise.
 (vect_store_lanes_supported, vect_load_lanes_supported)
 (vect_record_strided_load_vectors): Declare.
 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
 (vect_transform_strided_load): Split out statement recording into...
 (vect_record_strided_load_vectors): ...this new function.
 * tree-vect-stmts.c (create_vector_array, read_vector_array)
 (write_vector_array, create_array_ref): New functions.
 (vect_model_store_cost): Add store_lanes_p argument.
 (vect_model_load_cost): Add load_lanes_p argument.
 (vectorizable_store): Try to use store-lanes functions for
 interleaved stores.
 (vectorizable_load): Likewise load-lanes and loads.
 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
 to vect_model_store_cost.
 (vect_build_slp_tree): Likewise vect_model_load_cost.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainline:

 2011-04-20 Richard Sandiford <email address hidden>

 * tree-vect-stmts.c (vectorizable_store): Only chain one related
 statement per copy.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/
 * tree-inline.c (estimate_num_insns): Likewise.

 Backport from mainline:

 2011-04-20 Richard Sandiford <email address hidden>

 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
 (GIMPLE_H): Include $(INTERNAL_FN_H).
 (OBJS-common): Add internal-fn.o.
 (internal-fn.o): New rule.
 * internal-fn.def: New file.
 * internal-fn.h: Likewise.
 * internal-fn.c: Likewise.
 * gimple.h: Include internal-fn.h.
 (GF_CALL_INTERNAL): New gf_mask.
 (gimple_statement_call): Put fntype into a union with a new
 internal_fn field.
 (gimple_build_call_internal): Declare.
 (gimple_build_call_internal_vec): Likewise.
 (gimple_call_same_target_p): Likewise.
 (gimple_call_internal_p): New function.
 (gimple_call_internal_fn): Likewise.
 (gimple_call_set_fn): Assert that the function is not internal.
 (gimple_call_set_fndecl): Likewise.
 (gimple_call_set_internal_fn): New function.
 (gimple_call_addr_fndecl): Handle null functions.
 (gimple_call_return_type): Likewise.
 [---- Plus backport adjustments:
 (GF_CALL_INTERNAL_FN_SHIFT): New macro.
 (GF_CALL_INTERNAL_FN): New gf_mask.
 ----]
 * gimple.c (gimple_build_call_internal_1): New function.
 (gimple_build_call_internal): Likewise.
 (gimple_build_call_internal_vec): Likewise.
 (gimple_call_same_target_p): Likewise.
 (gimple_call_flags): Handle calls to internal functions.
 (gimple_call_fnspec): New function.
 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
 (gimple_has_side_effects): Handle null functions.
 (gimple_rhs_has_side_effects): Likewise.
 (gimple_call_copy_skip_args): Handle calls to internal functions.
 * cfgexpand.c (expand_call_stmt): Likewise.
 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
 * gimple-low.c (gimple_check_call_args): Handle calls to internal
 functions.
 * gimple-pretty-print.c (dump_gimple_call): Likewise.
 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
 (do_warn_unused_result): Likewise.
 [---- Plus backport adjustments:
 (verify_stmt): Likewise.
 ----]
 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
 [---- Plus backport adjustments:
 (fold_gimple_call): Likewise.
 ----]
 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
 the target of a call.
 (initialize_hash_element): Update accordingly.
 (hashable_expr_equal_p): Use gimple_call_same_target_p.
 (iterative_hash_hashable_expr): Handle calls to internal functions.
 (print_expr_hash_elt): Likewise.
 * tree-ssa-pre.c (can_value_number_call): Likewise.
 (eliminate): Handle null functions.
 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
 * tree-ssa-structalias.c (find_func_aliases): Likewise.
 * value-prof.c (gimple_ic_transform): Likewise.
 (gimple_indirect_call_to_profile): Likewise.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainline:

 2011-04-14 Richard Sandiford <email address hidden>

 * tree-vectorizer.h (vect_strided_store_supported): Add a
 HOST_WIDE_INT argument.
 (vect_strided_load_supported): Likewise.
 (vect_permute_store_chain): Return void.
 (vect_transform_strided_load): Likewise.
 (vect_permute_load_chain): Delete.
 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
 count argument. Check that the count is a power of two.
 (vect_strided_load_supported): Likewise.
 (vect_permute_store_chain): Return void. Update after above changes.
 Assert that the access is supported.
 (vect_permute_load_chain): Likewise.
 (vect_transform_strided_load): Return void.
 * tree-vect-stmts.c (vectorizable_store): Update calls after
 above interface changes.
 (vectorizable_load): Likewise.
 (vect_analyze_stmt): Don't check for strided powers of two here.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainline:

 2011-04-14 Richard Sandiford <email address hidden>

 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
 type parameter.
 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
 parameter. Generalise code to handle arrays as well as vectors.
 (vect_setup_realignment): Update accordingly.
 * tree-vect-stmts.c (vectorizable_store): Likewise.
 (vectorizable_load): Likewise.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainline:

 2011-04-14 Richard Sandiford <email address hidden>

 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
 within the per-copy loop.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainline:

 2011-04-14 Richard Sandiford <email address hidden>

 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
 in the dump file.

2001-06-02 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainline:

 2011-03-25 Richard Sandiford <email address hidden>

 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
 case to VFPv1.

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

 Merge from FSF GCC 4.6 (svn branches/gcc-4_6-branch 174261).

2011-06-02 Chung-Lin Tang <email address hidden>

 Backport from mainline:

 2011-03-21 Chung-Lin Tang <email address hidden>

 gcc/
 * simplify-rtx.c (simplify_binary_operation_1): Handle
 (xor (and A B) C) case when B and C are both constants.

 gcc/testsuite/
 * gcc.target/arm/xor-and.c: New.

 2011-03-18 Chung-Lin Tang <email address hidden>

 gcc/
 * combine.c (try_combine): Do simplification only call of
 subst() on i2 even when i1 is present. Update comments.

 gcc/testsuite/
 * gcc.target/arm/unsigned-extend-1.c: New.

0 blueprints and 0 bugs targeted

There are no feature specifications or bug tasks targeted to this milestone. The project's maintainer, driver, or bug supervisor can target specifications and bug tasks to this milestone to track the things that are expected to be completed for the release.

This milestone contains Public information
Everyone can see this information.