Daniel Berlin [Sat, 16 Jul 2005 18:56:53 +0000 (18:56 +0000)]
Makefile.in: Added rules for ipa-pure-const.c...
2005-07-16 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
ipa-type-escape.h, tree-promote-statics.c
* ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
tree-promote-statics.c: new files.
* alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
int nonlocal_set_p, mark_constant_function): Deleted.
(rest_of_handle_cfg): Removed call to mark_constant_function.
(nonoverlapping_component_refs_p): Added calls to support
type based aliasing.
* tree-ssa-alias.c (may_alias_p,
compute_flow_insensitive_aliasing): Ditto.
* calls.c (flags_from_decl_or_type): Removed reference to
cgraph_rtl_info.
(flags_from_decl_or_type): Support ECF_POINTER_NO_CAPTURE attribute.
* c-common.c (handle_pointer_no_capture_attribute): New function
and added pointer_no_capture attribute.
* c-typeck.c (convert_arguments): Make builtins tolerant of having
too many arguments. This is necessary for Spec 2000.
* cgraph.h (const_function, pure_function): Removed.
* common.opt: Added "fipa-pure-const", "fipa-reference",
"fipa-type-escape", and "ftree-promote-static".
* opts.c: Ditto.
* passes.c: Added ipa and tree-promote-statics passes.
* timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
* tree.h: Support ECF_POINTER_NO_CAPTURE attribute.
* tree-dfa.c (referenced_var_lookup_if_exists): New function.
* tree-flow.h: Added exposed sra calls and addition of
reference_vars_info field for FUNCTION_DECLS.
* tree-pass.h: Added passes.
* tree-sra.c: (sra_init_cache): New function.
(sra_insert_before, sra_insert_after) Made public.
(type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
and made public.
* tree-ssa-alias.c (dump_alias_stats): Added stats for type based
aliasing. (may_alias_p): Added code to use type escape analysis to
improve alias sets.
* tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
code to prune clobbers of static variables based on information
produced in ipa-reference pass. Changed call clobbering so that
statics are not marked as clobbered if the call does not clobber
them.
2005-07-16 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* gcc.dg/tree-ssa/ssa-dce-2.c: Changed dg-options to run at -O2
since pure const detection cannot run at -O1 in c compiler.
* gcc.dg/tree-ssa/20030714-1.c Changed scanning patterns because we
can now optimize this case properly.
* gcc.dg/tree-ssa/sra-2.c: Changed to -O3 and removed xfail
because we now pass.
* gcc.dg/vect/vect-92.c: Removed out of bounds array access.
Scott Gilbertson [Fri, 15 Jul 2005 16:07:18 +0000 (16:07 +0000)]
XCanvasPeer.java (attributes): New field.
2005-07-15 Scott Gilbertson <scottg@mantatest.com>
* gnu/awt/xlib/XCanvasPeer.java (attributes): New field.
(eventMask): New field.
(XCanvasPeer(Component)): Use attributes field.
(setBackground): Implemented.
(setEventMask): Process mask only if changed.
* gnu/awt/xlib/XEventLoop.java (class): Iplement Runnable.
(eventLoopThread): New field.
(XEventLoop(Display,EventQueue)): Start eventLoopThread.
(interrupt): Removed.
(run): New method.
* gnu/awt/xlib/XEventQueue.java (getNextEvent): Process Container
and Component events.
* gnu/awt/xlib/XFramePeer.java (processingConfigureNotify): New
field.
(configureNotify): Set and clear processingConfigureNotify.
(setBounds): Process only if processingConfigureNotify is false.
(toBack): Implemented.
(toFront): Implemented.
* gnu/awt/xlib/XGraphics.java (setColor): Ignore null color.
* gnu/awt/xlib/XGraphicsConfiguration.java (getPixel): Ignore null
color.
* gnu/awt/xlib/XToolkit.java (nativeQueueEmpty): Always return true.
(wakeNativeQueue): Do nothing.
(iterateNativeQueue): Do queue.wait if blocking.
* gnu/gcj/xlib/Font.java (loadFont): New method.
(loadFontImpl): Renamed native method, was loadFont.
* gnu/gcj/xlib/Window.java (toFront): New method.
(toBack): New method.
* gnu/gcj/xlib/natFont.cc (loadFontImpl): Renamed method, was
loadFont.
* gnu/gcj/xlib/natWindow.cc (toBack): New method.
(toFront): New method.
* gnu/gcj/xlib/natXAnyEvent.cc (loadNext): Removed timeout.
Daniel Berlin [Fri, 15 Jul 2005 15:53:55 +0000 (15:53 +0000)]
re PR tree-optimization/22376 (PTA is slow on a silly unrealistic test case)
2005-07-13 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22376
* tree-ssa-structalias.c (build_constraint_graph): We really meant
special var here.
(need_to_solve): New function.
(compute_points_to_sets): Use it.
Paolo Carlini [Fri, 15 Jul 2005 00:05:44 +0000 (00:05 +0000)]
PR libstdc++/21193 (float, double, long double)
2005-07-14 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/21193 (float, double, long double)
* include/tr1/functional (hash<float>, hash<double>):
Reimplement exploiting the Fnv_hash<>::hash helper.
(hash<long double>): Reimplement using frexp (in this
case, due to random padding bits, the former approach
is not generally viable).
Jakub Jelinek [Thu, 14 Jul 2005 10:12:17 +0000 (12:12 +0200)]
gfortran.h (MAX_ERROR_MESSAGE): Remove.
* gfortran.h (MAX_ERROR_MESSAGE): Remove.
(gfc_error_buf): Add allocated and index fields. Change message
field from array to a pointer.
* error.c (use_warning_buffer, error_ptr, warning_ptr): Remove.
(cur_error_buffer): New variable.
(error_char): Use cur_error_buffer->{message,index} instead of
{warning,error}_{buffer.message,ptr}. Reallocate message buffer
if too small.
(gfc_warning, gfc_notify_std, gfc_error, gfc_error_now): Setup
cur_error_buffer and its index rather than {warning,error}_ptr
and use_warning_buffer.
(gfc_warning_check, gfc_error_check): Don't print anything if
message is NULL.
(gfc_push_error): Allocate saved message with xstrdup.
(gfc_pop_error): Free saved message with gfc_free.
(gfc_free_error): New function.
* primary.c (match_complex_constant): Call gfc_free_error if
gfc_pop_error will not be called.
* match.c (gfc_match_st_function): Likewise.
Richard Guenther [Thu, 14 Jul 2005 07:46:23 +0000 (07:46 +0000)]
re PR middle-end/22347 (Return value register not correctly computed for indirect function call)
2005-07-14 Richard Guenther <rguenther@suse.de>
PR middle-end/22347
* config/i386/i386-protos.h (ix86_function_value): Change
prototype to match new target hook.
* config/i386/i386.c (ix86_value_regno): Change prototype
to take extra type argument.
(TARGET_FUNCTION_VALUE): Define.
(ix86_function_ok_for_sibcall): Pass extra argument to
ix86_value_regno, check return slot rtx for exact match.
(ix86_function_value): Take extra parameter. Dispatch to
ix86_value_regno with fndecl/fntype as provided.
(ix86_value_regno): Handle extra type argument.
* config/i386/i386.h (FUNCTION_VALUE): No longer define.
* testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-7.c: New testcase.
Richard Guenther [Thu, 14 Jul 2005 07:39:56 +0000 (07:39 +0000)]
Makefile.in (explow.o, [...]): Depend on target.h.
2005-07-14 Richard Guenther <rguenther@suse.de>
* Makefile.in (explow.o, reg-stack.o): Depend on target.h.
* calls.c (expand_call): Pass fntype to hard_function_value.
(emit_library_call_value_1): Likewise.
* explow.c: Include target.h.
(hard_function_value): Take extra argument, the fntype.
Use new target hook for function_value.
* expr.h (hard_function_value): Change prototype.
* function.c (aggregate_value_p): Pass 0 as fntype to
hard_function_value.
(assign_parms): Use new target hook for function_value.
Pass 0 as fntype to hard_function_value.
(expand_function_end): Likewise.
* reg-stack.c: Include target.h.
(stack_result): Use new target hook for function_value.
* target-def.h: New target hook function_value.
* target.h: Likewise.
* targhooks.c (default_function_value): New function.
* targhooks.h (default_function_value): Declare.
Paul Thomas [Thu, 14 Jul 2005 06:21:59 +0000 (06:21 +0000)]
[multiple changes]
2005-07-12 Paul Thomas <pault@gcc.gnu.org>
PR libfortran/16435
* transfer.c (formatted_transfer): Correct the problems
with X- and T-editting that caused TLs followed by TRs
to overwrite data, which caused NIST FM908.FOR to fail
on many tests.
(data_transfer_init): Zero X- and T-editting counters at
the start of formatted IO.
* write.c (write_x): Write specified number of skips with
specified number of spaces at the end.
s390.c: (s390_cc_modes_compatible): Move before "s390_emit_compare".
2005-07-13 Adrian Strae�tling <straetling@de.ibm.com>
* config/s390/s390.c: (s390_cc_modes_compatible): Move before
"s390_emit_compare". Add handling of CCZ1mode.
(s390_canonicalize_comparison): Simplify cascaded EQ, NE.
(390_emit_compare): Use "s390_cc_modes_compatible" for mode
checking.
(s390_branch_condition_mask): Add CCZ1mode handling.
* config/s390/s390.md: ("seq", "*seq"): New pattern.
("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
Use CCZ1mode instead of CCZmode.
* config/s390/s390-modes.def: Add CCZ1mode. Comment new mode.
Paul Thomas [Wed, 13 Jul 2005 18:43:14 +0000 (18:43 +0000)]
[multiple changes]
2005-07-13 Paul Thomas <pault@gcc.gnu.org>
* io/read.c (read_complex): Prevent X formatting during reads
from going beyond EOR to fix NIST fm908.FOR failure.
* io/list_read.c (read_complex): Allow complex data in list-
directed reads to have eols either side of the comma to
fix NIST FM906.FOR failure.
Jeff Law [Wed, 13 Jul 2005 16:31:23 +0000 (10:31 -0600)]
fold-const.c (fold_binary): When comparing two simple ADDR_EXPR expressions...
* fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
expressions, test their _DECL operands for pointer equality rather
than using operand_equal_p.
* libgcov.c (create_file_directory): Defined only if
TARGET_POSIX_IO is defined.
(gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
is defined.
re PR rtl-optimization/20376 (The missed-optimization of general induction variables in the new rtl-level loop optimizer cause performance degradation.)
PR rtl-optimization/20376
* toplev.c (process_options): Enable -fweb and -frename-registers when
unrolling.
* doc/invoke.texi: Update the information about when -fweb and
-frename-registers are enabled.
Daniel Berlin [Wed, 13 Jul 2005 02:25:48 +0000 (02:25 +0000)]
re PR tree-optimization/22422 (ICE in first_vi_for_offset, at tree-ssa-structalias.c:2843)
2005-07-12 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22422
* tree-ssa-structalias.c (struct variable_info): Add flag for
special vars.
(get_varinfo): Now a static function.
(new_varinfo): init has_union and is_special_var to false.
(solution_set_add): Check has_union.
(do_da_constraint): Move temporary variable so it gets reset
properly.
Also check for special variable.
(do_ds_constraint): Ditto.
(do_sd_constraint): Ditto.
(do_structure_copy): Check for special variable.
(find_func_aliases): Ditto.
(init_base_vars): Set special vars properly.
FieldCommandSet.java: Implemented the Field CommandSet.
* gnu/classpath/jdwp/processor/FieldCommandSet.java:
Implemented the Field CommandSet.
* gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.java:
Implemented the InterfaceType CommandSet.
Thomas Koenig [Tue, 12 Jul 2005 19:52:19 +0000 (19:52 +0000)]
io/unix.c: Add member special_file to type unix_stream.
2005-07-12 Thomas Koenig <Thomas.Koenig@online.de>
io/unix.c: Add member special_file to type unix_stream.
(fd_truncate): Don't call ftruncate or chsize if
s refers to a special file.
(fd_to_stream): initialize s->special_file.
2005-07-12 Thomas Koenig <Thomas.Koenig@online.de>
Andrew Pinski [Tue, 12 Jul 2005 17:00:00 +0000 (17:00 +0000)]
re PR tree-optimization/22335 (DOM creates mis-matched types)
2005-07-12 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22335
* tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
requiring a cast in a non RHS of modify_expr. Add a cast when required.
(lookup_avail_expr): Use constant_boolean_node instead
of boolean_false_node/boolean_true_node.