Dave Korn [Wed, 26 Jan 2011 04:19:58 +0000 (04:19 +0000)]
re PR target/40125 (libgcc_s DLL installed in wrong directory in cross toolchain)
gcc/ChangeLog:
PR target/40125
* config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
t-dlldir{,-x} fragment for build and add it to tmake_file.
(i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
* Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
* config/i386/t-dlldir: New file.
(SHLIB_DLLDIR): Define.
* config/i386/t-dlldir-x: New file.
(SHLIB_DLLDIR): Define.
* config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
(SHLIB_INSTALL): Use it.
Dave Korn [Wed, 26 Jan 2011 03:46:07 +0000 (03:46 +0000)]
patch_tester.sh (nopristinecache): New shell var, set according to presence or absence of new -nopristinecache option.
* patch_tester.sh (nopristinecache): New shell var, set according
to presence or absence of new -nopristinecache option.
(usage): Document new option.
(bootntest_pristine): Implement it.
PR target/47246
* config/arm/arm.c (thumb2_legitimate_index_p): Change the
lower bound of the allowed Thumb-2 coprocessor load/store
index range to -256. Add explaining comment.
Ian Lance Taylor [Wed, 26 Jan 2011 01:26:48 +0000 (01:26 +0000)]
re PR tree-optimization/26854 (Inordinate compile times on large routines)
PR tree-optimization/26854
* c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
(decl_jump_unsafe): Move higher in file, with no other change.
(bind): Set has_jump_unsafe_decl if appropriate.
(update_label_decls): Test has_jump_unsafe_decl to avoid loop.
(check_earlier_gotos): Likewise.
(c_check_switch_jump_warnings): Likewise.
Jakub Jelinek [Tue, 25 Jan 2011 19:47:36 +0000 (20:47 +0100)]
cloog.m4 (CLOOG_REQUESTED): Use $2 if --without-cloog.
* config/cloog.m4 (CLOOG_REQUESTED): Use $2 if --without-cloog.
* configure.ac: If with_ppl is no, move setting with_cloog=no
after CLOOG_REQUESTED check.
* configure: Regenerated.
Ian Lance Taylor [Tue, 25 Jan 2011 15:29:02 +0000 (15:29 +0000)]
lto-plugin.c (gold_version): New static variable.
* lto-plugin.c (gold_version): New static variable.
(all_symbols_read_handler): Don't check pass_through_items if
using gold 1.11 or later.
(onload): Set gold_version if we see LDPT_GOLD_VERSION.
Nick Clifton [Tue, 25 Jan 2011 14:32:52 +0000 (14:32 +0000)]
rx.h (LIBCALL_VALUE): Do not promote complex types.
* config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
* config/rx/rx.c (rx_function_value): Likewise.
(rx_promote_function_mode): Likewise.
(gen_safe_add): Place an outsized immediate value inside an UNSPEC
in order to make it legitimate.
* config/rx/rx.md (adddi3_internal): If the second operand is a
MEM make sure that the first operand is the same as the result
register.
(addsi3_unspec): Delete.
(subdi3): Do not accept immediate operands.
(subdi3_internal): Likewise.
* gcc.target/rx/builtins.c: Allow -fipa-cp-clone.
(saturate_add): Delete.
(exchange): Delete.
(main): Do not run saturate_add.
(set_interrupts): Delete.
Jeff Law [Tue, 25 Jan 2011 14:10:46 +0000 (07:10 -0700)]
re PR rtl-optimization/37273 (IRA does not re-materializes addresses (loads from the TOC))
PR rtl-optimization/37273
* ira-costs.c (scan_one_insn): Detect constants living in memory and
handle them like argument loads from stack slots. Do not double
count memory for memory constants and argument loads from stack slots.
Jakub Jelinek [Tue, 25 Jan 2011 12:01:54 +0000 (13:01 +0100)]
re PR tree-optimization/47427 (ICE in process_constraint, at tree-ssa-structalias.c:2901)
PR tree-optimization/47427
PR tree-optimization/47428
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
coalesce if the new root var would be TREE_READONLY.
* gcc.c-torture/compile/pr47427.c: New test.
* gcc.c-torture/compile/pr47428.c: New test.
Sebastian Pop [Tue, 25 Jan 2011 06:48:32 +0000 (06:48 +0000)]
Pass to dr_analyze_indices the analysis loop for subscripts.
2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
* graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
call to graphite_find_data_references_in_stmt.
* graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
(try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
call to graphite_find_data_references_in_stmt.
(analyze_drs_in_stmts): Same.
* tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
in which the scalar analysis of indices is performed.
(create_data_ref): Same. Update call to dr_analyze_indices.
(find_data_references_in_stmt): Update call to create_data_ref.
(graphite_find_data_references_in_stmt): Same.
* tree-data-ref.h (graphite_find_data_references_in_stmt): Update
declaration.
(create_data_ref): Same.
* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
call to create_data_ref.
Sebastian Pop [Tue, 25 Jan 2011 06:47:21 +0000 (06:47 +0000)]
Allow several reductions in a reduction PBB.
2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (reduction_dr_1): Allow several reductions
in a reduction PBB.
* graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
that have already been marked as PBB_IS_REDUCTION.
Sebastian Pop [Tue, 25 Jan 2011 06:46:56 +0000 (06:46 +0000)]
Relax the definition of same_pdr_p.
2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
* graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
of both data references to be the same.
Sebastian Pop [Tue, 25 Jan 2011 06:46:19 +0000 (06:46 +0000)]
Expect at least the version 0.11 of PPL.
2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
toplev/
* configure: Regenerated.
* configure.ac: Check for version 0.11 (or later revision) of PPL.
toplev/gcc/
* doc/install.texi: Update the expected version number of PPL to 0.11.
* graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
#if PPL_VERSION_MINOR < 11.
Sebastian Pop [Tue, 25 Jan 2011 06:45:04 +0000 (06:45 +0000)]
Test the profitability of interchange on the perfect nest.
2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
* graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
nest and two loop depths as parameters.
(lst_try_interchange_loops): Call lst_interchange_profitable_p after
lst_perfect_nestify.
Jan Hubicka [Mon, 24 Jan 2011 23:07:25 +0000 (00:07 +0100)]
re PR c/21659 ([unit-at-a-time] "weak declaration must precede definition" error missing at >= O1)
PR c/21659
* doc/extend.texi (weak pragma): Drop claim that it must
appear before definition.
* varasm.c (merge_weak, declare_weak): Only sanity check
that DECL is not output at a time it is declared weak.
H.J. Lu [Mon, 24 Jan 2011 17:29:58 +0000 (17:29 +0000)]
Visit basic blocks using the work-list based algorithm.
2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/46519
* config/i386/i386.c: Include sbitmap.h and fibheap.h.
(block_info): Add scanned and prev.
(move_or_delete_vzeroupper_2): Return if the basic block
has been scanned and the upper 128bit state is unchanged
from the last scan.
(move_or_delete_vzeroupper_1): Return true if the exit
state is changed.
(move_or_delete_vzeroupper): Visit basic blocks using the
work-list based algorithm based on vt_find_locations in
var-tracking.c.
* config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
Johannes Singler [Mon, 24 Jan 2011 17:07:35 +0000 (17:07 +0000)]
re PR libstdc++/47433 (libstdc++ parallel mode calls std::swap explicitely)
2011-01-24 Johannes Singler <singler@kit.edu>
PR libstdc++/47433
* include/parallel/losertree.h
(_LoserTree<>::__delete_min_insert):
Do not qualify swap with std:: for value type,
but include a using directive instead.
(_LoserTreeUnguarded<>::__delete_min_insert): Likewise.
* include/parallel/balanced_quicksort.h (__qsb_divide):
Use std::iter_swap instead of std::swap.
(__qsb_local_sort_with_helping): Likewise.
* include/parallel/partition.h (__parallel_partition):
Likewise. (__parallel_nth_element): Likewise.
Nick Clifton [Mon, 24 Jan 2011 17:00:28 +0000 (17:00 +0000)]
v850.opt (mv850es): New option - alias for -mv850e1.
* config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
* config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
-mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
then define __v850e1__.
* doc/invoke.texi: Document -mv850es.
It turns out that the middle-end will happily take care of
doing the swapping and splitting of compound fp comparisons.
No need for us to replicate that here.
Bernd Schmidt [Sun, 23 Jan 2011 21:11:24 +0000 (21:11 +0000)]
re PR rtl-optimization/47166 (SpecCpu2000 Ammp segfaults for ARM with -O3 -mthumb)
PR rtl-optimization/47166
* reload1.c (emit_reload_insns): Disable the spill_reg_store
mechanism for PRE_MODIFY and POST_MODIFY.
(inc_for_reload): For PRE_MODIFY, return the insn that sets the
reloadreg.
Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
From-SVN: r169144
Ira Rosen [Sun, 23 Jan 2011 08:20:22 +0000 (08:20 +0000)]
costmodel-vect-33.c: Expect vectorization to be not profitable if...
* gcc.dg/vect/costmodel/spu/costmodel-vect-33.c: Expect
vectorization to be not profitable if peeling is used
to realign the memory access.
* gcc.dg/vect/costmodel/spu/costmodel-vect-76a.c:
Increase loop bound to avoid loop unrolling.
* gcc.dg/vect/costmodel/spu/costmodel-vect-76c.c:
Likewise.
Ulrich Weigand [Sat, 22 Jan 2011 21:24:54 +0000 (21:24 +0000)]
re PR middle-end/47401 (Support for must-not-throw regions with SJLJ exceptions broken)
PR middle-end/47401
* except.c (sjlj_assign_call_site_values): Move setting the
crtl->uses_eh_lsda flag to ...
(sjlj_mark_call_sites): ... here.
(sjlj_emit_function_enter): Support NULL dispatch label.
(sjlj_build_landing_pads): In a function with no landing pads
that still has must-not-throw regions, generate code to register
a personality function with empty LSDA.