Per Bothner [Wed, 3 Mar 2004 23:50:03 +0000 (15:50 -0800)]
Channels.java (newInputStream, [...]): Optimize when argument is a FileChannelImpl.
* java/nio/channels/Channels.java (newInputStream, newOutputStream):
Optimize when argument is a FileChannelImpl.
(newInputStream(FileChannelImpl), newOutputStream(FileChannelImpl)):
New native methods.
* java/nio/channels/natChannels.cc: New file for new native methods.
* Makefile.am: Update accordingly.
Mostafa Hagog [Wed, 3 Mar 2004 16:32:45 +0000 (16:32 +0000)]
common.opt: Add description of the new -fgcse-after-reload flag.
2004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
* common.opt: Add description of the new -fgcse-after-reload flag.
* flags.h (flag_gcse_after_reload): Declaration of global variable.
* gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
is_jump_table_basic_block, bb_has_well_behaved_predecessors,
get_bb_avail_insn, hash_scan_set_after_reload,
compute_hash_table_after_reload, eliminate_partially_redundant_loads,
gcse_after_reload, get_bb_avail_insn): New functions to implement
gcse-after-reload.
(gcse_after_reload_main): New function, the main entry point to
gcse-after-reload.
* rtl.h (gcse_after_reload_main): Declaration of the new function.
* opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
* params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
the gcse after reload optimization.
* params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
parameters.
* doc/invoke.texi: Documentation for the new flag gcse-after-reload.
* config/mips/mips.h (MASK_FIX_SB1): Bump.
(MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
(TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
* config/mips/mips.c (mips_output_division): Fill the branch delay
slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to
TARGET_FIX_R4400.
(mips_output_division): Adjust accordingly.
(override_options): Make -march=r4400 imply -mfix-r4400 by default.
* doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
Co-Authored-By: Richard Sandiford <rsandifo@redhat.com>
From-SVN: r78825
coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
* coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
* optabs.c (prepare_cmp_insn): Force trapping memories to registers
before the compare, if flag_non_call_exceptions.
* g++.dg/other/profile1.C: New.
re PR middle-end/11767 (different code behaviour with -fnon-call-exceptions -fprofile-arcs)
PR middle-end/11767
* coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
* optabs.c (prepare_cmp_insn): Force trapping memories to registers
before the compare, if flag_non_call_exceptions.
* g++.dg/other/profile1.C: New.
re PR middle-end/14327 (-O0 -fdefer-pop generates wrong code)
PR middle-end/14327
* stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
emitting the label, not after.
* gcc.c-torture/execute/20040302-1.c: New.
Stephane Carrez [Tue, 2 Mar 2004 22:40:57 +0000 (23:40 +0100)]
m68hc11.c (m68hc11_addr_mode): New variable.
* config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
(m68hc11_mov_addr_mode): Likewise.
(m68hc11_override_options): Initialize them based on target.
(register_indirect_p): Allow a MEM for indirect addressing modes and
use flags to control what is allowed.
(m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
supported addressing modes.
(m68hc11_register_indirect_p): Use m68hc11_addr_mode.
(go_if_legitimate_address_internal): Likewise.
(m68hc11_indirect_p): Likewise and check the mode.
(print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
Paolo Carlini [Tue, 2 Mar 2004 22:25:51 +0000 (22:25 +0000)]
locale_facets.tcc (money_get<>::_M_extract): Reorganize a bit the main parsing loop...
2004-03-02 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (money_get<>::_M_extract):
Reorganize a bit the main parsing loop, thus early detecting
an empty value component.
* testsuite/22_locale/money_get/get/char/16.cc: New.
* testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
Stephane Carrez [Tue, 2 Mar 2004 22:16:15 +0000 (23:16 +0100)]
m68hc11.md (move peephole2): New peepholes to optimize sequences of moves.
* config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
sequences of moves.
(add peepholes): New peepholes to optimize sequences adding small
constants.
(bset peepholes): New peepholes to transform an OR in a bset form
(bclr peepholes): Likewise for bclr form.
(cmp peepholes): New peepholes to avoid register copies when comparing.
Stephane Carrez [Tue, 2 Mar 2004 21:06:24 +0000 (22:06 +0100)]
m68hc11.md (SOFT_TMP_REGNUM): Define.
* config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
(SOFT_XY_REGNUM): Define.
(cmp split): Use the above instead of hard coded numbers.
(8-bit op split): No need to check the mode; allow Q_REG.
(ashift split): Adjust the first operand if it uses the SP and we
are pushing the shifted value.
(plus shift split): Fix when a source is in register D+X.
("doloop_end"): Pass dummy arguments to gen_rtx_NE.
Arnaud Charlet [Tue, 2 Mar 2004 13:50:15 +0000 (14:50 +0100)]
[multiple changes]
2004-03-02 Emmanuel Briot <briot@act-europe.fr>
* ali.adb (Read_Instantiation_Instance): Do not modify the
current_file_num when reading information about instantiations, since
this corrupts files in later references.
2004-03-02 Vincent Celier <celier@gnat.com>
* bcheck.adb (Check_Consistency): Get the full path of an ALI file
before checking if it is read-only.
* bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
of SRC_DIRS and eliminate duplicates.
* gprcmd.adb: Replace command "path" with command "path_sep" to return
the path separator.
(Usage): Document path_sep
* Makefile.generic: For Ada and GNU C++ cases, link directly with the
C++ compiler. No need for a script.
Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
subst.
* prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
where there are Ada sources.
(Set_Ada_Paths): Only add to the include path the source dirs of project
with Ada sources.
(Add_To_Path): Add the Display_Values of the directories, not their
Values.
* prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
data.
* prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
is not No_Name.
(Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
Value is canonicalized.
(Language_Independent_Check): Do not copy Value to Display_Value when
canonicalizing Value.
* prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
path to find limited with cycles.
(Parse_Single_Project): Use canonical cased path to find the end of a
with cycle.
2004-03-02 Ed Schonberg <schonberg@gnat.com>
* sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
and not a child unit.
* sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
appear in a with_clause.
* decl.c (gnat_to_gnu_type): If entity is a generic type, which can
only happen in type_annotate mode, do not try to elaborate it.
* exp_util.adb (Force_Evaluation): If expression is a selected
component on the left of an assignment, use a renaming rather than a
temporary to remove side effects.
* freeze.adb (Freeze_Entity): Do not freeze a global entity within an
inlined instance body, which is analyzed before the end of the
enclosing scope.
2004-03-02 Robert Dewar <dewar@gnat.com>
* par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
sem_ch4.adb: Use new feature for substitution of keywords in VMS
* errout.ads, errout.adb: Implement new circuit for substitution of
keywords in VMS.
* sem_case.adb (Analyze_Choices): Place message properly when case is
a subtype reference rather than an explicit range.
* sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
Kazu Hirata [Tue, 2 Mar 2004 05:56:27 +0000 (05:56 +0000)]
h8300.md (pushqi1_h8300hs): Rename to pushqi1_h8300hs_advanced.
* config/h8300/h8300.md (pushqi1_h8300hs): Rename to
pushqi1_h8300hs_advanced. Adjust its caller.
(pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
Adjust its caller.
Mark Mitchell [Tue, 2 Mar 2004 02:06:18 +0000 (02:06 +0000)]
re PR c++/14360 (Overeager argument dependent name lookup)
PR c++/14360
* parser.c (cp_parser_postfix_expression): Do not perform Koenig
lookup if ordinary name-lookup finds a non-function.
* pt.c (tsubst_copy_and_build): Likewise.
PR c++/14361
* parser.c (cp_parser_late_parsing_default_args): Check that there
are no extra tokens after the end of the default-argument
expression.
PR c++/14360
* g++.old-deja/g++.ns/koenig5.C: Remove some error markers.
PR c++/14361
* g++.dg/parse/defarg7.C: New test.
PR c++/14359
* g++.dg/template/friend26.C: New test.
Mark Mitchell [Mon, 1 Mar 2004 20:38:31 +0000 (20:38 +0000)]
re PR c++/14324 (Multiple static definitions are not unique)
PR c++/14324
* lex.c (retrofit_lang_decl): Treat entities with no linkage as
having C++ linkage for name-mangling purposes.
PR c++/14260
* parser.c (cp_parser_direct_declarator): Recognize constructor
declarators that use a template-id to name the class being
constructed.
PR c++/14337
* pt.c (tsubst_qualified_id): Handle dependent qualifying scopes.
(tsubst_expr): Do not call tsubst_copy, even when
processing_template_decl.
PR c++/14324
* g++.dg/abi/mangle21.C: New test.
PR c++/14260
* g++.dg/parse/constructor2.C: New test.
PR c++/14337
* g++.dg/template/sfinae1.C: New test.
Jeff Law [Mon, 1 Mar 2004 19:18:01 +0000 (12:18 -0700)]
fold-const.c (fold): An equality comparison of a non-weak object against zero has a known result.
* fold-const.c (fold): An equality comparison of a non-weak object
against zero has a known result. Similarly an equality comparison
of the address of two non-weak, unaliased symbols has a known result.
* ggc-page.c (struct page_entry): New field PREV.
(ggc_alloc): Update PREV field appropriately.
(sweep_pages): Likewise.
(ggc_free): Likewise. Use PREV field rather than loop to
improve ggc_free performance.
cp/
* init.c (build_vec_delete_1): Convert 2nd argument to NE_EXPR to
the proper type.
mips.c (mips_output_division): Use the division instruction to fill the delay slot of a zero check.
* config/mips/mips.c (mips_output_division): Use the division
instruction to fill the delay slot of a zero check.
(mips_idiv_insns): Adjust accordingly.
Paolo Carlini [Mon, 1 Mar 2004 10:31:33 +0000 (10:31 +0000)]
locale_facets.tcc (num_get<>::_M_extract_float): Also when parsing exponent sign, first look for thousands_sep and decimal_point...
2004-03-01 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
Also when parsing exponent sign, first look for thousands_sep
and decimal_point; tweak a bit.
* testsuite/22_locale/num_get/get/char/15.cc: New.
* testsuite/22_locale/num_get/get/wchar_t/15.cc: New.
* include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
num_get<>::_M_extract_int): Reorder some conditionals.
2004-03-01 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (money_get<>::_M_extract):
Consistently with numpunct, enforce the requirements in
22.2.6.3, p3 for the thousands separators; tweak a bit.
* testsuite/22_locale/money_get/get/char/15.cc: New.
* testsuite/22_locale/money_get/get/wchar_t/15.cc: New.
Paolo Bonzini [Mon, 1 Mar 2004 09:42:10 +0000 (09:42 +0000)]
combine.c (try_combine): Do not refer to is_replaced.
2004-03-01 Paolo Bonzini <bonzini@gnu.org>
* combine.c (try_combine): Do not refer to is_replaced.
(gen_lowpart_for_combine): Perverse subregs now have a
more politically correct name.
* cse.c (cse_insn): Likewise.
* jump.c: Fix bogus reference to delete_insn.
Mark Mitchell [Sun, 29 Feb 2004 23:43:29 +0000 (23:43 +0000)]
re PR middle-end/13448 (gcc 3.3.2, internal error when -O3 and trying to modify function const arg)
PR middle-end/13448
* c-tree.h (readonly_warning): Rename to ...
(readonly_error): ... this.
* c-typeck.c (build_unary_op): Adjust accordingly.
(readonly_warning): Rename to ...
(readonly_error): ... this and issue errors, not warnings.
(build_modify_expr): Call readonly_error, not readonly_warning.
(c_expand_asm_operands): Likewise.
* tree-inline.c (optimize_inline_calls): Do not inline functions
after errors have occurred.
PR middle-end/13448
* gcc.dg/inline-5.c: New test.
* gcc.dg/always-inline.c: Split out tests into ...
* gcc.dg/always-inline2.c: ... this and ...
* gcc.dg/always-inline3.c: ... this.
Mark Mitchell [Sun, 29 Feb 2004 23:10:43 +0000 (23:10 +0000)]
re PR debug/12103 (-g only crash (segfault) with a forward declared class used as a template parameter)
PR debug/12103
* class.c (update_vtable_entry_for_fn): Do not go through
covariance machinery if the type returned by an overrider is the
same as the original.
Nathanael Nerode [Sun, 29 Feb 2004 20:22:40 +0000 (20:22 +0000)]
configure.in: Convert to autoconf 2.57, gratuitous stylistic cleanup, rename to configure.ac.
* configure.in: Convert to autoconf 2.57, gratuitous stylistic
cleanup, rename to configure.ac.
* configure.ac: Renamed from configure.in.
* config.h.in: Rebuilt with autoheader 2.57.
* configure: Rebuilt with autoconf 2.57
* README: Update to reflect rename of configure.in to configure.ac.
Per Bothner [Sun, 29 Feb 2004 19:14:20 +0000 (11:14 -0800)]
natPosixProcess.cc (startProcess): Implement standard streams using FileChannelImpl, not FileDescriptor.
* java/lang/natPosixProcess.cc (startProcess): Implement standard
streams using FileChannelImpl, not FileDescriptor.
* java/lang/natWin32Process.cc (startProcess): Likewise.
Per Bothner [Sun, 29 Feb 2004 19:12:45 +0000 (11:12 -0800)]
MappedByteBuffer.java: (forceImpl...
* java/nio/MappedByteBuffer.java: (forceImpl, isLoadedImpl, loadImpl,
unmapImpl): New dummy methods, to be overridden by subclass.
(finalize, isLoaded, load, force): New methods.
* java/nio/MappedByteBufferImpl.java: More-or-less rewrite.
Now works, at least for read mapping.