Roger Sayle [Thu, 20 Mar 2003 17:48:26 +0000 (17:48 +0000)]
fold-const.c (fold_mathfn_compare): New function to simplify comparisons against built-in math functions.
* fold-const.c (fold_mathfn_compare): New function to simplify
comparisons against built-in math functions. Fold comparisons
of sqrt against constants.
(fold): Call fold_mathfn_compare when appropriate.
Per Bothner [Thu, 20 Mar 2003 16:46:18 +0000 (16:46 +0000)]
Various cleanups to help compile server.
* cppinit.c (cpp_create_reader): Take extra hash_table* argument,
and pass that to _cpp_init_hashtable.
(cpp_read_main_file): Drop hash_table* argument; don't call
_cpp_init_hashtable.
* cpplib.h: Update declarations to match.
* c-opts.c (c_common_init_options): Pass ident_hash to
cpp_create_reader.
(c_common_post_options): Don't pass ident_hash to cpp_read_main_file.
* fix-header.c (read_scan_file): Likewise pass NULL table to
cpp_create_reader rather than cpp_read_main_file.
* cppfiles.c (cpp_rename_file): Generalized and renamed
to cpp_change_file.
* cpplib.h: Update declaration to match.
* c-opts.c (push_command_line_line, finish_options): Change
cpp_rename_file calls to cpp_change_file.
Michael Koch [Thu, 20 Mar 2003 11:14:35 +0000 (11:14 +0000)]
2003-03-20 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/FileChannelImpl.java
(address): Removed.
(map_address): New member variable.
(length): Make it package private.
(fd): Make it package private.
(buf): Make it package private.
(file_obj): Make it package private.
(FileChannelImpl): New constructor.
(nio_mmap_file): Use RawData instead of long.
(nio_munmap_file): Use RawData instead of long.
(nio_msync): Use RawData instead of long.
(implCloseChannel): New implementation using map_address.
(read): Reformated.
(map): Implemented.
(create_direct_mapped_buffer): Implemented, use RawData, throws
IOException.
(force): Use map_address instead of address.
* gnu/java/nio/MappedByteFileBuffer.java
(address): Removed.
(map_address): New member variable.
(MappedByteFileBuffer): Use map_address instead of address, reformated.
(several methods): Use map_address instead of address, replaced long
with RawData where appropriate.
* gnu/java/nio/natFileChannelImpl.cc
(nio_mmap_file): Replaced long with RawData.
(nio_munmap_file): Replaced long with RawData.
(nio_msync): Replaced long with RawData.
* gnu/java/nio/natMappedByteFileBuffer.cc
(several methods): Replaced long with RawData where appropriate.
Michael Koch [Thu, 20 Mar 2003 07:54:24 +0000 (07:54 +0000)]
2003-03-20 Michael Koch <konqueror@gmx.de>
* java/io/FileInputStream.java
(getChannel): New implementation.
* java/io/FileOutputStream.java
(ch): New member variable.
(getChannel): Implemented.
* java/io/RandomAccessFile.java
(RandomAccessFile): Throws FileNotFoundException instead of
IOException.
(getChannel): New method.
(ch): New member variable.
Nathanael Nerode [Wed, 19 Mar 2003 20:34:10 +0000 (20:34 +0000)]
c-common.h (c_dump_tree), [...]): Change return type from 'int' to 'bool'.
(gcc)
* c-common.h (c_dump_tree), c-dump.c (c_dump_tree),
langhooks-def.h (lhd_tree_dump_dump_tree),
langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree):
Change return type from 'int' to 'bool'. Replace 0 and 1 with
true and false in return statements.
(cp)
* dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change return
type from 'int' to 'bool'. Replace 0 and 1 with true and false in
return statements.
(java)
* lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
Replace 0 and 1 with true and false in return statements.
Ulrich Weigand [Wed, 19 Mar 2003 14:54:26 +0000 (14:54 +0000)]
s390.c (s390_preferred_reload_class): Do not force constants to the pool unless necessary.
* config/s390/s390.c (s390_preferred_reload_class): Do not
force constants to the pool unless necessary.
(s390_decompose_address): Prefer to use pointer as base,
not index register.
* config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from
Q alternative.
("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi",
"*movdf_64", "*movsf"): Add '?' to Q->Q alternatives.
("*extractqi", "*extracthi", "*zero_extendhisi2_31",
"*zero_extendqisi2_31", "*zero_extendqihi2_31",
"*adddi3_31", "*subdi3_31"): Do not set "type" attribute.
Jan Hubicka [Wed, 19 Mar 2003 12:51:28 +0000 (13:51 +0100)]
i386.h (machine_function): New fields use_fast_prologue_epilogue.
* i386.h (machine_function): New fields use_fast_prologue_epilogue.
* i386.c (use_fast_prologue_epilogue): Remove.
(ix86_frame): New field save_regs-using_mov;
(ix86_compute_frame_layout): Decide on fast prologues;
allocate saved registers in red zone.
(ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters.
Michael Koch [Wed, 19 Mar 2003 12:13:41 +0000 (12:13 +0000)]
2003-03-19 Michael Koch <konqueror@gmx.de>
* java/io/FileOutputStream.java
(FileOutputStream): New constructor, merged from classpath.
* java/io/FileWriter.java
(FileWriter): New constructor, merged from classpath.
re PR target/10062 (internal compiler error: in output_cbranch, at config/pa/pa.c: 5515)
PR 10062
* config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
* pa-protos.h (output_lbranch): New prototype.
* pa.c (compute_frame_size): Change size of the frame marker on the
64-bit ports to 48 bytes.
(pa_output_function_prologue): Document why SAVE_SP is set.
(hppa_expand_prologue): Save previous stack pointer into frame marker
on targets which use the hpux unwind library.
(output_cbranch): Use output_lbranch.
(output_lbranch): New function to output long unconditional branches.
* pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
(STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
64-bit ports.
* pa.md (jump): Use output_lbranch.
(allocate_stack): New expander for dynamic stack allocation.
Geoffrey Keating [Wed, 19 Mar 2003 03:23:44 +0000 (03:23 +0000)]
rs6000.c (rs6000_emit_prologue): Don't clone the result of machopic_function_base_name.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone
the result of machopic_function_base_name.
* config/darwin.c (machopic_function_base_name): Use a gc-allocated
string rather than a static array.
Geoffrey Keating [Tue, 18 Mar 2003 20:21:18 +0000 (20:21 +0000)]
Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies.
* Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies.
* gengtype.c: Include rtl.h.
(enum rtx_code): Don't define.
(rtx_format): Make declaration match rtl.h.
(rtx_next_new): Rename from rtx_next to avoid conflict. Change all
users.
(adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes.
* Makefile.in (gengtype.o): Update dependencies.
Jan Hubicka [Tue, 18 Mar 2003 18:24:07 +0000 (19:24 +0100)]
alias.c (rtx_equal_for_memref_p): Assume that X and Y has been canonicalized.
* alias.c (rtx_equal_for_memref_p): Assume that X and Y has been
canonicalized.
(memrefs_conflict_p): Likewise.
(addr_side_effect_eval): Canonicalize the constructed address.
Michael Koch [Tue, 18 Mar 2003 07:50:19 +0000 (07:50 +0000)]
BufferedOutputStream.java, [...]: More merges from classpath.
2003-03-18 Michael Koch <konqueror@gmx.de>
* java/io/BufferedOutputStream.java,
java/io/DataInput.java,
java/io/DataInputStream.java,
java/io/DataOutput.java,
java/io/Externalizable.java:
More merges from classpath.
Jason Merrill [Tue, 18 Mar 2003 04:36:03 +0000 (23:36 -0500)]
re PR c++/10091 ([parisc] ICE in cp_expr_size, at cp/cp-lang.c:307)
PR c++/10091
* expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
an unaligned member of TREE_ADDRESSABLE type.
* cp/typeck.c (build_class_member_access_expr): Compare
TYPE_MAIN_VARIANTs.
Roger Sayle [Tue, 18 Mar 2003 04:31:21 +0000 (04:31 +0000)]
decl.c (duplicate_decls): Use the new type when prototyping anticipated decls, even when the types match.
* decl.c (duplicate_decls): Use the new type when prototyping
anticipated decls, even when the types match. This defines the
exception list for the built-in function.
Jason Merrill [Tue, 18 Mar 2003 04:10:45 +0000 (23:10 -0500)]
re PR c++/10091 ([parisc] ICE in cp_expr_size, at cp/cp-lang.c:307)
PR c++/10091
* expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
an unaligned member of TREE_ADDRESSABLE type.
* cp/typeck.c (build_class_member_access_expr): Compare
TYPE_MAIN_VARIANTs.
Alan Modra [Tue, 18 Mar 2003 02:28:46 +0000 (02:28 +0000)]
linux64.h (MASK_PROFILE_KERNEL): Define.
* config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define.
(TARGET_PROFILE_KERNEL): Define.
(SUBTARGET_SWITCHES): Handle -mprofile-kernel.
(PROFILE_BEFORE_PROLOGUE): Don't define.
(PROFILE_KERNEL): Remove hacks.
* config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default.
(rs6000_stack_info): No need to save lr if just for profiling when
TARGET_KERNEL_PROFILE.
(output_profile_hook): Output nothing when TARGET_KERNEL_PROFILE.
(output_function_profiler): Localize label generation. Emit code
for kernel profiling.
* c-tree.h (struct lang_identifier): Remove error_locus field.
(IDENTIFIER_ERROR_LOCUS): Kill.
(record_function_scope_shadow): New prototype.
* c-typeck.c (build_external_ref): Don't complain if
decl is error_mark_node. When not at file scope, bind the
decl's local value to error_mark_node to suppress further
warnings, instead of setting IDENTIFIER_ERROR_LOCUS.
* c-decl.c (get_function_binding_level): New static function.
(record_function_scope_shadow): New exported function.
(c_make_fname_decl): Use get_function_binding_level.
PR libstdc++/9964
* include/bits/fstream.tcc (basic_filebuf::close):
Always close file, even when write fails.
* testsuite/27_io/filebuf_members.cc (test_07): New test.
Olivier Hainque [Mon, 17 Mar 2003 16:23:50 +0000 (17:23 +0100)]
function.c (assign_parms): For a struct value address passed as first argument...
* function.c (assign_parms): For a struct value address passed as
first argument, delay the function's result RTL setup code until
after the emission of parameter conversions.
Michael Koch [Mon, 17 Mar 2003 15:20:10 +0000 (15:20 +0000)]
2003-03-17 Michael Koch <konqueror@gmx.de>
* java/awt/Dialog.java
(Dialog): New constructor, changed implementations, added
documentation.
* java/awt/ScrollPaneAdjustable.java
(ScrollPaneAdjustable): Extends Object, implements Adjustable and
Serializable.
(serialVersionUID): New member variable.
(sp): New member variable.
(orientation): New member variable.
(value): New member variable.
(minimum): New member variable.
(maximum): New member variable.
(visibleAmount): New member variable.
(unitIncrement): New member variable.
(blockIncrement): New member variable.
(AdjustmentListener): New member variable.
(ScrollPaneAdjustable): New implementation.
(addAdjustmentListener): New method.
(removeAdjustmentListener): New method.
(getAdjustmentListeners): New method.
(getBlockIncrement): New method.
(getMaximum): New method.
(getMinimum): New method.
(getOrientation): New method.
(getUnitIncrement): New method.
(getValue): New method.
(getVisibleAmount): New method.
(setBlockIncrement): New method.
(setMaximum): Implemented.
(setMinimum): Implemented.
(setUnitIncrement): New method.
(setValue): New method.
(setVisibleAmount): Implemented.
(paramString): New stubbed method.
* java/awt/Window.java
(show): Call setVisible().
(hide): Call setVisible().
(processEvent): Add cases for WINDOW_GAINED_FOCUS, WINDOW_LOST_FOCUS
and WINDOW_STATE_CHANGED.
(processWindowFocusEvent): New method.
(processWindowStateEvent): New method.
(postEvent): Deprecated.
(applyResourceBundle): Deprecated.
* java/awt/datatransfer/DataFlavor.java
(DataFlavor): Doesn't thow ClassNotFoundException.
Neil Booth [Mon, 17 Mar 2003 06:41:06 +0000 (06:41 +0000)]
c-opts.c: Default TARGET_EBCDIC to 0 if not defined.
* c-opts.c: Default TARGET_EBCDIC to 0 if not defined.
(c_common_init): Set EBCDIC in cpp options.
* cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option,
not conditional compilation.
* cpplib.h (struct cpp_options): New entry EBCDIC.
Mark Mitchell [Mon, 17 Mar 2003 06:09:30 +0000 (06:09 +0000)]
re PR c++/8805 (compile time regression with many member variables)
PR c++/8805
* except.c (eh_region_u_cleanup): Add prev_try.
(expand_eh_region_end_cleanup): Set it.
(reachable_handlers): Use it to skip over cleanup blocks.
Stephane Carrez [Sun, 16 Mar 2003 21:26:04 +0000 (22:26 +0100)]
m68hc11.c (print_operand): Handle 'b' modifier for D register to specify the low part of it, aka B.
* config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier
for D register to specify the low part of it, aka B.
(m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement
the register if we are loading 1 or -1 to it; avoid using temp
register when moving X/Y to Y/X.
(m68hc11_gen_movqi): Likewise.
(m68hc11_check_z_replacement): Fix last insn setting for compare case.
Roger Sayle [Sun, 16 Mar 2003 13:54:23 +0000 (13:54 +0000)]
c-typeck.c (build_component_ref): Turn "for" into "do ..
* c-typeck.c (build_component_ref): Turn "for" into "do .. while"
to avoid "may be used uninitialized" warning on ia64-hpux.
* config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes.