David Edelsohn [Wed, 10 Nov 2004 21:57:14 +0000 (21:57 +0000)]
rs6000.md (define_attr "type"): Add two and three.
* config/rs6000/rs6000.md (define_attr "type"): Add two and three.
Change multi-instruction sequences to new attribute.
* config/rs6000/{40x.md,440.md,603.md,6xx.md,
7450.md,7xx.md,8540.md,mpc.md,power4.md,power5.md,
rios1.md,rios2.md,rs64.md}: Add descriptions for two and three.
Daniel Berlin [Wed, 10 Nov 2004 21:32:10 +0000 (21:32 +0000)]
tree-data-ref.c (build_classic_dist_vector): If either loop is outside of the nest we asked about, the dependence can't matter.
2004-11-10 Daniel Berlin <dberlin@dberlin.org>
* tree-data-ref.c (build_classic_dist_vector): If either loop
is outside of the nest we asked about, the dependence can't
matter.
(build_classic_dir_vector): Ditto.
Zdenek Dvorak [Wed, 10 Nov 2004 20:49:55 +0000 (21:49 +0100)]
tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in right order.
* tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in
right order.
(force_var_cost): Determine cost of addition and multiplication more
precisely.
(get_computation_cost_at): Add cost for computing address elements to
the final cost.
* fold-const.c (fold): Attempt to use ptr_difference_const whenever
one of the arguments of MINUS_EXPR is an address.
(split_address_to_core_and_offset): New function.
(ptr_difference_const): Handle case when one of the operands is a
pointer.
* tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr.
(ptr_difference_cost): Pass addresses instead of objects to
ptr_difference_const.
Eric Botcazou [Wed, 10 Nov 2004 17:24:19 +0000 (18:24 +0100)]
sparc.c (function_arg_union_value): New 'slotno' argument.
* config/sparc/sparc.c (function_arg_union_value): New 'slotno'
argument. When the union is passed in the 6th slot, build a
PARALLEL with only one element.
(function_arg): Adjust call to function_arg_union_value.
(function_value): Likewise.
Steven Bosscher [Wed, 10 Nov 2004 09:28:29 +0000 (09:28 +0000)]
basic-block.h (XMALLOC_REG_SET, [...]): New.
* basic-block.h (XMALLOC_REG_SET, XFREE_REG_SET): New.
(struct basic_block_def): Remove local_set and cond_local_set
fields. Update comment for global_live_at_start.
* flow.c (calculate_global_regs_live): Allocate local_sets and
cond_local_sets here as arrays of bitmaps previously stored in
bb->local_set and bb->cond_local_set. Use xmalloc instead of
obstack allocated bitmaps.
Jeff Law [Wed, 10 Nov 2004 05:03:10 +0000 (22:03 -0700)]
cfganal.c (flow_dfs_compute_reverse_execute): Accept new argument holding last unvisited block.
* cfganal.c (flow_dfs_compute_reverse_execute): Accept new
argument holding last unvisited block. Start search for
unvisited blocks at LAST_UNVISITED rather than EXIT_BLOCK.
(connect_infinite_loops_to_exit): Supply last unvisited block
to flow_dfs_compute_reverse_execute.
Joseph Myers [Tue, 9 Nov 2004 21:58:43 +0000 (21:58 +0000)]
Makefile.in ($(PACKAGE).pot): New rule.
* Makefile.in ($(PACKAGE).pot): New rule. Depend on
po/$(PACKAGE).pot.
(po/$(PACKAGE).pot): Use ":" instead of "," in --keyword
arguments. Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2.
Remove local srcdir path from generated file.
re PR target/18230 (SPARC VIS instructions are not generated by GCC)
PR target/18230
* doc/md.texi (SPARC constraints): Document 'Y' constraint.
* config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes.
* config/sparc/sparc.c (sparc_vector_mode_supported_p): New function.
(TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p.
(fp_zero_operand): Accept MODE_VECTOR_INT modes.
(input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes.
(sparc_cannot_force_const_mem): Return false for CONST_VECTOR.
(sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for
MODE_VECTOR_INT modes.
(sparc_extra_constraint_check): Add new constraint 'Y'.
* config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS.
* config/sparc/sparc.md (V32): New mode macro for 32-bit modes.
(V64): New mode macro for 64-bit modes.
(movsf): Use V32 for mode instead of SF.
(movsf_insn_vis): Use V32 for mode instead of SF. Add 'Y' constraint
alongside 'G' constraint.
(movdf): Use V64 for mode instead of DF.
(movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead
of DF. Add 'Y' constraint alongside 'G' constraint.
(multi-isn and misaligned mems DFmode splitters): Use V64 for mode
instead of DF.
Co-Authored-By: Eric Botcazou <ebotcazou@libertysurf.fr>
From-SVN: r90348
Ulrich Weigand [Tue, 9 Nov 2004 15:47:48 +0000 (15:47 +0000)]
s390.c (s390_canonicalize_comparison): Reverse condition when eliminating an UNSPEC_CMPINT.
* config/s390/s390.c (s390_canonicalize_comparison): Reverse condition
when eliminating an UNSPEC_CMPINT.
(s390_secondary_input_reload_class): Fix test for CC register reload.
(s390_secondary_output_reload_class): Likewise.
(s390_expand_cmpmem): Swap operands. Use gen_cmpint.
* config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove.
("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New
insn patterns with splitters.
Kazu Hirata [Tue, 9 Nov 2004 14:59:49 +0000 (14:59 +0000)]
tree-phinodes.c (phi_reverse): New.
* tree-phinodes.c (phi_reverse): New.
* tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb):
Use it.
* tree-flow.h: Add a prototype for phi_reverse.
Andrew Pinski [Tue, 9 Nov 2004 14:33:32 +0000 (14:33 +0000)]
re PR java/15576 (Class initialization optimization is disabled)
2004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
PR java/15576
* check-init.c (check_init): Ignore DECL_EXPR.
* expr.c (always_initialize_class_p): Reenable.
(build_class_init): Use a variable to store the decl. Also use
boolean_false_node instead of integer_zero_node.
* parse.y (attach_init_test_initialization_flags): Add a decl_expr
to the block.
Joseph Myers [Tue, 9 Nov 2004 10:13:30 +0000 (10:13 +0000)]
builtins.c, [...]: Avoid "`" as left quote, using "'" or %q, %< and %> as appropriate.
* builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
config/iq2000/iq2000.c, config/m32r/m32r.c,
config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
config/sh/symbian.c, config/stormy16/stormy16.c,
config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
and %> as appropriate. Use %' as apostrophe in diagnostics where
applicable. Use %< and %> in place of '' quotes where applicable.
Use %qs in place of %<%s%>. Consistently quote __builtin function
names.
ada:
* misc.c (gnat_handle_option): Use %< and %> for quoting in
warning message.
cp:
* call.c, class.c, decl.c, decl2.c, error.c, mangle.c, parser.c,
pt.c, search.c, semantics.c, typeck.c: Use %q, %< and %> for
quoting in diagnostics.
* parser.c (cp_parser_sizeof_operand): Use '' instead of `' for
quoting in printf format.
* decl.c (duplicate_decls, start_decl): Use %qD instead of
unquoted %D.
objc:
* objc-act.c: Use %q, %< and %> for quoting in diagnostics.
Andrew Pinski [Mon, 8 Nov 2004 21:34:36 +0000 (21:34 +0000)]
re PR objc/16546 ([unit-at-a-time] Solaris 10/x86 libobjc bootstrap failure: invalid assembler code)
2004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
PR objc/16546
* objc-act.c (generate_method_descriptors): Remove setting
the new decls' type to variable_length_type.
(generate_ivar_lists): Likewise.
(generate_dispatch_tables): Likewise.
Kazu Hirata [Mon, 8 Nov 2004 19:45:20 +0000 (19:45 +0000)]
modulo-sched.c (create_partial_schedule, [...]): Make them static.
* modulo-sched.c (create_partial_schedule,
free_partial_schedule, reset_partial_schedule,
ps_add_node_check_conflicts, rotate_partial_schedule): Make
them static.
Paolo Carlini [Mon, 8 Nov 2004 17:55:54 +0000 (17:55 +0000)]
streambuf_iterator.h (class istreambuf_iterator): Consistently use _M_c to cache the current char...
2004-11-08 Paolo Carlini <pcarlini@suse.de>
* include/bits/streambuf_iterator.h (class istreambuf_iterator):
Consistently use _M_c to cache the current char, i.e., not only
when operator++(int) is involved; change _M_c to mutable.
(_M_get()): Always save the return value of _M_sbuf->sgetc() into
_M_c.
* testsuite/22_locale/time_get/get_monthname/char/1.cc: Fix
(long standing) typo.
* testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Likewise.
* testsuite/22_locale/time_get/get_weekday/char/1.cc: Likewise.
* testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Likewise.
Paolo Carlini [Mon, 8 Nov 2004 15:46:28 +0000 (15:46 +0000)]
istream.tcc (getline(char_type*, streamsize, char_type), [...]): Restore a generic version of the functions...
2004-11-08 Paolo Carlini <pcarlini@suse.de>
* include/bits/istream.tcc (getline(char_type*, streamsize,
char_type), ignore(streamsize), ignore(streamsize, int_type)):
Restore a generic version of the functions, not using the
protected members of basic_streambuf.
* include/std/std_istream.h (getline(char_type*, streamsize,
char_type), ignore(streamsize), ignore(streamsize, int_type)):
Declare optimized specializations for char and wchar_t.
* src/istream.cc: New file, define the latter.
* src/Makefile.am: Add.
* src/Makefile.in: Regenerate.
Andrew Pinski [Mon, 8 Nov 2004 04:42:36 +0000 (04:42 +0000)]
re PR target/18269 (-m64 -fPIC does not work on ppc-darwin)
2004-11-07 Andrew Pinski <pinskia@physics.uc.edu>
PR target/18269
* config/darwin.c (machopic_indirect_data_reference):
Call gen_macho_high and gen_macho_low instead of
checking the mode and calling gen_macho_high_di directly.
* config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
* config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns
to darwin.md.
(movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic,
load_macho_picbase, macho_low, macho_high): Removed.
(builtin_setjmp_receiver): Call gen_macho_high and
gen_macho_low instead of checking the mode and calling
gen_macho_high_di directly.
* config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant.
(movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st):
Moved from rs6000.md.
(macho_high): New expander.
(macho_high_si): Renamed version of macho_high from rs6000.md.
(macho_low): New expander.
(macho_low_si): Renamed version of macho_low from rs6000.md.
(load_macho_picbase): New expander.
(load_macho_picbase_si): Renamed version of load_macho_picbase
from rs6000.md.
(macho_correct_pic): New expander.
(macho_correct_pic_si): Renamed version of macho_correct_pic
from rs6000.md.