Jakub Jelinek [Mon, 20 Feb 2012 12:19:47 +0000 (13:19 +0100)]
re PR tree-optimization/52286 (wrong code bug)
PR tree-optimization/52286
* fold-const.c (fold_binary_loc): For (X & C1) | C2
optimization use double_int_to_tree instead of build_int_cst_wide,
rewrite to use double_int vars.
Rainer Orth [Mon, 20 Feb 2012 11:47:25 +0000 (11:47 +0000)]
Enable initfini array support on Solaris (PR target/50166)
* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
Define _start.
Remove -e 0 from $gcc_cv_ld invocation.
Only use __GLIBC_PREREQ if defined.
Enable on Solaris since Solaris 8 patch.
(gcc_SUN_LD_VERSION): New macro.
* configure.ac (ld_ver) <*-*-solaris2*>: Refer to
gcc_SUN_LD_VERSION for version number format.
* configure: Regenerate.
* varasm.c (get_elf_initfini_array_priority_section): Set
SECTION_NOTYPE for non-default priority.
Use get_section instead of get_unnamed_section to emit
.init_array/.fini_array with default priority.
gcc/
* config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
(mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
(mips_start_unique_function, mips_output_mips16_rdhwr)
(mips_code_end): New functions.
(TARGET_ASM_CODE_END): Define.
Arnaud Charlet [Fri, 17 Feb 2012 14:26:20 +0000 (15:26 +0100)]
[multiple changes]
2012-02-17 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Legal_Copy): If layout is not
determined in the front-end, do not emit error message when
by-reference actual is potentially unaligned.
* gcc-interface/decl.c (gnat_to_gnu_field): Better error message for
illegal representation clause on tagged or aliased component, or on
by-reference type with forced alignment.
2012-02-17 Nicolas Roche <roche@adacore.com>
* gcc-interface/Makefile.in: Ensure FORCE_DEBUG_ADAFLAGS variables is
propagated by gnatlib-sjlj and gnatlib-zcx targets.
* gcc-interface/Make-lang.in: Update dependencies.
2012-02-17 Thomas Quinot <quinot@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation): For an
instantiation in an RCI library unit, omit the instance body
if the RCI library unit is the instance itself (E.2.3(18)),
but include the body if the instantiation is within the RCI
declaration (12.3(12)).
Arnaud Charlet [Fri, 17 Feb 2012 14:15:46 +0000 (15:15 +0100)]
[multiple changes]
2012-02-17 Yannick Moy <moy@adacore.com>
* gnat_rm.texi: Minor shuffling.
2012-02-17 Ed Schonberg <schonberg@adacore.com>
* aspects.adb: Expression functions can carry pre/postconditions.
* par-ch6.adb (P_Subprogram): look for optional pre/postconditions
in an expression function.
* sem_prag (Check_Precondition_Postcondition): legal on expression
functions.
2012-02-17 Vincent Pucci <pucci@adacore.com>
* a-cdlili.adb, a-cidlli.adb, a-cihama.adb, a-cimutr.adb,
* a-ciorma.adb, a-cohama.adb, a-coinve.adb, a-comutr.adb,
* a-convec.adb, a-coorma.adb (Adjust): New routine.
(Constant_Reference): Increment Busy and Lock counters.
(Reference): Increase Busy and Lock counters.
(Finalize): New routine.
* a-cihase.adb, a-ciorse.adb, a-cohase.adb, a-coorse.adb:
(Adjust): New routine. (Constant_Reference): Increment Busy
and Lock counters.
(Finalize): New routine.
* a-cdlili.ads, a-cidlli.ads, a-cihama.ads, a-cihase.ads,
* a-cimutr.ads, a-ciorma.ads, a-ciorse.ads, a-cohama.ads,
* a-cohase.ads, a-coinve.ads, a-comutr.ads, a-convec.ads,
* a-coorma.ads, a-coorse: Controlled component added to the
reference types.
2012-02-17 Robert Dewar <dewar@adacore.com>
* restrict.adb (Check_Restriction): Add special handling for
No_Obsolescent_Features.
* exp_util.adb (Find_Finalize_Address): When dealing with an
internally built full view for a type with unknown discriminants,
use the original record type.
Arnaud Charlet [Fri, 17 Feb 2012 13:59:28 +0000 (14:59 +0100)]
[multiple changes]
2012-02-17 Yannick Moy <moy@adacore.com>
* gnat_ugn.texi: Fix typos.
2012-02-17 Pascal Obry <obry@adacore.com>
* prj-nmsc.adb: prj-nmsc.adb (Check_Aggregated): Check that an
aggregate is not Externally_Built.
2012-02-17 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Record_Aggregate): If a composite
component has a box association, copy the default value using
the current scope as the scope of internal types, to prevent
scoping anomalies in gigi.
* sem_ch6.adb (Is_Non_Overriding_Operation): Add warning if the
old operation is abstract, the relevant type is not abstract,
and the new subprogram fails to override.
Jakub Jelinek [Thu, 16 Feb 2012 22:20:27 +0000 (23:20 +0100)]
re PR middle-end/52285 (libgcrypt _gcry_burn_stack slowdown)
PR tree-optimization/52285
* tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
when deciding if a call is a tail call or tail recursion.
Jakub Jelinek [Thu, 16 Feb 2012 10:20:26 +0000 (11:20 +0100)]
re PR tree-optimization/52255 (ICE: verify_ssa failed, block does not dominate use)
PR tree-optimization/52255
* tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
loop->header has virtual PHI, but exit_e->dest doesn't, add
virtual PHI to exit_e->dest and adjust all uses after the loop.
Jakub Jelinek [Thu, 16 Feb 2012 07:25:58 +0000 (08:25 +0100)]
re PR middle-end/51929 (ICE: verify_cgraph_node failed with -O2 -fno-guess-branch-probability -fipa-cp-clone)
PR middle-end/51929
* cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
a same_body_alias, also test whether e->callee isn't a former
or current clone of the decl this is a same body alias of.
Michael Meissner [Wed, 15 Feb 2012 21:42:00 +0000 (21:42 +0000)]
re PR target/52199 (V2DI vec_duplicate ICE on valid code)
[gcc]
2012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/52199
* config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
force_reg instead of copy_to_reg for better optimization. Force
non-register or memory operands into a register.
[gcc/testsuite]
2012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/52199
* gcc.target/powerpc/pr52199.c: New file.
* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
cpp_define_formatted to built-in define __AVR_ARCH__.
(__AVR_XMEGA__): New built-in define.
(__AVR_HAVE_RAMPD__): New built-in define.
(__AVR_HAVE_RAMPX__): New built-in define.
(__AVR_HAVE_RAMPY__): New built-in define.
(__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
* config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
(avr_option_override): Initialize them.
(sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
(avr_init_expanders): Initialize them. No more block several calls.
(emit_push_sfr): New static function.
(avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
Handle AVR_XMEGA.
(expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
(avr_print_operand): Print addreeses as symbols for
RAMPX, RAMPY, RAMPD, CCP.
(output_movhi): Handle AVR_XMEGA when writing to SP.
(avr_out_movhi_mr_r_xmega): New static function.
(out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
(avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__,
__RAMPD__, __CCP__ as needed.
Co-Authored-By: Anatoly Sokolov <aesok@post.ru> Co-Authored-By: Eric Weddington <eric.weddington@atmel.com>
From-SVN: r184269
PR tree-optimization/50561
* graphite-flattening.c (lst_project_loop): Do not
remove old scattering dimensions after flattening.
(lst_do_flatten): Likewise.
Eric Botcazou [Wed, 15 Feb 2012 08:50:11 +0000 (08:50 +0000)]
trans.c (Identifier_to_gnu): Move block retrieving the type of the result to the end and execute it for a...
* gcc-interface/trans.c (Identifier_to_gnu): Move block retrieving the
type of the result to the end and execute it for a deferred constant of
a discriminated type whose full view can be elaborated statically.
Eric Botcazou [Wed, 15 Feb 2012 08:39:04 +0000 (08:39 +0000)]
trans.c (gnat_to_gnu): If the type is tagged, mark it as used for debugging purposes.
* gcc-interface/trans.c (gnat_to_gnu) <N_Qualified_Expression>: If the
type is tagged, mark it as used for debugging purposes.
<N_Allocator>: Likewise for a qualified expression.
Eric Botcazou [Wed, 15 Feb 2012 08:13:09 +0000 (08:13 +0000)]
re PR target/51921 (EH unwinding support is broken)
PR target/51921
PR target/52205
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Add support for
Solaris 11 and slightly reformat.
(sparc_is_sighandler): Likewise.
Bernd Schmidt [Wed, 15 Feb 2012 00:38:04 +0000 (00:38 +0000)]
c6x.md (reserve_cycles): New attribute.
* config/c6x/c6x.md (reserve_cycles): New attribute.
* config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
don't reserve functional units after the branch occurs.
Eric Botcazou [Wed, 15 Feb 2012 00:10:00 +0000 (00:10 +0000)]
re PR lto/52178 (Ada bootstrap failure in LTO mode)
PR lto/52178
* gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
(iterative_hash_canonical_type): Likewise.
* tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
the dead edges.
target-supports.exp (check_effective_target_fgnu_tm): New proc.
* lib/target-supports.exp (check_effective_target_fgnu_tm): New
proc.
* gfortran.dg/trans-mem-skel.f90: Gate test on effective_target
fgnu_tm.
* gcc.dg/lto/trans-mem-1_0.c, gcc.dg/lto/trans-mem-2_0.c,
gcc.dg/lto/trans-mem-3_0.c, gcc.dg/lto/trans-mem-4_0.c: Ditto.
* gcc.dg/tm/tm.exp: Gate the whole of gcc.dg/tm on
effective_target fgnu_tm.
* g++.dg/tm/tm.exp: Ditto for g++.dg/tm.
Jonathan Wakely [Tue, 14 Feb 2012 20:34:41 +0000 (20:34 +0000)]
install.texi (Prerequisites): Suggest building GMP...
* doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
MPC as part of GCC before describing configuring with --with-gmp etc.
(Installing GCC: Configuration): --with-gmp etc. aren't needed if
sources are present.