gcc/
* c-opts.c (c_common_post_options): Don't clear
flag_inline_functions.
* dojump.c (clear_pending_stack_adjust): Remove check on
flag_inline_functions, it's always true.
* config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
that can never trigger.
* config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
flag_inline_trees, now that flag_inline_functions is never
cleared.
* config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
flag_inline_functions at optimization levels greater than
or equal to 3. This is already done by default.
Kazu Hirata [Wed, 24 Nov 2004 19:22:48 +0000 (19:22 +0000)]
tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx instead to find the PHI argument.
* tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx
instead to find the PHI argument. Do not take I as an
argument.
(eliminate_phi): Adjust the call to eliminate_build. Do not
take I as an argument.
(rewrite_trees): Adjust the call to eliminate_phi.
* optabs.h (force_expand_binop): Declare.
* optabs.c (force_expand_binop): Export.
* stmt.c (shift_return_value): Delete.
(expand_return): Don't call it.
* expr.h (shift_return_value): Declare.
* calls.c (shift_returned_value): Delete in favor of...
(shift_return_value): ...this new function. Leave the caller to check
for non-BLKmode values passed in the msb of a register. Take said mode
and a shift direction as argument. Operate on the hard function value,
not a pseudo.
(expand_call): Adjust accordingly.
* function.c (expand_function_start): If a non-BLKmode return value
is padded at the last significant end of the return register, use the
return value's natural mode for the DECL_RESULT, not the mode of the
padded register.
(expand_function_end): Shift the same sort of return values left by
the appropriate amount.
Mark Mitchell [Wed, 24 Nov 2004 17:57:00 +0000 (17:57 +0000)]
re PR c++/18530 (Bogus warnings about shadowed variables __ct, __dt)
PR c++/18530
* cp-tree.h (CTOR_NAME): Remove.
(DTOR_NAME): Remove.
* decl.c (initialize_predefined_identifiers): Add spaces to the
end of constructor and destructor names.
testsuite
* gcc.dg/cpp/isysroot-1.c: New test.
* gcc.dg/cpp/usr/include/stdio.h: New file.
* gcc.dg/cpp/isysroot-2.c: New test.
* gcc.dg/cpp/System/Library/Framework/Carbon.framework/Headers/Carbon.h:
New file.
Nathan Myers [Wed, 24 Nov 2004 17:01:22 +0000 (17:01 +0000)]
2004-11-24 Nathan Myers <ncm@cantrip.org>
* include/bits/streambuf_iterator.h
(istreambuf_iterator<>::operator++(), operator++(int)): Don't
check unnecessarily the return value of _M_sbuf->sbumpc().
David Edelsohn [Wed, 24 Nov 2004 16:42:41 +0000 (16:42 +0000)]
rs6000.c (rs6000_return_in_memory): Allow Altivec vector modes without ALTIVEC_ABI.
* config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec
vector modes without ALTIVEC_ABI. Use GCC vector instead of
synthetic vector.
(rs6000_pass_by_reference): Split conditional into pieces. Use
GCC vector instead of synthetic vector.
Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
From-SVN: r91175
Roger Sayle [Wed, 24 Nov 2004 14:00:38 +0000 (14:00 +0000)]
re PR preprocessor/15824 (uchar redefinition warnings in libcpp)
PR preprocessor/15824
* configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h>
directly, instead of the non-existant "system.h" and "ansidecl.h".
* configure: Regenerate.
Steven Bosscher [Wed, 24 Nov 2004 11:41:38 +0000 (11:41 +0000)]
expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
gcc/
* expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR
and LABELED_BLOCK_EXPR.
* gimplify.c (gimplify_labeled_block_expr): Remove.
(gimplify_exit_block_expr): Remove.
(gimplify_expr): Don't call them.
* tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR
and LABELED_BLOCK_EXPR.
(estimate_num_insns_1): Likewise.
(walk_tree): Likewise.
* tree-pretty-print.c (dump_generic_node): Don't handle
EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
* tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def.
(LABELED_BLOCK_EXPR): Likewise.
* tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h.
(LABELED_BLOCK_BODY): Likewise.
(EXIT_BLOCK_LABELED_BLOCK): Likewise.
(EXIT_BLOCK_RETURN): Removed.
java/
* java-gimplify.c (java_gimplify_labeled_block_expr): New function.
(java_gimplify_exit_block_expr): New function.
(java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
LABELED_BLOCK_EXPR.
* java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
(EXIT_BLOCK_EXPR): Likewise.
* java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
(LABELED_BLOCK_BODY): Likewise.
(EXIT_BLOCK_LABELED_BLOCK): Likewise.
* jcf-write.c (generate_bytecode_insns): Don't handle the unused
EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of
TREE_OPERAND.
* lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
(java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the
second operand of EXIT_BLOCK_EXPR.
* parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
TREE_OPERAND.
(build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
Steven Bosscher [Wed, 24 Nov 2004 11:32:24 +0000 (11:32 +0000)]
cfgrtl.c (rtl_delete_block): Fix comment.
* cfgrtl.c (rtl_delete_block): Fix comment.
* emit-rtl.c (remove_unnecessary_notes): Die if we see BLOCK_BEG
or BLOCK_END insn notes.
* jump.c (squeeze_notes): Likewise.
* haifa-sched.c (reemit_notes): Don't "re-emit" EH_REGION_BEG and
EH_REGION_END notes, we never have them to begin with.
* sched-deps.c (sched_analyze_insn): When updating loop notes,
verify that we have indeed only recorded loop notes.
(sched_analyze): Die if we see EH_REGION_BEG or EH_REGION_END notes.
Only record loop notes.
* cfgexpand.c (tree_expand_cfg): Fix comment.
* passes.c (rest_of_compilation): Don't do a second call to
convert_from_eh_region_ranges from here, it's already called
from cfgexpand.c.
* except.c (resolve_fixup_regions): Remove.
(remove_fixup_regions): Remove.
(convert_from_eh_region_ranges_1): Remove.
(convert_from_eh_region_ranges): Remove the case where EH is
not already lowered at the tree level. We always lower there.
* java/nio/DirectByteBufferImpl.java
(ReadOnly): New inner subclass.
(ReadWrite): New inner subclass.
(owner): Made final and private.
(address): Made final.
(DirectByteBufferImpl(int)): New constructor.
(DirectByteBufferImpl(Object,RawData,int,int,int)): New constructor.
(DirectByteBufferImpl(Object,RawData,int,int,int,boolean)): Removed.
(allocate): Modified to instantiate ReadWrite subclass.
(finalize): Fixed to only free the buffer, if we own it.
(put): Removed read-only check.
(slice, duplicate): Modified to instantiate appropriate subclass.
(isReadOnly): Removed.
* java/nio/MappedByteBufferImpl.java
(slice, duplicate): Modified to instantiate appropriate
DirectByteBufferImpl subclass.
Michael Koch [Wed, 24 Nov 2004 10:44:18 +0000 (10:44 +0000)]
NIOServerSocket.java: Added email to @author tag.
2004-11-24 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/NIOServerSocket.java: Added email to @author tag.
* java/nio/DirectByteBufferImpl.java:
Moved native methods to java.nio.VMDirectByteBuffer class.
* java/nio/MappedByteBufferImpl.java:
Use native methods from java.nio.VMDirectByteBuffer class.
* java/nio/VMDirectByteBuffer.java: New file,
* java/nio/natDirectByteBufferImpl.cc:
Moved all methods into java.nio.VMDirectByteBuffer class.
* java/nio/channels/spi/AbstractSelectableChannel.java
(register): Only re-use valid keys.
* Makefile.am: Added java/nio/VMDirectByteBuffer.java.
* Makefile.in: Regenerated.
* config.gcc: Use t-slibgcc-elf to build libgcc_s.so on
m32r*linux.
* config/m32r/t-linux (SHLIB_MAPFILES): Override to use
m32r/libgcc-glibc.ver.
* config/m32r/libgcc-glibc.ver: Add New file.
Paolo Bonzini [Wed, 24 Nov 2004 10:06:54 +0000 (10:06 +0000)]
re PR c++/16882 (overloading confused by const vector arguments)
2004-11-24 Paolo Bonzini <bonzini@gnu.org>
PR c++/16882
* tree.c (make_vector_type): Move qualifiers to the vector type,
use the inner type's main variant and build a main variant for
the vector type if necessary.
(type_hash_eq): Check a vector type's TYPE_VECTOR_SUBPARTS.
cp:
2004-11-24 Paolo Bonzini <bonzini@gnu.org>
PR c++/16882
* call.c (standard_conversion): Move check for conversions between
vector pointers...
* typeck.c (ptr_reasonably_similar): ... here.
testsuite:
2004-11-24 Paolo Bonzini <bonzini@gnu.org>
* rtl.h (validate_subreg): Declare.
* emit-rtl.c (validate_subreg): New.
(gen_rtx_SUBREG): Use it.
* simplify-rtx.c (simplify_subreg): Likewise.
(simplify_gen_subreg): Likewise. Remove duplicate asserts.
* expr.c (emit_move_insn_1): Tidy complex move code. Use memory
fallback whenever gen_realpart/gen_imagpart would not be able to
create SUBREGs.
Geoffrey Keating [Tue, 23 Nov 2004 22:45:53 +0000 (22:45 +0000)]
mkfixinc.sh: Check error code from 'cat'.
* mkfixinc.sh: Check error code from 'cat'. Don't try running
built fixincl program.
* mkheaders.in: Use @SHELL@ rather than ${SHELL} to avoid picking
up csh from user.
Dorit Naishlos [Tue, 23 Nov 2004 19:43:11 +0000 (19:43 +0000)]
tree-vectorizer.c (vect_analyze_operations): Don't vectorize if the vectorization factor is greater than the iteration count.
* tree-vectorizer.c (vect_analyze_operations): Don't vectorize if
the vectorization factor is greater than the iteration count.
(vect_gen_niters_for_prolog_loop): No need to calculate min if the
iteration count is known.
(vect_build_symbol_bound): Removed. Its functionality moved to
vect_generate_tmps_on_preheader.
(vect_generate_tmps_on_preheader): Moved content of
vect_build_symbol_bound here instead of calling it. Changed some
variables names.
(vect_build_loop_niters): We don't expect a new_bb to be generated -
use gcc_assert.
(vect_gen_niters_for_prolog_loop): Likewise.
(vect_gen_niters_for_prolog_loo): Likewise.
(slpeel_make_loop_iterate_ntimes): Use buildN instead of build.
(slpeel_add_loop_guard): Likewise.
(slpeel_tree_peel_loop_to_edge): Likewise.
(vect_do_peeling_for_alignment): Likewise.
Kazu Hirata [Tue, 23 Nov 2004 17:45:50 +0000 (17:45 +0000)]
tree-phinode.c (resize_phi_node): Abort when LEN is strictly greater than PHI_ARG_CAPACITY.
* tree-phinode.c (resize_phi_node): Abort when LEN is strictly
greater than PHI_ARG_CAPACITY.
(reserve_phi_args_for_new_edge): Initialize the new PHI
argument to NULL_TREE. Increment PHI_NUM_ARGS.
(add_phi_arg): Add a PHI argument to the slot given by
E->dest_idx.
(remove_phi_arg_num): Do not write to PHI_ARG_EDGE.
* tree-flow-inline (phi_arg_from_edge): Return E->dest_idx.
* tree-ssa.c (ssa_redirect_edge): Check for a missing PHI
argument by looking at PHI_ARG_DEF.
(verify_phi_args): Check for a missing PHI argument. Remove
the check for duplicate PHI arguments.
* tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED.
(phi_arg_d): Remove e.
Andreas Krebbel [Tue, 23 Nov 2004 17:39:59 +0000 (17:39 +0000)]
s390.c (s390_backchain_string): Removed.
2004-11-23 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_backchain_string): Removed.
(s390_return_addr_rtx, s390_back_chain_rtx, s390_frame_info)
(s390_emit_prologue, s390_va_start, s390_gimplify_va_arg):
Changed users of TARGET_BACKCHAIN, TARGET_NO_BACKCHAIN and
TARGET_KERNEL_BACKCHAIN to reflect the new options.
* config/s390/s390.h (MASK_BACKCHAIN, MASK_PACKED_STACK): New macros.
(TARGET_KERNEL_BACKCHAIN): Removed.
(TARGET_BACKCHAIN): Former triple state option change to a target flag.
(TARGET_PACKED_STACK): New macro.
(TARGET_SWITCHES): New switches added.
(TARGET_OPTIONS): "backchain", "no-backchain" and "kernel-backchain"
removed.
(DYNAMIC_CHAIN_ADDRESS): Use TARGET_PACKED_STACK.
* config/s390/s390.md ("allocate_stack", "restore_stack_block")
("save_stack_nonlocal", "restore_stack_nonlocal"): Modified to reflect
the change in target switch semantics.
* config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Removed.
(TARGET_DEFAULT): MASK_BACKCHAIN added.
* doc/invoke.texi: Added documentation for the new/changed options.
Dorit Naishlos [Tue, 23 Nov 2004 09:19:24 +0000 (09:19 +0000)]
re PR tree-optimization/18403 (FAILs to vectorize testcases on ppc64-linux)
PR tree-opt/18403
PR tree-opt/18505
* tree-vectorizer.c (vect_create_data_ref_ptr): Use
lang_hooks.types.type_for_size instead of integer_type_node for the
type of ptr_update.
Daniel Berlin [Tue, 23 Nov 2004 02:57:52 +0000 (02:57 +0000)]
df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's always the same as op1.
2004-11-22 Daniel Berlin <dberlin@dberlin.org>
* df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's
always the same as op1. Use bitmap_ior_into and bitmap_and_into.
Add comment to function.
re PR rtl-optimization/14838 (ICE when building with -O2 -g)
PR rtl-optimization/14838
* emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a
note.
(get_last_nonnote_insn): Don't assume last insn is a note.
Steven Bosscher [Tue, 23 Nov 2004 02:02:38 +0000 (02:02 +0000)]
re PR libfortran/15960 (missing function 'finite' on HP-UX 11.11)
PR libfortran/15960
* configure.ac: Check for finite in libm.
* libgfortran.h: Define isfinite macro if not defined.
* intrinsics/c99_functions.c: Use defined(fpclassify) instead of
HAVE_FPCLASSIFY.
* io/write.c (write_float): Use isfinite instead of finite.
* configure, config.h.in: Rebuilt.