Anatoly Sokolov [Thu, 7 Apr 2011 19:58:24 +0000 (23:58 +0400)]
mips.h (REG_MODE_OK_FOR_BASE_P, [...]): Remove macros.
* config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
Remove macros.
From-SVN: r172125
Uros Bizjak [Thu, 7 Apr 2011 18:47:16 +0000 (20:47 +0200)]
sse.md: Update copyright year.
* config/i386/sse.md: Update copyright year.
(avxcvtvecmode): Remove.
(sse_movhlps): Merge with *avx_movhlps.
(sse_movlhps): Merge with *avx_movlhps.
(vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
(vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
(sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
(sse_loadhps): Merge with *avx_loadhps.
(sse_storelps): Merge with *avx_storelps.
(sse_loadlps): Merge with *avx_loadlps.
(sse_movss): Merge with *avx_movss.
(*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
(*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
(*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
(*vec_set<mode>_0_sse2): Split multi-unit alternative.
(vec_set<mode>_0): Ditto.
(*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
(sse4_1_insertps): Merge with *avx_insertps.
(*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
(*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
(vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
(sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
(sse2_storehpd): Merge with *avx_storehpd.
(sse2_loadhpd): Merge with *avx_loadhpd.
(sse2_loadlpd): Merge with *avx_loadlpd.
(sse2_movsd): Merge with *avx_movsd.
(*vec_concatv2df): Merge with *vec_concatv2df.
From-SVN: r172123
Jakub Jelinek [Thu, 7 Apr 2011 18:31:43 +0000 (20:31 +0200)]
re PR fortran/48117 (ICE: OpenMP; in build_int_cst_wide, at tree.c:1178)
PR fortran/48117
* gfortran.dg/gomp/pr48117.f90: New test.
From-SVN: r172119
Jakub Jelinek [Thu, 7 Apr 2011 17:58:05 +0000 (19:58 +0200)]
re PR debug/48343 (ICE compiling i586 linux-2.6.38/drivers/staging/wlan-ng/p80211wep.c: in form_sum, at reload.c:5338)
PR debug/48343
* combine.c (combine_instructions): Add last_combined_insn,
update it if insn is after it, pass it to all try_combine
calls.
(try_combine): Add last_combined_insn parameter, pass it instead of
i3 to propagate_for_debug.
* gcc.dg/torture/pr48343.c: New test.
From-SVN: r172109
Jakub Jelinek [Thu, 7 Apr 2011 17:57:26 +0000 (19:57 +0200)]
re PR debug/48343 (ICE compiling i586 linux-2.6.38/drivers/staging/wlan-ng/p80211wep.c: in form_sum, at reload.c:5338)
PR debug/48343
* combine.c (combine_instructions): Add last_combined_insn,
update it if insn is after it, pass it to all try_combine
calls.
(try_combine): Add last_combined_insn parameter, pass it instead of
i3 to propagate_for_debug.
* gcc.dg/torture/pr48343.c: New test.
From-SVN: r172108
Rainer Orth [Thu, 7 Apr 2011 17:11:30 +0000 (17:11 +0000)]
* gcc.target/i386/asm-6.c: Remove dg-xfail-if.
From-SVN: r172107
Ian Lance Taylor [Thu, 7 Apr 2011 17:09:10 +0000 (17:09 +0000)]
libgo: Update to current Go library.
From-SVN: r172106
Joseph Myers [Thu, 7 Apr 2011 16:30:42 +0000 (17:30 +0100)]
* de.po: Update.
From-SVN: r172103
Eric Botcazou [Thu, 7 Apr 2011 16:07:44 +0000 (16:07 +0000)]
Fix typos
From-SVN: r172102
Maxim Kuvyrkov [Thu, 7 Apr 2011 14:53:50 +0000 (14:53 +0000)]
* gcc.dg/lto/20090210_0.c: Require tls_runtime target.
From-SVN: r172101
Nick Clifton [Thu, 7 Apr 2011 14:02:37 +0000 (14:02 +0000)]
mn10300.md (movqi_internal): Add alternatives to handle MDR <-> data register transfers.
* config/mn10300/mn10300.md (movqi_internal): Add alternatives
to handle MDR <-> data register transfers.
(movhi_internal): Likewise.
From-SVN: r172099
Alan Modra [Thu, 7 Apr 2011 11:17:05 +0000 (20:47 +0930)]
rs6000.c (rs6000_stack_info): Don't compare against previous stack info.
* config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
previous stack info.
From-SVN: r172096
Stuart Henderson [Thu, 7 Apr 2011 11:09:02 +0000 (11:09 +0000)]
MAINTAINERS (Write After Approval): Add myself.
2011-04-07 Stuart Henderson <shenders@gcc.gnu.org>
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r172095
Tom de Vries [Thu, 7 Apr 2011 09:48:39 +0000 (09:48 +0000)]
re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-07 Tom de Vries <tom@codesourcery.com>
PR target/43920
* cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
flow_find_cross_jump. Swap variables to implement backward replacement.
(try_crossjump_bb): Add argument to try_crossjump_to_edge.
From-SVN: r172094
Tom de Vries [Thu, 7 Apr 2011 09:28:11 +0000 (09:28 +0000)]
re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-07 Tom de Vries <tom@codesourcery.com>
PR target/43920
* lib/scanasm.exp (object-size): New proc.
* gcc.target/arm/pr43920-2.c: New test.
From-SVN: r172093
Tom de Vries [Thu, 7 Apr 2011 08:35:23 +0000 (08:35 +0000)]
re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-07 Tom de Vries <tom@codesourcery.com>
PR target/43920
* cfgcleanup.c (walk_to_nondebug_insn): New function.
(flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1 and
bb2.
(try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not src1
or src2. Redirect edges to the last basic block. Update frequency and
count on multiple basic blocks in case of fallthru.
From-SVN: r172091
Tom de Vries [Thu, 7 Apr 2011 08:10:34 +0000 (08:10 +0000)]
re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-07 Tom de Vries <tom@codesourcery.com>
PR target/43920
* cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
function.
(old_insns_match_p): Change return type. Replace return false/true with
return dir_none/dir_both. Use can_replace_by.
(flow_find_cross_jump): Add dir_p parameter. Init replacement direction
from dir_p. Register replacement direction in dir, last_dir and
afterlast_dir. Handle new return type of old_insns_match_p using
merge_dir. Return replacement direction in dir_p.
(flow_find_head_matching_sequence, outgoing_edges_match): Handle new
return type of old_insns_match_p.
(try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
* ifcvt.c ( cond_exec_process_if_block): Add argument to call to
flow_find_cross_jump.
* basic-block.h (enum replace_direction): New type.
(flow_find_cross_jump): Add parameter to declaration.
From-SVN: r172090
Jeffrey Yasskin [Thu, 7 Apr 2011 04:11:12 +0000 (04:11 +0000)]
In C++0x mode, import iota and is_sorted from namespace std into namespace __gnu_cxx to avoid ambiguous call errors.
In C++0x mode, import iota and is_sorted from namespace std into
namespace __gnu_cxx to avoid ambiguous call errors. copy_n would be a
good candidate for this too, except it was standardized with a
different return type.
Tested:
`make -k check-c++` on x86_64-unknown-linux-gnu.
libstdc++-v3/ChangeLog:
2011-04-06 Jeffrey Yasskin <jyasskin@google.com>
* include/ext/algorithm (is_sorted): In C++0x mode import from
namespace std.
* include/ext/numeric (iota): In C++0x mode import from
namespace std.
* testsuite/ext/is_sorted/cxx0x.cc: New.
* testsuite/ext/iota/cxx0x.cc: New.
From-SVN: r172073
GCC Administrator [Thu, 7 Apr 2011 00:18:54 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r172072
Ian Lance Taylor [Wed, 6 Apr 2011 23:07:13 +0000 (23:07 +0000)]
Use backend interface for constant switch statements.
* go-gcc.cc (if_statement): Use build3_loc.
(Gcc_backend::switch_statement): New function.
(Gcc_backend::statement_list): New function.
From-SVN: r172066
Tobias Burnus [Wed, 6 Apr 2011 18:32:27 +0000 (20:32 +0200)]
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
PR fortran/48477
* gfortran.dg/coarray_13.f90: Avoid out-of-bounds access.
From-SVN: r172061
Tobias Burnus [Wed, 6 Apr 2011 18:30:58 +0000 (20:30 +0200)]
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
call for this_image.
From-SVN: r172060
Tobias Burnus [Wed, 6 Apr 2011 18:29:55 +0000 (20:29 +0200)]
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* caf/mpi.c (_gfortran_caf_init, _gfortran_caf_finalize):
Add global variable caf_mpi_initialized and use it for when
finalizing.
From-SVN: r172059
Uros Bizjak [Wed, 6 Apr 2011 17:39:27 +0000 (19:39 +0200)]
sse.md (AVXMODEDCVTDQ2PS): Remove.
* config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
(AVXMODEDCVTPS2DQ): Ditto.
(VEC_FLOAT_MODE): Ditto.
(<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
(<any_logic:code><mode>3): Use VF mode iterator.
(*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
Use VF mode iterator.
(copysign<mode>3): Use VF mode iterator.
(*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
(*<any_logic:code><MODEF:mode>3): Merge with
*avx_<any_logic:code><MODEF:mode>3.
(sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
(sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
(avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
(avx_cvtdq2ps<avxmodesuffix>): Remove.
(sse2_cvtdq2ps): Use %v modifier.
(avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
(avx_cvtps2dq<avxmodesuffix>): Remove.
(sse2_cvtps2dq): Use %v modifier.
(avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
(avx_cvttps2dq<avxmodesuffix>): Remove.
(sse2_cvttps2dq): Use %v modifier.
(sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
(sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
(sse2_cvtsd2siq): Fix insn template.
(sse2_cvtsd2siq_2): Ditto.
(sse2_cvttsd2siq): Ditto.
(sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
(sse2_cvtss2sd): Merge with *avx_cvtss2sd.
From-SVN: r172058
Steve Ellcey [Wed, 6 Apr 2011 16:15:28 +0000 (16:15 +0000)]
mtune.c: Prune note from output.
2011-04-06 Steve Ellcey <sje@cup.hp.com>
* gcc.dg/mtune.c: Prune note from output.
From-SVN: r172056
Joseph Myers [Wed, 6 Apr 2011 16:04:18 +0000 (17:04 +0100)]
* gcov-io.c: Use GCC Runtime Library Exception.
From-SVN: r172053
Ian Lance Taylor [Wed, 6 Apr 2011 15:46:53 +0000 (15:46 +0000)]
Use backend interface for if statements.
Rename some temporary conversion functions to shorter names.
* go-gcc.cc (Gcc_backend::if_statement): New function.
(tree_to_stat): New function.
(expr_to_tree): Renamed from expression_to_tree.
(stat_to_tree): Renamed from statement_to_tree.
From-SVN: r172052
Ian Lance Taylor [Wed, 6 Apr 2011 15:30:20 +0000 (15:30 +0000)]
Use backend interface for expression statements.
* go-gcc.cc (Gcc_backend::expression_statement): New function.
From-SVN: r172051
Rainer Orth [Wed, 6 Apr 2011 15:23:33 +0000 (15:23 +0000)]
re PR testsuite/48480 (FAIL: staticrootslib.lo -O2 (test for excess errors))
PR testsuite/48480
* testsuite/lib/boehm-gc.exp (boehm-gc-dg-prune): Allow for path
to ranlib.
From-SVN: r172050
Joseph Myers [Wed, 6 Apr 2011 12:18:12 +0000 (13:18 +0100)]
configure.ac (build_tools): Remove build-byacc.
* configure.ac (build_tools): Remove build-byacc.
(host_libs): Remove mmalloc.
(host_tools): Remove byacc make patch prms send-pr ash bash bzip2
autoconf automake libtool diff rcs fileutils shellutils time
textutils wdiff find uudecode hello tar gzip indent recode release
sed perl gawk findutils gettext zip.
(libgcj): Remove target-qthreads.
(target_tools): Remove target-examples target-gperf.
(YACC): Don't handle building byacc.
* configure: Regenerate.
* Makefile.def (ash, autoconf, automake, bash, byacc, bzip2, diff,
dosutils, examples, fileutils, find, findutils, gawk, gettext,
gnuserv, gperf, gzip, hello, indent, libtool, make, mmalloc,
patch, perl, prms, qthreads, rcs, recode, release, sed, send-pr,
shellutils, tar, textutils, time, uudecode, wdiff, zip): Don't
handle building components.
* Makefile.in: Regenerate.
From-SVN: r172042
Jakub Jelinek [Wed, 6 Apr 2011 11:49:59 +0000 (13:49 +0200)]
re PR debug/48466 (Wrong variable locations at -O0 on i686)
PR debug/48466
* dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
as base_reg whatever register reg has been eliminated to, instead
of hardcoding STACK_POINTER_REGNUM.
* gcc.dg/guality/pr36977.c: New test.
* gcc.dg/guality/pr48466.c: New test.
From-SVN: r172039
Joseph Myers [Wed, 6 Apr 2011 11:08:17 +0000 (12:08 +0100)]
tm.texi.in: Document C target hooks as separate from general target hooks.
* doc/tm.texi.in: Document C target hooks as separate from general
target hooks.
* doc/tm.texi: Regenerate.
* genhooks.c (struct hook_desc): Add docname field.
(HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
docname field.
(hook_array): Include c-target.def.
(emit_documentation): Use docname field in output.
(emit_init_macros): Take docname argument. Only emit definitions
for hooks matching docname.
(main): Expect additional arguments in all cases. Pass argument
to emit_init_macros.
* target.def: Move initial macro definitions and comments to
target-hooks-macros.h.
(gcc_targetcm): Move to c-family/c-target.def.
* target.h (targetcm): Move declaration to c-family/c-target.h.
* targhooks.c (default_handle_c_option): Move to
c-family/c-opts.c.
* targhooks.h (default_handle_c_option): Move declaration to
c-family/c-common.h.
* target-hooks-macros.h: New file.
* config.gcc (target_has_targetcm): Define and use to add to
c_target_objs and cxx_target_objs.
* config/default-c.c: New file.
* config/darwin-c.c: Include c-target.h and c-target-def.h instead
of target.h and target-def.h.
(TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
(darwin_objc_construct_string, darwin_cfstring_ref_p,
darwin_check_cfstring_format_arg): Make static.
(TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
TARGET_STRING_OBJECT_REF_TYPE_P,
TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
* config/darwin-protos.h (darwin_objc_construct_string,
darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
declare.
* config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
TARGET_STRING_OBJECT_REF_TYPE_P,
TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM):
Remove.
* config/t-darwin (darwin-c.o): Update dependencies.
* system.h (TARGET_HAS_TARGETCM): Poison.
* Makefile.in (TARGET_H): Update.
(TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
(c-family/c-format.o, c-family/c-opts.o): Update dependencies.
(default-c.o): New target.
(s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
(c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New
targets.
(s-tm-texi): Pass -d option to genhooks. Also test timestamp on
c-target.def.
(build/genhooks.o): Update dependencies.
c-family:
* c-target-def.h: New file.
* c-target.def: New file.
* c-target.h: New file.
* c-common.c (targetcm): Don't define here.
* c-common.h (default_handle_c_option): Declare.
* c-format.c: Include c-target.h instead of target.h.
* c-opts.c: Include c-target.h instead of target.h. Explicitly
include tm.h.
(default_handle_c_option): Move from targhooks.c.
objc:
* objc-act.c: Include c-target.h instead of target.h.
* Make-lang.in (objc/objc-act.o): Update dependencies.
From-SVN: r172035
Richard Guenther [Wed, 6 Apr 2011 10:16:30 +0000 (10:16 +0000)]
ipa-inline.c (enum inlining_mode): Remove.
2011-04-06 Richard Guenther <rguenther@suse.de>
* ipa-inline.c (enum inlining_mode): Remove.
(cgraph_flatten): Use some other token.
(cgraph_edge_early_inlinable_p): New function, split out from ...
(cgraph_perform_always_inlining): New function, split out from ...
(cgraph_decide_inlining_incrementally): ... here.
(cgraph_mark_inline_edge): Adjust.
(cgraph_early_inlining): Re-structure.
(pass_early_inline): Require SSA form.
From-SVN: r172033
Andrew Stubbs [Wed, 6 Apr 2011 09:52:52 +0000 (09:52 +0000)]
arm.h (arm_class_likely_spilled_p): Check against LO_REGS only for Thumb-1.
2011-03-06 Andrew Stubbs <ams@codesourcery.com>
Julian Brown <julian@codesourcery.com>
Mark Shinwell <shinwell@codesourcery.com>
gcc/
* config/arm/arm.h (arm_class_likely_spilled_p): Check against
LO_REGS only for Thumb-1.
(MODE_BASE_REG_CLASS): Restrict base registers to those which can
be used in short instructions when optimising for size on Thumb-2.
Co-Authored-By: Julian Brown <julian@codesourcery.com>
Co-Authored-By: Mark Shinwell <shinwell@codesourcery.com>
From-SVN: r172032
Ramana Radhakrishnan [Wed, 6 Apr 2011 09:41:07 +0000 (09:41 +0000)]
Fix commit for PR target/43920
From-SVN: r172031
Eric Botcazou [Wed, 6 Apr 2011 09:34:02 +0000 (09:34 +0000)]
gimple-low.c (lower_gimple_return): When not optimizing, force labels associated with user returns to be preserved.
* gimple-low.c (lower_gimple_return): When not optimizing, force labels
associated with user returns to be preserved.
From-SVN: r172030
Tristan Gingold [Wed, 6 Apr 2011 09:29:53 +0000 (09:29 +0000)]
dbxout.c: (debug_nesting...
2011-04-06 Tristan Gingold <gingold@adacore.com>
* dbxout.c: (debug_nesting, symbol_queue, symbol_queue_index)
(symbol_queue_size, DBXOUT_DECR_NESTING)
(DBXOUT_DECR_NESTING_AND_RETURN): Also define
if XCOFF_DEBUGGING_INFO.
From-SVN: r172029
Uros Bizjak [Wed, 6 Apr 2011 09:24:46 +0000 (11:24 +0200)]
i386.md (attribute isa): New.
* config/i386/i386.md (attribute isa): New.
(attribute enabled): New.
(setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
(*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
(*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
(*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
(*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
(<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
(*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
(*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
* config/i386/sse.md (VF): New mode iterator.
(VF1): Ditto.
(VF2): Ditto.
(VF_128): Ditto.
(SSEMODEF4): Remove.
(attribute sse): Handle V8SF and V4DF modes.
(<absneg:code><mode>2): Use VF mode iterator.
(*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
mode iterator.
(<plusminus_insn><mode>3): Use VF mode iterator.
(*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
Use VF mode iterator.
(<sse>_vm<plusminus_insn><mode>3): Merge with
*avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
(mul<mode>3): Use VF mode iterator.
(*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
(<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
mode iterator.
(div<VF2:mode>3): Merge from divv2df3 and divv4df3.
(div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
(<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
(<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
mode iterator.
(<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
Use VF1 mode iterator.
(sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
(sqrt<VF2:mode>2): New expander.
(sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
(<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
and sqrtv2df2. Use VF mode iterator.
(<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
mode iterator.
(rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
(<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
Use VF1 mode iterator.
(sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
(<smaxmin:code><mode>3): Use VF mode iterator.
(*<smaxmin:code><mode>3_finite): Merge with
*avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
(*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
(<sse>_vm<smaxmin:code><mode>2): Merge with
*avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
(*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
mode iterator.
(*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
mode iterator.
(sse3_addsubv2df3): Merge with *avx_addsubv2df3.
(sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
(sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
(sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
(avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
VF mode iterator.
(avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
Use VF_128 mode iterator.
(<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
mode iterator.
(<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
VF_128 mode iterator.
(vcond<mode>): Use VF mode iterator.
* config/i386/predicates.md (sse_comparison_operator): Merge with
avx_comparison_float_operator. Do not declare as special_predicate.
* config/i386/i386.c (struct builtin_description): Update for renamed
compare patterns.
(ix86_expand_args_builtin): Ditto.
(ix86_expand_sse_compare_mask): Ditto.
From-SVN: r172028
Richard Guenther [Wed, 6 Apr 2011 08:56:28 +0000 (08:56 +0000)]
tree-inline.c (estimate_num_insns): For calls simply account for all passed arguments and a used return value.
2011-04-06 Richard Guenther <rguenther@suse.de>
* tree-inline.c (estimate_num_insns): For calls simply account
for all passed arguments and a used return value.
From-SVN: r172024
Richard Guenther [Wed, 6 Apr 2011 08:51:23 +0000 (08:51 +0000)]
re PR middle-end/47663 (Very simple wrapper not inlined)
2011-04-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/47663
* cgraph.h (struct cgraph_edge): Add call_stmt_size and
call_stmt_time fields.
(cgraph_edge_inlinable_p): Declare.
(cgraph_edge_recursive_p): New inline function.
* cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
(cgraph_clone_edge): Copy it.
* ipa-inline.c (cgraph_estimate_edge_time): New function.
Account for call stmt time.
(cgraph_estimate_time_after_inlining): Take edge argument.
(cgraph_estimate_edge_growth): Account call stmt size.
(cgraph_estimate_size_after_inlining): Take edge argument.
(cgraph_mark_inline_edge): Adjust.
(cgraph_check_inline_limits): Likewise.
(cgraph_recursive_inlining_p): Remove.
(cgraph_edge_badness): Use cgraph_edge_recursive_p.
(cgraph_decide_recursive_inlining): Take edge argument and
adjust.
(cgraph_decide_inlining_of_small_functions): Do not avoid
diags for recursive inlining here.
(cgraph_flatten): Adjust.
(cgraph_decide_inlining_incrementally): Likewise.
(estimate_function_body_sizes): Remove call cost handling.
(compute_inline_parameters): Initialize caller edge call costs.
(cgraph_estimate_edge_growth): New function.
(cgraph_estimate_growth): Use it.
(cgraph_edge_badness): Likewise.
(cgraph_check_inline_limits): Take an edge argument.
(cgraph_decide_inlining_of_small_functions): Adjust.
(cgraph_decide_inlining): Likewise.
* tree-inline.c (estimate_num_insns): Only account for call
return value if it is used.
(expand_call_inline): Avoid diagnostics on recursive inline
functions here.
* lto-cgraph.c (lto_output_edge): Output edge call costs.
(input_edge): Input edge call costs.
* gcc.dg/tree-ssa/inline-8.c: New testcase.
From-SVN: r172023
Rainer Orth [Wed, 6 Apr 2011 08:48:22 +0000 (08:48 +0000)]
* config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
From-SVN: r172022
Jonathan Wakely [Wed, 6 Apr 2011 08:00:43 +0000 (08:00 +0000)]
invoke.texi (Spec Files): Fix typo.
2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
* doc/invoke.texi (Spec Files): Fix typo.
From-SVN: r172020
Eric Botcazou [Wed, 6 Apr 2011 06:17:22 +0000 (06:17 +0000)]
profile.c (branch_prob): Move declaration of local variable.
* profile.c (branch_prob): Move declaration of local variable. Remove
obsolete ??? comment. Expand the location explicitly instead of using
the LOCATION_FILE and LOCATION_LINE macros.
From-SVN: r172019
Ian Lance Taylor [Wed, 6 Apr 2011 06:01:53 +0000 (06:01 +0000)]
libgo: Always use AM_LDFLAGS when linking libgo.la.
This ensures that we pass -fsplit-stack as required.
From-SVN: r172018
Wei Guozhi [Wed, 6 Apr 2011 02:24:16 +0000 (02:24 +0000)]
arm.md (arm_cmpsi_insn): Compute attr "length".
* config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
(arm_cond_branch): Likewise.
(arm_cond_branch_reversed): Likewise.
(arm_jump): Likewise.
(push_multi): Likewise.
* config/arm/constraints.md (Py): New constraint.
From-SVN: r172017
Nathan Froyd [Wed, 6 Apr 2011 01:06:42 +0000 (01:06 +0000)]
re PR bootstrap/48471 (ia64-*-* does not bootstrap due to unused variables in dbxout.c)
PR bootstrap/48471
* dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
Move these...
(symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
(DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
#ifdef DBX_DEBUGGING_INFO.
From-SVN: r172016
GCC Administrator [Wed, 6 Apr 2011 00:18:48 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r172015
Joseph Myers [Tue, 5 Apr 2011 23:08:35 +0000 (00:08 +0100)]
* de.po: Update.
From-SVN: r172009
Eric Botcazou [Tue, 5 Apr 2011 22:52:46 +0000 (22:52 +0000)]
pr47917.c: Add -D_XOPEN_SOURCE=500 to dg-options for Solaris 9 as well.
* gcc.dg/torture/pr47917.c: Add -D_XOPEN_SOURCE=500 to dg-options for
Solaris 9 as well.
From-SVN: r172008
Eric Botcazou [Tue, 5 Apr 2011 22:43:32 +0000 (22:43 +0000)]
pr47917.c: Add -D_XOPEN_SOURCE=500 to dg-options for Solaris 8 as well.
* gcc.dg/torture/pr47917.c: Add -D_XOPEN_SOURCE=500 to dg-options for
Solaris 8 as well.
From-SVN: r172007
Bernd Schmidt [Tue, 5 Apr 2011 22:19:17 +0000 (22:19 +0000)]
re PR bootstrap/48403 (bootstrap comparison failure)
PR bootstrap/48403
* haifa-sched.c (schedule_block): Increment cycle_issued_insns only
if old and new states differ.
From-SVN: r172006
Joseph Myers [Tue, 5 Apr 2011 21:55:18 +0000 (22:55 +0100)]
m68k.c (m68k_handle_option): Don't handle OPT_m5200, OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
* config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
* config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
* config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
mcfv4e): Use Alias.
* config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
ColdFire options to -mcpu= options.
From-SVN: r172005
Jeff Law [Tue, 5 Apr 2011 21:30:54 +0000 (15:30 -0600)]
tree-ssa-threadupdate.c (determine_bb_domination_status): Always check if BB is a successor of LOOP->header and return NONDOMINATING if...
* tree-ssa-threadupdate.c (determine_bb_domination_status): Always
check if BB is a successor of LOOP->header and return NONDOMINATING
if it is not, regardless of ENABLE_CHECKING.
From-SVN: r172004
Ian Lance Taylor [Tue, 5 Apr 2011 21:11:35 +0000 (21:11 +0000)]
gotest: Add external timeout if internal timeout fails.
From-SVN: r172003
Sterling Augustine [Tue, 5 Apr 2011 20:45:10 +0000 (20:45 +0000)]
+2011-04-05 Sterling Augustine <augustine.sterling@gmail.com> + + * MAINTAINERS...
+2011-04-05 Sterling Augustine <augustine.sterling@gmail.com>
+
+ * MAINTAINERS: Update my email address as Xtensa maintainer.
+
From-SVN: r172002
Ian Lance Taylor [Tue, 5 Apr 2011 19:53:33 +0000 (19:53 +0000)]
gotest: Avoid echo -n.
From-SVN: r172000
Steven Bosscher [Tue, 5 Apr 2011 19:49:52 +0000 (19:49 +0000)]
cprop.c (struct reg_use): Remove.
* cprop.c (struct reg_use): Remove.
(reg_use_table): Make an array of RTX.
(find_used_regs, constprop_register, local_cprop_pass,
bypass_block): Simplify users of reg_use_table.
(cprop_insn): Likewise. Iterate if copy propagation succeeded
on one of the uses found by find_used_regs.
From-SVN: r171999
Nathan Froyd [Tue, 5 Apr 2011 19:33:49 +0000 (19:33 +0000)]
re PR bootstrap/48469 (bootstrap failure)
PR bootstrap/48469
* combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
declaration.
From-SVN: r171998
Ralf Wildenhues [Tue, 5 Apr 2011 19:05:27 +0000 (19:05 +0000)]
Sync config.sub from upstream.
/:
* config.sub: Sync from upstream.
From-SVN: r171996
Nathan Froyd [Tue, 5 Apr 2011 18:36:15 +0000 (18:36 +0000)]
fix compilation on AUTO_INC_DEC targets
fix compilation on AUTO_INC_DEC targets
* combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
as an rtx.
(try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
From-SVN: r171995
Steven Bosscher [Tue, 5 Apr 2011 18:15:04 +0000 (18:15 +0000)]
re PR middle-end/48441 (ICE in mark_oprs_set)
PR middle-end/48441
* cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
From-SVN: r171994
Nathan Froyd [Tue, 5 Apr 2011 17:24:06 +0000 (17:24 +0000)]
combine.c: Include obstack.h.
* combine.c: Include obstack.h.
(struct insn_link): Define.
(uid_log_links): Adjust type.
(FOR_EACH_LOG_LINK): New macro.
(insn_link_obstack): Declare.
(alloc_insn_link): Define.
(create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
type of link variables.
(find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
(try_combine, record_promoted_values, distribute_notes): Likewise.
(distribute_links): Likewise. Tweak prototype.
(clear_log_links): Delete.
(adjust_for_new_dest): Call alloc_insn_link.
* Makefile.in (combine.o): Depend on $(OBSTACK_H).
From-SVN: r171993
Nathan Froyd [Tue, 5 Apr 2011 17:20:44 +0000 (17:20 +0000)]
gcse.c (modify_mem_list): Convert to an array of VECs.
* gcse.c (modify_mem_list): Convert to an array of VECs.
(canon_modify_mem_list, compute_transp): Tweak formatting.
(alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
(load_killed_in_block_p): Likewise.
(record_last_mem_set_info): Likewise.
(clear_modify_mem_tables): Likewise.
From-SVN: r171992
Tom de Vries [Tue, 5 Apr 2011 15:54:13 +0000 (15:54 +0000)]
re PR middle-end/48461 (function.c:5268:1: error: emit_use_return_register_into_block defined but not used)
2011-04-05 Tom de Vries <tom@codesourcery.com>
PR middle-end/48461
* function.c (emit_use_return_register_into_block): Only define if
HAVE_return.
From-SVN: r171990
Eric Botcazou [Tue, 5 Apr 2011 14:34:28 +0000 (14:34 +0000)]
* stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
From-SVN: r171988
Nathan Froyd [Tue, 5 Apr 2011 14:25:32 +0000 (14:25 +0000)]
trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use build_function_type_list instead of build_function_type.
* trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
build_function_type_list instead of build_function_type. Correct
argument order for func_frexp and func_scalbn.
From-SVN: r171987
Tom de Vries [Tue, 5 Apr 2011 13:01:50 +0000 (13:01 +0000)]
re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-05 Tom de Vries <tom@codesourcery.com>
PR target/43920
* gcc.target/arm/pr43920-1.c: New test.
From-SVN: r171986
Joseph Myers [Tue, 5 Apr 2011 12:28:41 +0000 (13:28 +0100)]
rx-opts.h: New.
* config/rx/rx-opts.h: New.
* config/rx/rx.c (rx_cpu_type): Remove.
(rx_handle_option): Don't assert that global structures are in
use. Access variables via opts pointer. Defer most handling of
OPT_mint_register_. Use error_at.
(rx_option_override): Handle deferred OPT_mint_register_ here.
* config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
* config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
(mcpu=): Use Enum and specifiy rx_cpu_type with Var.
(rx_cpu_types): New Enum and EnumValue entries.
(mint-register=): Use Defer and use Var accordingly.
From-SVN: r171984
Richard Guenther [Tue, 5 Apr 2011 12:11:08 +0000 (12:11 +0000)]
re PR lto/48431 (patch to fix a compile error in lto-plugin.c when using older C compilers)
2011-04-05 Richard Guenther <rguenther@suse.de>
PR bootstrap/48431
* lto-plugin.c (claim_file_handler): Do not declare vars in code.
From-SVN: r171982
Nathan Froyd [Tue, 5 Apr 2011 12:02:55 +0000 (12:02 +0000)]
debug.h (debug_flush_symbol_queue, [...]): Delete.
* debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
(debug_free_queue, debug_nesting, symbol_queue_index): Delete.
* final.c (debug_flush_symbol_queue, debug_queue_symbol):
Move these...
(debug_free_queue, debug_nesting, symbol_queue_index):
...and these...
* dbxout.c: ...to here. Make static.
From-SVN: r171981
Nathan Froyd [Tue, 5 Apr 2011 11:40:10 +0000 (11:40 +0000)]
gcse.c (modify_pair): Define.
* gcse.c (modify_pair): Define. Define a VEC of it.
(canon_modify_mem_list): Convert to an array of VECs.
(free_insn_expr_list_list): Delete.
(clear_modify_mem_tables): Call VEC_free instead.
(record_last_mem_set_info): Don't modify canon_modify_mem_list.
(alloc_gcse_mem): Adjust for canon_modify_mem_list change.
(canon_list_insert, compute_transp): Likewise.
From-SVN: r171980
Tom de Vries [Tue, 5 Apr 2011 10:33:13 +0000 (10:33 +0000)]
re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-05 Tom de Vries <tom@codesourcery.com>
PR target/43920
* config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
for size.
From-SVN: r171978
Tom de Vries [Tue, 5 Apr 2011 10:12:14 +0000 (10:12 +0000)]
re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-05 Tom de Vries <tom@codesourcery.com>
PR target/43920
* function.c (emit_use_return_register_into_block): New function.
(thread_prologue_and_epilogue_insns): Use
emit_use_return_register_into_block.
From-SVN: r171977
Tom de Vries [Tue, 5 Apr 2011 10:04:44 +0000 (10:04 +0000)]
re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-05 Tom de Vries <tom@codesourcery.com>
PR target/43920
* cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
insn.
From-SVN: r171976
Tom de Vries [Tue, 5 Apr 2011 09:43:12 +0000 (09:43 +0000)]
cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
2011-04-05 Tom de Vries <tom@codesourcery.com>
* cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
From-SVN: r171975
Eric Botcazou [Tue, 5 Apr 2011 08:41:58 +0000 (08:41 +0000)]
Minor tweaks
From-SVN: r171974
Yufeng Zhang [Tue, 5 Apr 2011 08:35:31 +0000 (08:35 +0000)]
For Yufeng Zhang.
2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
* config/arm/arm.md (define_constants for unspec): Replace with
define_c_enum.
(define_constants for unspecv): Replace with define_c_enum.
* config/arm/neon.md (define_constants for unspec): Replace with
define_c_enum.
From-SVN: r171973
Duncan Sands [Tue, 5 Apr 2011 07:40:27 +0000 (09:40 +0200)]
The parameters for functions from the frexp family were the wrong way round.
The parameters for functions from the frexp family were the wrong way
round. Swap them.
From-SVN: r171971
Ian Lance Taylor [Tue, 5 Apr 2011 05:57:39 +0000 (05:57 +0000)]
Use backend interface for labels and goto statements.
* go-gcc.c (class Blabel): Define.
(Gcc_backend::make_expression): New function.
(get_identifier_from_string): New function.
(Gcc_backend::label): New function.
(Gcc_backend::label_definition_statement): New function.
(Gcc_backend::goto_statement): New function.
(Gcc_backend::label_address): New function.
(expression_to_tree): New function.
* Make-lang.in (go/expressions.o): Depend on
go/gofrontend/backend.h.
(go/gogo.o): Likewise.
From-SVN: r171968
GCC Administrator [Tue, 5 Apr 2011 00:18:31 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r171966
Ian Lance Taylor [Tue, 5 Apr 2011 00:02:15 +0000 (00:02 +0000)]
libgo: Use MAP_FIXED if necessary to grab arena.
From Rainer Orth.
PR go/48240
* configure.ac: Check for mincore.
* configure: Regenerate.
* config.h.in: Regenerate.
* runtime/mem.c: Include unistd.h.
(addrspace_free): New function.
(runtime_SysMap): Retry 64-bit runtime_mmap with MAP_FIXED.
From-SVN: r171961
Rainer Orth [Mon, 4 Apr 2011 23:43:59 +0000 (23:43 +0000)]
libgo: Always initialize semaphores.
2011-04-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR go/48222
* runtime/malloc.goc (runtime_mallocinit): Call
runtime_Mprof_Init, runtime_initfintab.
* runtime/cpuprof.c (runtime_cpuprofinit): New function.
* runtime/runtime.h (runtime_cpuprofinit): Declare it.
* runtime/go-main.c (main): Use it.
From-SVN: r171960
Ian Lance Taylor [Mon, 4 Apr 2011 23:19:09 +0000 (23:19 +0000)]
Use backend interface for return statements.
* go-gcc.cc: #include "tree-iterator.h", "gimple.h", and "gogo.h".
(class Bfunction): Define.
(Gcc_backend::assignment_statement): Rename from assignment.
Check for errors.
(Gcc_backend::return_statement): New function.
(tree_to_function): New function.
* Make-lang.in (go/go-gcc.o): Depend on tree-iterator.h,
$(GIMPLE_H), and $(GO_GOGO_H).
From-SVN: r171959
Yufeng Zhang [Mon, 4 Apr 2011 23:15:55 +0000 (23:15 +0000)]
For Yufeng Zhang - Fix typos and errors in testcase.
From-SVN: r171958
Joseph Myers [Mon, 4 Apr 2011 22:20:07 +0000 (23:20 +0100)]
* es.po: Update.
From-SVN: r171956
Richard Henderson [Mon, 4 Apr 2011 22:13:54 +0000 (15:13 -0700)]
re PR bootstrap/48400 (powerpc-apple-darwin9 fails to bootstrap at revision 171824)
PR 48400
* dwarf2out.c (output_line_info): Always emit line info from
at least one section.
(dwarf2out_init): Create text_section_line_info here ...
(set_cur_line_info_table): ... not here.
From-SVN: r171955
Thomas Koenig [Mon, 4 Apr 2011 21:02:24 +0000 (21:02 +0000)]
frontend-passes: (optimize_lexical_comparison): New function.
2010-04-04 Thomas Koenig <tkoenig@gcc.gnu.org>
* frontend-passes: (optimize_lexical_comparison): New function.
(optimize_expr): Call it.
(optimize_comparison): Also handle lexical comparison functions.
Return false instad of -2 for unequal comparison.
From-SVN: r171954
Thomas Koenig [Mon, 4 Apr 2011 20:55:02 +0000 (20:55 +0000)]
frontend-passes: (optimize_lexical_comparison): New function.
2010-04-04 Thomas Koenig <tkoenig@gcc.gnu.org>
* frontend-passes: (optimize_lexical_comparison): New function.
(optimize_expr): Call it.
(optimize_comparison): Also handle lexical comparison functions.
Return false instad of -2 for unequal comparison.
2010-04-04 Thomas Koenig <tkoenig@gcc.gnu.org>
* gfortran.dg/character_comparison_8.f90: New test.
From-SVN: r171953
Thomas Koenig [Mon, 4 Apr 2011 20:22:21 +0000 (20:22 +0000)]
re PR fortran/48412 (CP2K miscompiled due to some Fortran frontend pass)
2011-04-04 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/48412
* frontend-passes (cfe_expr_0): Reverse the order of going
through the loops.
2011-04-04 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/48412
* function_optimize_4.f90: New test.
From-SVN: r171952
Vladimir Makarov [Mon, 4 Apr 2011 20:19:45 +0000 (20:19 +0000)]
re PR target/48380 (ICE in postreload.c while building trunk)
2011-04-01 Vladimir Makarov <vmakarov@redhat.com>
PR target/48380
* ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
not called.
* ira-emit.c (emit_move_list): Update reg equiv init insn list.
From-SVN: r171951
Tobias Burnus [Mon, 4 Apr 2011 18:35:13 +0000 (20:35 +0200)]
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-04-04 Tobias Burnus <burnus@net-b.de>
Mikael Morin <mikael.morin@sfr.fr>
PR fortran/18918
* check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
* expr.c (gfc_is_coindexed): Ditto.
* gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
* interface.c (compare_parameter): Use gfc_expr_attr and
gfc_is_coindexed.
* resolve.c (check_dimension, compare_spec_to_ref,
resolve_allocate_expr, check_data_variable): Update for
DIMEN_THIS_IMAGE.
* simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
gfc_simplify_ucobound): Allow non-constant bounds.
* trans-array.c (gfc_set_loop_bounds_from_array_spec,
gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
gfc_conv_ss_startstride, gfc_conv_loop_setup,
gfc_trans_array_bounds, gfc_conv_expr_descriptor,
gfc_walk_variable_expr): Handle codimen.
* trans-decl.c (gfc_build_qualified_array): Save cobounds.
* trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
(conv_intrinsic_cobound): New function.
(gfc_conv_intrinsic_function): Call it.
(gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
ucobound, lcobound, this_image.
* fortran/trans-types.c (gfc_build_array_type): Save cobounds.
(gfc_get_dtype): Honour corank.
(gfc_get_nodesc_array_type): Save corank and codimensions.
(gfc_get_array_type_bounds): Save cobound.
* fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
(gfc_array_kind): Add corank item.
(GFC_TYPE_ARRAY_CORANK): New macro.
2011-04-04 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* gfortran.dg/coarray_10.f90: Add coarray descriptor diagnostic
check.
* gfortran.dg/coarray_13.f90: Add checks for run-time cobounds.
* gfortran.dg/coarray_15.f90: New.
Co-Authored-By: Mikael Morin <mikael.morin@sfr.fr>
From-SVN: r171949
Steven Bosscher [Mon, 4 Apr 2011 18:27:17 +0000 (18:27 +0000)]
cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
* cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
(expr_equiv_p): Remove.
(insert_set_in_table): Look at <dest, src> pair instead of expr.
(hash_scan_set): Update call to insert_set_in_table.
(dump_hash_table): Dump <dest, src> pair.
(lookup_set): Simplify. Lookup <dest, src> pair.
(compute_transp): Remove, fold heavily simplified code into...
(compute_local_properties): ...here. Expect COMP and TRANSP
unconditionally.
(find_avail_set): Take set directly from struct expr.
(find_bypass-set): Likewise.
(bypass_block): Likewise.
(cprop_insn): Likewise. Remove redundant INSN_P test.
From-SVN: r171947
Steven Bosscher [Mon, 4 Apr 2011 18:24:50 +0000 (18:24 +0000)]
cprop.c (implicit_set_cond_p): Assume nothing about COND...
* cprop.c (implicit_set_cond_p): Assume nothing about COND, move
checks on form of COND from find_implicit_sets to here.
(find_implicit_sets): Cleanup control flow. Split critical edges
if it exposes implicit sets. Allocate/resize implicit_sets as
necessary.
(one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
changed something. Run df_analyze after find_implicit_sets if any
edges were split. Do not allocate implicit_sets here.
From-SVN: r171946
Steven Bosscher [Mon, 4 Apr 2011 18:24:05 +0000 (18:24 +0000)]
cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
* cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
(gcse_obstack): Renamed to cprop_obstack.
(GNEW, GNEWVEC, GNEWVAR): Remove.
(gmalloc): Remove.
(alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
(GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
(gcse_alloc): Likewise, and rename to cprop_alloc.
(alloc_gcse_men, free_gcse_mem): Remove.
(gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
(compute_hash_table_work): Allocate and free reg_set_bitmap here.
(one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
From-SVN: r171945
Steven Bosscher [Mon, 4 Apr 2011 18:23:27 +0000 (18:23 +0000)]
cprop.c (oprs_not_set_p): Remove.
* cprop.c (oprs_not_set_p): Remove.
(mark_set, mark_clobber): Remove.
(mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
(reg_not_set_p): New function.
(find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
(cprop_insn): Likewise.
(cprop_jump): Use FOR_EACH_EDGE.
From-SVN: r171944
Eric Botcazou [Mon, 4 Apr 2011 18:06:55 +0000 (18:06 +0000)]
re PR ada/47163 (Failure building target-libada for MingW64)
PR ada/47163
* s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
From-SVN: r171943
Bernd Schmidt [Mon, 4 Apr 2011 16:53:51 +0000 (16:53 +0000)]
re PR bootstrap/48403 (bootstrap comparison failure)
Fix PR bootstrap/48403.
2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
PR bootstrap/48403
* haifa-sched.c (nonscheduled_insns_begin): New static variable.
(rank_for_schedule): Use scheduled_insns vector instead of
last_scheduled_insn.
(ok_for_early_queue_removal): Likewise.
(queue_to_ready): Search forward in nonscheduled_insns_begin if
we have a dbg_cnt.
(choose_ready): Likewise.
(commit_schedule): Use VEC_iterate.
(schedule_block): Initialize nonscheduled_insns_begin. If we have
a dbg_cnt, use it and ensure the first insn is in the ready list.
(haifa_sched_init): Allocate scheduled_insns.
(sched_extend_ready_list): Don't allocate it; reserve space.
(haifa_sched_finish): Free it.
From-SVN: r171942
Rainer Orth [Mon, 4 Apr 2011 16:01:54 +0000 (16:01 +0000)]
configure.ac: Redirect $JAR -cf@ output to /dev/null.
* configure.ac: Redirect $JAR -cf@ output to /dev/null.
* configure: Regenerate.
From-SVN: r171941
Rainer Orth [Mon, 4 Apr 2011 15:53:46 +0000 (15:53 +0000)]
bessel_6.f90: Use dg-add-options ieee.
* gfortran.dg/bessel_6.f90: Use dg-add-options ieee.
* gfortran.dg/bessel_7.f90: Likewise.
From-SVN: r171939
Joseph Myers [Mon, 4 Apr 2011 14:18:31 +0000 (15:18 +0100)]
optc-gen.awk: Always remove type from Variable entry before recording in var_seen.
* optc-gen.awk: Always remove type from Variable entry before
recording in var_seen.
From-SVN: r171938