Linaro GCC 4.5-2011.04-0

Milestone information

Project:
Linaro GCC
Series:
4.5
Version:
4.5-2011.04-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:
4 Andrew Stubbs, 1 Ramana Radhakrishnan, 1 Richard Sandiford
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
9 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.5-2011.04-0.tar.bz2 (md5, sig) Linaro GCC Source 652
last downloaded 14 weeks ago
Total downloads: 652

Release notes 

Linaro GCC 4.5 2011.04 is the ninth release in the 4.5 series. Based off the latest
GCC 4.5.2+svn171921, it adds new optimisations, support for Android,
and fixes for many of the issues found in the last month.

Interesting changes in 4.5 include:
 * Updates to 4.5.2+r172013
 * Disables the shrink wrap optimisation by default
 * Adds support for swing-modulo scheduling (SMS) on ARM
 * Adds support for Android and the Bionic C library
 * Optimises -fvar-tracking, greatly reducing memory used when
   compiling large files (seen in QEMU)

Fixes:
 * 'volatile' being ignored on volatile struct members
 * A potential register clobber in arm_negdi2
 * An error in libgcc that prevented it being built with -Os
 * Multiple shrink wrap bugs (LP: #731665, 721023, 736081, 758082,
   730860, 736439, 721023)
 * LP: #730440 incorrect immediate for movt (seen in Firebird)
 * LP: #728315 extension elimination pass mishandles subregs of
   promoted variables (seen on MIPS)
 * LP: #675347 volatile int causes inline assembly build failure (seen
   in Qt)

SMS is an optimisation that works on innermost loops and reorders the
instructions by overlapping different locations. An example is that
the values for the next loop may be loaded during the current loop,
making the values already ready when the next loop starts.

SMS is disabled by default. To try it, add the options '-fmodulo-sched
-fmodulo-sched-allow-regmoves'.

Changelog 

View the full changelog

2011-04-18 Michael Hope <email address hidden>

 gcc/
 * opts.c (decode_options): Disable -fshrink-wrap by default.
 * doc/invoke.texi (Optimize Options): Document.

2011-02-16 Nathan Sidwell <email address hidden>

 Issue #10439
 gcc/
 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
 (cxa_type_match): Correct declaration.
 (__gnu_unwind_pr_common): Reconstruct
 additional indirection when __cxa_type_match returns
 succeeded_with_ptr_to_base.

 libstdc++/
 * libsupc++/eh_arm.c (__cxa_type_match): Construct address of
 thrown object here. Return succeded_with_ptr_to_base for all
 pointer cases.

2011-02-14 Kwok Cheung Yeung <email address hidden>

 Issue #10417

 Backport from mainline

 gcc/
 2010-07-31 Richard Guenther <email address hidden>

 PR tree-optimization/45052
 * ipa-pure-const.c (check_stmt): Check volatileness.

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

 gcc/
 Backport from mainline:

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

 * config/arm/arm.md (*arm_negdi2): Fix early-clobber constraints.

2011-03-24 Revital Eres <email address hidden>

 gcc/
 * loop-doloop.c (doloop_condition_get): Support new form of
 doloop pattern and use prev_nondebug_insn instead of PREV_INSN.
 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
 (doloop_end): New.
 * config/arm/arm.md (*addsi3_compare0): Remove "*".
 * ddg.c (check_closing_branch_deps, get_node_of_insn_uid):
 New functions.
 (create_ddg): Pass sbitmap containing do-loop related
 instructions instead of closing_branch_deps parameter and call
 check_closing_branch_deps function.
 * ddg.h (create_ddg): Adjust the function declaration.
 * modulo-sched.c (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT
 and redefine.
 (doloop_register_get): Handle NONDEBUG_INSN_P.
 (stage_count): New field in struct partial_schedule.
 (mark_doloop_insns, calculate_stage_count): New functions.
 (normalize_sched_times): Rename to reset_sched_times and handle
 incrementing the sched time of the nodes by a constant value
 passed as parameter.
 (duplicate_insns_of_cycles): Skip closing branch.
 (sms_schedule_by_order): Schedule closing branch when
 closing_branch_deps is true.
 (ps_insn_find_column): Handle closing branch.
 (sms_schedule): Call reset_sched_times and handle case where
 do-loop pattern is not decoupled from the other loop instructions.
 Support new form of doloop pattern.
 (ps_insert_empty_row): Update calls to normalize_sched_times
 and rotate_partial_schedule functions.

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

 Backport from mainline:

 Maxim Kuvyrkov <email address hidden>

 * config.sub: Recognize *-linux-android*.

 2010-05-27 Maxim Kuvyrkov <email address hidden>

 Add support for Bionic C library
 gcc/
 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
 macro.
 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.

 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
 to support multiple C libraries. Handle Bionic.
 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
 (BIONIC_DYNAMIC_LINKER64): Define.
 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
 Update.
 (TARGET_HAS_SINCOS): Enable for Bionic.

 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
 the last option specified on command line take effect.
 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
 (mbionic): New.
 (mglibc, muclibc): Update.

 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
 DEFAULT_LIBC.

 * doc/invoke.texi (-mglibc, -muclibc): Update.
 (-mbionic): Document.

 gcc/testsuite/
 * gcc.dg/glibc-uclibc-1.c, gcc.dg/glibc-uclibc-2.c: Remove, no longer
 necessary.

 2010-05-27 Maxim Kuvyrkov <email address hidden>

 Support compilation for Android platform. Reimplement -mandroid.
 gcc/
 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
 (*android*): Set ANDROID_DEFAULT.
 (arm*-*-linux*): Include linux-android.h.
 (arm*-*-eabi*): Don't include previous -mandroid implementation.
 * config/arm/eabi.h: Remove, move Android-specific parts ...
 * config/linux-android.h: ... here. New file.
 * config/arm/eabi.opt: Rename to ...
 * config/linux-android.opt: ... this.
 (mandroid): Allow -mno-android option. Initialize based on
 ANDROID_DEFAULT.
 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
 Move logic to corresponding LINUX_TARGET_* macros.
 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
 Android definitions.
 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
 Document.

 2010-06-01 Maxim Kuvyrkov <email address hidden>

 gcc/
 * config/arm/t-linux-androideabi: New.
 * config.gcc (arm*-*-linux-androideabi): Include multilib configuration.

 2010-05-27 Maxim Kuvyrkov <email address hidden>

 gcc/
 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
 Bionic C library.
 (__gthread_active_p): Check for pthread_create if compiling against
 Bionic C library.

 2010-06-01 Maxim Kuvyrkov <email address hidden>

 libstdc++-v3/
 * acinclude.m4: Support Bionic C library.
 Explicitly specify -fexceptions for exception check.
 * configure.host: Support Bionic C library.
 * configure: Regenerate.
 * config/os/bionic/ctype_base.h, config/os/bionic/ctype_inline.h,
 * config/os/bionic/ctype_noincline.h, config/os/bionic/os_defines.h:
 New files, based on config/os/newlib/*.

2011-03-23 Andrew Stubbs <email address hidden>

 Backport from FSF.

 2011-03-23 Julian Brown <email address hidden>

 gcc/
 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
 accesses which are not naturally aligned.

2011-04-10 Michael Hope <email address hidden>

 gcc/
 Backport from mainline:

 2010-12-20 Yvan Roux <email address hidden>

 * config/arm/lib1funcs.asm (ARM_DIV_BODY case __OPTIMIZE_SIZE__): Fix
 condition on IT instruction for early termination.

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

 Backport from mainline:
 gcc/
 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
 (cached_dw_loc_list_def): New structure.
 (cached_dw_loc_list): New typedef.
 (cached_dw_loc_list_table): New variable.
 (cached_dw_loc_list_table_hash): New function.
 (cached_dw_loc_list_table_eq): Likewise.
 (add_location_or_const_value_attribute): Take a bool cache_p.
 Cache the list when the parameter is true.
 (gen_formal_parameter_die): Update caller.
 (gen_variable_die): Likewise.
 (dwarf2out_finish): Likewise.
 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
 while generating debug info for the decl.
 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
 (dwarf2out_init): Initialize cached_dw_loc_list_table.
 (resolve_addr): Cache the result of resolving a chain of
 location lists.

 From: 2010-10-12 Jakub Jelinek <email address hidden>
 * dwarf2out.c (dw_loc_list_node): Add emitted field.
 (output_loc_list): Return immediately if emitted is set, set it.

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

 Merge from FSF 4.5 branch r172013 (pre 4.5.3).

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

 LP:730440
 PR target/47668
 gcc/
 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'.
 gcc/testsuite/
 * gcc.target/arm/pr47688.c: New.

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

 gcc/
 * ee.c (reg_use_p): Handle subregs of promoted vars.

2011-03-11 Andrew Stubbs <email address hidden>
     Michael Hope <email address hidden>
     Matthias Klose <email address hidden>

 gcc/
 * function. (thread_prologue_and_epilogue_insns): Initialize
 prologue_seq.
 * opts.c (decode_options): Move flag_shrink_wrap to -O1.

2011-03-09 Bernd Schmidt <email address hidden>

 Issue #10649
 gcc/
 * dwarf2out.c (dwarf2out_begin_epilogue): Accept simplejumps
 as well as returnjumps.
 * cfganal.c (set_edge_can_fallthru_flag): Revert previous change
 that tried to keep epilogue blocks adjacent.

2011-02-03 Bernd Schmidt <email address hidden>

 gcc/
 * function.c (prepare_shrink_wrap): New function.
 (thread_prologue_and_epilogue_insns): Call it.

0 blueprints and 9 bugs targeted

Bug report Importance Assignee Status
731665 #731665 internal compiler error compiling kernel on powerpc 2 Critical Andrew Stubbs  10 Fix Released
736081 #736081 [armel] telepathy-glib segfaults in selftests during build 3 High   10 Fix Released
758082 #758082 [armel] segfaults in make check pass when built with optimization 3 High   10 Fix Released
675347 #675347 volatile int causes inline assembly build failure 4 Medium Andrew Stubbs  10 Fix Released
730440 #730440 armel: incorrect immediate for movt 4 Medium Ramana Radhakrishnan  10 Fix Released
730860 #730860 [regression] ICE in dwarf2out_frame_debug_adjust_cfa, at dwarf2out.c:1861 4 Medium Andrew Stubbs  10 Fix Released
736439 #736439 internal compiler error: in dwarf2out_frame_debug_expr, at dwarf2out.c:2221 4 Medium   10 Fix Released
721023 #721023 GCC g++ ICE on i586 5 Low Andrew Stubbs  10 Fix Released
728315 #728315 EE pass mishandles subregs of promoted variables 1 Undecided Richard Sandiford  10 Fix Released
This milestone contains Public information
Everyone can see this information.