Linaro GCC 4.6-2012.03

Milestone information

Project:
Linaro GCC
Series:
4.6
Version:
4.6-2012.03
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:
2 Andrew Stubbs, 4 Ramana Radhakrishnan, 3 Ulrich Weigand
Blueprints:
3 Implemented
Bugs:
6 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-2012.03.tar.bz2 (md5, sig) Source 1,365
last downloaded 3 days ago
Total downloads: 1,365

Release notes 

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

Linaro GCC 4.6 2012.03 is the thirteenth release in the 4.6 series. Based
off the latest GCC 4.6.3 release, it contains a new scheduler pressure pass,
implements new instructions, and contains a number of bug fixes.

Interesting changes include:
 * Updates to 4.6.3.
 * Better performance by accounting for register pressure when scheduling instructions.
 * Support for the ARMv6 USAT/SSAT saturation instructions.
 * Support for the VFP VCVT fixed to floating point conversion instruction.

Fixes:
 * LP: #922474 Bug in __sync_lock_release with 64 bit primitives
 * LP: #923397 Alignment attribute has no effect under certain conditions
 * LP: #926855 [ARMhf] gcc produces assembler it can't compile
 * LP: #936863 ICE in constprop.2 (ARM NEON related?)
 * LP: #942307 'asm' operand requires impossible reload
 * LP: #952565 Not compliant with the ABI for multi-register NEON intrinsics

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

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-2012.03

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

2012-03-08 Ramana Radhakrishnan <email address hidden>

 Backport from mainline.
        2012-02-28 Richard Earnshaw <email address hidden>

 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
 mode if there is no type information available.

        2012-02-28 Ramana Radhakrishnan <email address hidden>

 * gcc.target/arm/aapcs/vfp1.c (dg_do run): Run on all eabi variants.
 * gcc.target/arm/aapcs/vfp2.c: Likewise.
 * gcc.target/arm/aapcs/vfp3.c: Likewise.
 * gcc.target/arm/aapcs/vfp4.c: Likewise.
 * gcc.target/arm/aapcs/vfp5.c: Likewise.
 * gcc.target/arm/aapcs/vfp6.c: Likewise.
 * gcc.target/arm/aapcs/vfp7.c: Likewise.
 * gcc.target/arm/aapcs/vfp8.c: Likewise.
 * gcc.target/arm/aapcs/vfp9.c: Likewise.
 * gcc.target/arm/aapcs/vfp10.c: Likewise.
 * gcc.target/arm/aapcs/vfp11.c: Likewise.
 * gcc.target/arm/aapcs/vfp12.c: Likewise.
 * gcc.target/arm/aapcs/vfp13.c: Likewise.
 * gcc.target/arm/aapcs/vfp14.c: Likewise.
 * gcc.target/arm/aapcs/vfp15.c: Likewise.
 * gcc.target/arm/aapcs/vfp16.c: Likewise.
 * gcc.target/arm/aapcs/vfp17.c: Likewise.
 * gcc.target/arm/neon-constants.h: New file.
 * gcc.target/arm/aapcs/neon-constants.h: New file.
 * gcc.target/arm/aapcs/neon-vect1.c: New test.
 * gcc.target/arm/aapcs/neon-vect2.c: New test.
 * gcc.target/arm/aapcs/neon-vect3.c: New test.
 * gcc.target/arm/aapcs/neon-vect4.c: New test.
 * gcc.target/arm/aapcs/neon-vect5.c: New test.
 * gcc.target/arm/aapcs/neon-vect6.c: New test.
 * gcc.target/arm/aapcs/neon-vect7.c: New test.
 * gcc.target/arm/aapcs/neon-vect8.c: New test.

2012-03-08 Michael Hope <email address hidden>

 Backport proposed patch:

 gcc/
 2012-01-31 Richard Henderson <email address hidden>

 * longlong.h [arm] (umul_ppmm): Use umull. Enable for thumb2.
 [arm] (count_trailing_zeros): Use __builtin_ctz.

2012-03-06 Ulrich Weigand <email address hidden>

 Backport from mainline:

 gcc/
 * config/arm/arm.c (arm_sat_operator_match): New function.
 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
 * config/arm/arm.md ("insn" attribute): Add "sat" value.
 ("SAT", "SATrev"): New code iterators.
 ("SATlo", "SAThi"): New code iterator attributes.
 ("*satsi_<SAT:code>"): New pattern.
 ("*satsi_<SAT:code>_shift"): Likewise.
 * config/arm/predicates.md (sat_shift_operator): New.

 gcc/testsuite/
 * gcc.target/arm/sat-1.c: New test.

2012-03-06 Ramana Radhakrishnan <email address hidden>

 LP:942307
     gcc/
     PR target/50305
     * config/arm/arm.c (arm_legitimize_reload_address): Recognize
     output of a previous pass through legitimize_reload_address.
     Do not attempt to optimize addresses if the base register is
     equivalent to a constant.
     gcc/testsuite/
     PR target/50305
     * gcc.target/arm/pr50305.c: New test.

2012-03-02 Andrew Stubbs <email address hidden>

 Merge from FSF GCC 4.6.3 Release (svn branches/gcc-4_6-branch 108680).

2012-02-24 Ramana Radhakrishnan <email address hidden>

 Backport from mainline.
 gcc/
        2012-02-21 Matthew Gretton-Dann <email address hidden>

        Revert r183011
        * config/arm/arm-cores.def (cortex-a15): Use generic Cortex tuning
        parameters.
        * config/arm/arm.c (arm_cortex_a15_tune): Remove.

2012-02-24 Ramana Radhakrishnan <email address hidden>

 LP:#922474
 gcc/
 * config/arm/sync.md (sync_lock_releasedi): Define.
 (arm_sync_lock_releasedi): Likewise.
 gcc/testsuite
 Backport from mainline.
        2012-01-30 Greta Yorsh <email address hidden>
 * gcc.target/arm/di-longlong64-sync-withldrexd.c: Accept
 new code generated for __sync_lock_release.

2012-02-24 Ramana Radhakrishnan <email address hidden>

        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.

 LP:#900426

 2011-12-06 Ramana Radhakrishnan <email address hidden>
        * config/arm/vfp.md (*combine_vcvt_f64_<FCVTI32typename>): Fix
       formatting character for vmov.f64 case.

2012-02-24 Ramana Radhakrishnan <email address hidden>

 gcc/
 * config/arm/arm.c (arm_print_operand): Remove wrongly merged code.
  (vfp3_const_double_for_fract_bits): Likewise.

2012-02-20 Andrew Stubbs <email address hidden>

 LP:#936863
 gcc/
 * config/arm/arm.c (arm_print_operand): Avoid null-pointer
 dereference from MEM_SIZE.

2012-02-08 Ulrich Weigand <email address hidden>

 gcc/
 * config/arm/arm.c (arm_option_optimization_table): Enable
 -fsched-pressure using -fsched-pressure-algorithm=model by
 default when optimizing.

2012-02-08 Richard Sandiford <email address hidden>

 gcc/
 * sched-deps.c (fixup_sched_groups): Rename to...
 (chain_to_prev_insn): ...this.
 (chain_to_prev_insn_p): New function.
 (deps_analyze_insn): Use it instead of SCHED_GROUP_P.

2012-02-08 Richard Sandiford <email address hidden>

 gcc/
 * sched-int.h (_haifa_insn_data): Move priority_status.
 Add model_index.
 (INSN_MODEL_INDEX): New macro.
 * haifa-sched.c (insn_delay): New function.
 (sched_regno_pressure_class): Update commentary.
 (mark_regno_birth_or_death): Pass the liveness bitmap and
 pressure array as arguments, instead of using curr_reg_live and
 curr_reg_pressure. Only update the pressure if the bit in the
 liveness set has changed.
 (initiate_reg_pressure_info): Always trust the live-in set for
 SCHED_PRESSURE_MODEL.
 (initiate_bb_reg_pressure_info): Update call to
 mark_regno_birth_or_death.
 (dep_list_size): Take the list as argument.
 (calculate_reg_deaths): New function, extracted from...
 (setup_insn_reg_pressure_info): ...here.
 (MODEL_BAR): New macro.
 (model_pressure_data, model_insn_info, model_pressure_limit)
 (model_pressure_group): New structures.
 (model_schedule, model_worklist, model_insns, model_num_insns)
 (model_curr_point, model_before_pressure, model_next_priority):
 New variables.
 (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
 (MODEL_INSN_INFO, MODEL_INSN): New macros.
 (model_index, model_update_limit_points_in_group): New functions.
 (model_update_limit_points, model_last_use_except): Likewise.
 (model_start_update_pressure, model_update_pressure): Likewise.
 (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
 (model_excess_cost, model_dump_pressure_points): Likewise.
 (model_set_excess_costs): Likewise.
 (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
 SCHED_PRIORITY_MODEL. Use insn_delay. Use the order in the model
 schedule as an alternative tie-breaker. Update the call to
 dep_list_size.
 (ready_sort): Call model_set_excess_costs.
 (update_register_pressure): Update call to mark_regno_birth_or_death.
 Rely on that function to check liveness rather than doing it here.
 (model_classify_pressure, model_order_p, model_add_to_worklist_at)
 (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
 (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
 (model_record_pressure, model_record_pressures): New functions.
 (model_record_final_pressures, model_add_successors_to_worklist)
 (model_promote_predecessors, model_choose_insn): Likewise.
 (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
 (model_start_schedule, model_finalize_pressure_group): Likewise.
 (model_end_schedule): Likewise.
 (schedule_insn): Say when we're scheduling the next instruction
 in the model schedule.
 (schedule_insn): Handle SCHED_PRESSURE_MODEL.
 (queue_to_ready): Do not add instructions that are
 MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
 Always allow the next instruction in the model schedule to be added.
 (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
 and delay for SCHED_PRESSURE_MODEL too.
 (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
 SCHED_PRIORITY_MODEL, but also take the DFA into account.
 (schedule_block): Call model_start_schedule and model_end_schedule.
 Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
 (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
 to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
 region_ref_regs.
 (sched_finish): Update accordingly.
 (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
 to SCHED_PRESSURE_MODEL.
 (add_jump_dependencies): Update call to dep_list_size.
 (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
 (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
 to SCHED_PRESSURE_MODEL.
 * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
 allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
 (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
 handling to SCHED_PRESSURE_MODEL.

2012-02-08 Richard Sandiford <email address hidden>

 gcc/
 * common.opt (fsched-pressure-algorithm=): New option.
 * flag-types.h (sched_pressure_algorithm): New enum.
 * sched-int.h (sched_pressure_p): Replace with...
 (sched_pressure): ...this new variable.
 * haifa-sched.c (sched_pressure_p): Replace with...
 (sched_pressure): ...this new variable.
 (sched_regno_pressure_class, rank_for_schedule, ready_sort)
 (update_reg_and_insn_max_reg_pressure, schedule_insn)
 (debug_ready_list, schedule_block, sched_init, sched_finish)
 (fix_tick_ready, haifa_init_insn): Update accordingly.
 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
 * sched-rgn.c (schedule_region): Likewise.

2012-02-08 Richard Sandiford <email address hidden>

 gcc/
 Backport from mainline:

 2011-04-01 Bernd Schmidt <email address hidden>

 * haifa-sched.c (prune_ready_list): New function, broken out of
 schedule_block.
 (schedule_block): Use it.

3 blueprints and 6 bugs targeted

Blueprint Priority Assignee Delivery
Make -fsched-pressure a more consistent win Make -fsched-pressure a more consistent win 4 High Ulrich Weigand  11 Implemented
Support VCVT for fixed point/float Support VCVT for fixed point/float 3 Medium Ramana Radhakrishnan  11 Implemented
Improve sched-pressure for ARM Improve sched-pressure for ARM 3 Medium Ulrich Weigand  11 Implemented
Bug report Importance Assignee Status
922474 #922474 Bug in __sync_lock_release with 64 bit primitives 3 High Ramana Radhakrishnan  10 Fix Released
952565 #952565 ABI compliance with multi-register NEON intrinsics 3 High Ramana Radhakrishnan  10 Fix Released
923397 #923397 Alignment attribute has no effect under certain conditions 4 Medium Ulrich Weigand  10 Fix Released
936863 #936863 ICE in constprop.2 (ARM NEON related?) 4 Medium Andrew Stubbs  10 Fix Released
942307 #942307 'asm' operand requires impossible reload 4 Medium Ramana Radhakrishnan  10 Fix Released
926855 #926855 [ARMhf] gcc produces assembler it can't compile 5 Low Andrew Stubbs  10 Fix Released
This milestone contains Public information
Everyone can see this information.