Rainer Orth [Fri, 26 Nov 2010 17:39:05 +0000 (17:39 +0000)]
gnat.exp: Load gcc.exp.
* lib/gnat.exp: Load gcc.exp.
(gnat_target_compile): Use gcc_target_compile for *.c sources.
* gnat.dg/sse_nolib.adb: Use dg-require-effective-target sse_runtime.
Backport from mainline:
2010-11-25 Eric Botcazou <ebotcazou@adacore.com>
Eric Botcazou [Sun, 21 Nov 2010 10:38:43 +0000 (10:38 +0000)]
mips.c (machine_function): Rename load_label_length to load_label_num_insns.
* config/mips/mips.c (machine_function): Rename load_label_length to
load_label_num_insns.
(mips_load_label_length): Rename to...
(mips_load_label_num_insns): ...this. Adjust to first renaming.
(mips_adjust_insn_length): Adjust to second renaming. Fix thinko.
Richard Guenther [Wed, 17 Nov 2010 10:46:36 +0000 (10:46 +0000)]
re PR tree-optimization/46498 (ICE: in eliminate_unnecessary_stmts, at tree-ssa-dce.c:1112 with -O -funsafe-math-optimizations -fno-tree-dominator-opts -fno-tree-reassoc)
Alan Modra [Wed, 17 Nov 2010 06:01:03 +0000 (16:31 +1030)]
re PR target/44266 (stack frame lacks parameter save area)
PR target/44266
Backport r159963
* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
emit_library_call machinery to set up __tls_get_addr calls.
Eric Botcazou [Tue, 16 Nov 2010 22:17:17 +0000 (22:17 +0000)]
re PR rtl-optimization/46315 (-O2 -fno-strict-overflow causes wrong code generation)
PR rtl-optimization/46315
* rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
* rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
extracted from...
* dce.c (delete_corresponding_reg_eq_notes): ...here. Rename into...
(remove_reg_equal_equiv_notes_for_defs): ...this.
(delete_unmarked_insns): Adjust to above renaming.
* ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
referring to registers set in the insns being moved, if any.
* df-core.c (df_ref_dump): New function extracted from...
(df_refs_chain_dump): ...here. Call it.
(df_regs_chain_dump): Likewise.
* df-problems.c (df_chain_dump): Print 'e' for uses in notes.
* df-scan.c (df_scan_start_dump): Likewise. Fix long line.
Richard Guenther [Fri, 12 Nov 2010 14:43:19 +0000 (14:43 +0000)]
backport: [multiple changes]
2010-11-12 Richard Guenther <rguenther@suse.de>
Backport from mainline
2010-11-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46355
* tree-loop-distribution.c (tree_loop_distribution): Do not
distribute loops without a single exit.
* gcc.dg/pr46355.c: New testcase.
2010-11-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46177
* tree-loop-distribution.c (prop_phis): Use
mark_virtual_phi_result_for_renaming.
* gcc.dg/pr46177.c: New testcase.
2010-11-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46177
* tree-loop-distribution.c (prop_phis): Remove.
(generate_builtin): Re-use the old loop exit edge to avoid
needing to update PHI nodes.
Jakub Jelinek [Thu, 11 Nov 2010 20:38:12 +0000 (21:38 +0100)]
backport: re PR tree-optimization/46099 (ICE: in replace_ssa_name, at tree-cfg.c:5643 with -ftree-parallelize-loops -g)
Backport from mainline
2010-11-05 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/46099
* tree-parloops.c (take_address_of): Add GSI argument. Return NULL
if it is NULL and uid wasn't found in the hash table. Just fold the
result if it is NULL otherwise. Insert other potentially needed
stmts right before current stmt instead of on the entry edge.
(struct elv_data): Add gsi and reset fields.
(eliminate_local_variables_1): Adjust caller. If take_address_of
failed for debug stmt, set dta->reset and return.
(eliminate_local_variables_stmt): Change STMT argument for GSI,
pass GSI through to the callback, handle resetting of debug stmts.
(eliminate_local_variables): Adjust caller. Process debug stmts
in second phase.
Jakub Jelinek [Thu, 11 Nov 2010 20:35:10 +0000 (21:35 +0100)]
backport: re PR tree-optimization/46165 (ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-copy-prop -fno-tree-dce)
Backport from mainline
2010-11-03 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/46165
* tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
a normal call into noreturn call.
Sebastian Pop [Tue, 9 Nov 2010 19:15:36 +0000 (19:15 +0000)]
Fix Changelog entry.
2010-11-09 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/45314
Backport of revision 163132.
* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
of SSA copies on edges except for loop->latch.
Sebastian Pop [Tue, 9 Nov 2010 19:08:57 +0000 (19:08 +0000)]
Fix PR45314: backport revision 163123.
2010-11-09 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/45902
Backport of revision 163132.
* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
of SSA copies on edges except for loop->latch.
Jerry DeLisle [Thu, 4 Nov 2010 00:16:47 +0000 (00:16 +0000)]
re PR fortran/46010 (I/O: Namelist-reading bug)
2010-11-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/46010
Backport from mainline:
* io/list_read.c (nml_parse_qualifier): Add additional conditions for
setting the end index for loop specification. Fix some whitespace.
Uros Bizjak [Wed, 3 Nov 2010 22:42:39 +0000 (23:42 +0100)]
Revert:
2010-10-30 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/44569
* lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
Alan Modra [Wed, 3 Nov 2010 13:55:26 +0000 (00:25 +1030)]
rs6000.c (rs6000_pic_labelno): Make static.
* config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
(rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
TARGET_SECURE_PLT.
* config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
* config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
on input, "r" on output.
Steven G. Kargl [Tue, 2 Nov 2010 22:02:37 +0000 (22:02 +0000)]
re PR fortran/46152 ([F03] ALLOCATE with type-spec fails for intrinsic types)
2010-10-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/46152
* gfortran.dg/select_type_11.f03: Update dg-error phrase.
* gfortran.dg/allocate_with_typespec_4.f90: New test.
* gfortran.dg/allocate_with_typespec_1.f90: New test.
* gfortran.dg/allocate_with_typespec_2.f: New test.
* gfortran.dg/allocate_with_typespec_3.f90: New test.
* gfortran.dg/allocate_derived_1.f90: Delete an obselescent test.
* gfortran.dg/select_type_1.f03: Update dg-error phrase.
2010-10-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/46152
* fortran/match.c (match_derived_type_spec): Reoplace gfc_match_symbol
with a gfc_find_symbol to prevent namespace pollution. Remove dead
code.
(match_type_spec): Remove parsing of '::'. Collapse character
kind checking to one location.
(gfc_match_allocate): Use correct locus in error message.
Ira Rosen [Tue, 2 Nov 2010 12:12:56 +0000 (12:12 +0000)]
re PR tree-optimization/45902 (CPU2006 benchmark sphinx3 fails with vectorization)
PR tree-optimization/45902
* tree-vectorizer.h (enum stmt_vec_info_type): Add new value for
shift.
(vect_get_slp_defs): Add arguments.
* tree-vect-stmts.c (cost_for_stmt): Handle shifts.
(vect_get_vec_def_for_operand): Use operand's
type to determine number of units in the created vector.
(vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
(vectorizable_shift): New function.
(vectorizable_operation): Move code that handles shifts to
vectorizable_shift.
(vectorizable_type_demotion): Pass scalar operands to
vect_get_slp_defs.
(vectorizable_type_promotion, vectorizable_store): Likewise.
(vect_analyze_stmt): Call vectorizable_shift.
(vect_transform_stmt): Likewise.
* tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
Use it as the operand to create vectors except for stores.
(vect_get_slp_defs): Add new arguments. Pass them to
vect_get_constant_vectors.
Uros Bizjak [Sat, 30 Oct 2010 20:37:54 +0000 (22:37 +0200)]
re PR middle-end/44569 (ICE in simplify_subreg for debug insn with CONCATN)
PR middle-end/44569
* lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
Eric Botcazou [Sun, 24 Oct 2010 20:53:26 +0000 (20:53 +0000)]
reg-stack.c (convert_regs_1): Return boolean value, true if the CFG has been modified.
* reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
has been modified.
(convert_regs_2): Likewise. Adjust calls to convert_regs_1.
(convert_regs): Adjust calls to convert_regs_2. Clean up the CFG if
it has been modified.
Uros Bizjak [Fri, 22 Oct 2010 16:18:41 +0000 (18:18 +0200)]
re PR target/46098 (ICE: in extract_insn, at recog.c:2100 with -msse3 -ffloat-store and __builtin_ia32_loadupd())
PR target/46098
* config/i386/sse.md (*avx_movup<avxmodesuffixf2c><avxmodesuffix>):
Rename from avx_movup<avxmodesuffixf2c><avxmodesuffix>.
(avx_movup<avxmodesuffixf2c><avxmodesuffix>): New expander.
(*<sse>_movup<ssemodesuffixf2c>): Rename from
<sse>_movup<ssemodesuffixf2c>.
(<sse>_movup<ssemodesuffixf2c>): New expander.
(*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
(avx_movdqu<avxmodesuffix>): New expander.
(*sse2_movdqu): Rename from sse2_movdqu.
(sse2_movdqu): New expander.
testsuite/ChangeLog:
PR target/46098
* gcc.target/i386/pr46098.c: New test.