re PR middle-end/19775 (sqrt(pow(x,y)) != pow(x,y*0.5) (with -ffast-math))
2005-02-07 Richard Guenther <rguenth@gcc.gnu.org>
PR middle-end/19775
* builtins.c (fold_builtin_sqrt): Transform
sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
pow(x,y*0.5).
* gcc.dg/torture/builtin-power-1.c: Disable test for
invalid transformation.
* gcc.dg/builtins-10.c: Likewise. Disable one test we
no longer optimize.
* gcc.dg/builtins-47.c: New testcase.
Leehod Baruch [Mon, 7 Feb 2005 10:07:07 +0000 (10:07 +0000)]
invoke.texi (ftree-vectorizer-verbose): New.
* doc/invoke.texi (ftree-vectorizer-verbose): New.
* opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
* common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
was added.
* tree.h (vect_set_verbosity_level): New extern function declaration
added.
* tree-vectorizer.h (verbosity_levels): New enum type.
* tree-vectorizer.c (vect_debug_stats): Function removed.
(vect_debug_details): Likewise.
(vect_verbosity_level): Global variable was defined and initialized.
(vect_dump): Global variable definition.
(vect_print_dump_info): New function.
(vect_set_dump_settings): New function.
(vect_set_verbosity_level): New function.
(vectorize_loops): Add call to vect_set_dump_settings.
(slpeel_make_loop_iterate_ntimes): Dump condition was changed.
(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
(slpeel_tree_peel_loop_to_edge): Likewise.
re PR target/19796 (Bootstrap fails: Unresolved data symbol "set_fpc_csr")
PR bootstrap/19796
Revert:
2005-01-26 Richard Sandiford <rsandifo@redhat.com>
* config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
either -ffast-math or -funsafe-math-optimizations is in use.
2005-01-24 Richard Sandiford <rsandifo@redhat.com>
* config/mips/irix-csr.c: New file.
* config/mips/t-iris6 (irix-csr.o): New rule to build it.
(EXTRA_MULTILIB_PARTS): Add irix-csr.o.
* config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
executables.
Joseph Myers [Sun, 6 Feb 2005 20:20:59 +0000 (20:20 +0000)]
cpp.texi: Include gcc-common.texi.
* doc/cpp.texi: Include gcc-common.texi. Don't define gcctabopt
macro locally. Don't give last revision date. Use GCC version
number from gcc-common.texi.
* doc/cppinternals.texi: Include gcc-common.texi. Don't give last
revision date. Use GCC version number from gcc-common.texi.
Describe being a library as current state rather than as 3.x
history.
* doc/gcc.texi: Remove last update date.
* doc/gccint.texi: Likewise. Update copyright dates.
* doc/install.texi: Update copyright dates.
fortran:
* gfortran.texi: Don't give last update date.
java:
* gcj.texi: Update copyright dates.
treelang:
* treelang.texi: Don't use local treelang version number. Don't
give last update date.
Joseph Myers [Sun, 6 Feb 2005 19:37:24 +0000 (19:37 +0000)]
re PR other/7549 (gcc3.1: Documentation glitches in info-files)
PR other/7549
* doc/invoke.texi: Mention for each option included in -Wall that
it is included in -Wall.
* doc/gcc.texi: Update copyright and last modification date.
expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
* expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
Set bitpos and offset later in the function. Do nothing if the
target is a register and if the bitfield lies completely outside
that register.
(extract_bit_field): Make the same SUBREG, bitpos and offset changes
here. Return an uninitialised register if the source value is stored
in a register and the bitfield lies completely outside that register.
David Daney [Thu, 3 Feb 2005 17:44:20 +0000 (17:44 +0000)]
InetAddress.java (InetAddress): Make a private copy of the address.
2005-02-02 David Daney <ddaney@avtrex.com>
* java/net/InetAddress.java (InetAddress): Make a private copy of
the address.
* java/net/Inet4Address.java (getAddress): Return a copy of the
address.
* java/net/Inet6Address.java (Inet6Address): Use private copy of
the address
(getAddress): Return a copy of the address.
(equals): Rewrote.
Leehod Baruch [Thu, 3 Feb 2005 16:22:31 +0000 (16:22 +0000)]
tree-vectorizer.h (LOC): New type.
* tree-vectorizer.h (LOC): New type.
(UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
(loop_line_number): New field in struct _loop_vec_info.
(LOOP_VINFO_LOC, LOOP_LOC): New macros.
* tree-vectorizer.c (input.h): Included.
(find_loop_location): New function.
(vect_debug_stats): Argument changed from loop to LOC. Computation of
loop line number removed.
(vect_debug_details): Likewise.
(new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
(slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
call to vect_debug_details/stats changed from loop to loop_loc.
(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
(slpeel_tree_peel_loop_to_edge): Likewise.
Leehod Baruch [Thu, 3 Feb 2005 16:22:22 +0000 (16:22 +0000)]
tree-vectorizer.h (LOC): New type.
* tree-vectorizer.h (LOC): New type.
(UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
(loop_line_number): New field in struct _loop_vec_info.
(LOOP_VINFO_LOC, LOOP_LOC): New macros.
* tree-vectorizer.c (input.h): Included.
(find_loop_location): New function.
(vect_debug_stats): Argument changed from loop to LOC. Computation of
loop line number removed.
(vect_debug_details): Likewise.
(new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
(slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
call to vect_debug_details/stats changed from loop to loop_loc.
(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
(slpeel_tree_peel_loop_to_edge): Likewise.
Leehod Baruch [Thu, 3 Feb 2005 16:13:17 +0000 (16:13 +0000)]
tree-vectorizer.c (vect_analyze_data_ref_dependence): Function declaration added.
* tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
declaration added.
(vect_analyze_data_ref_dependences): Likewise.
(vect_is_simple_use): Argument changed from loop structure to
loop_vect_info structure.
(vect_can_advance_ivs_p): Likewise.
(vect_create_index_for_vector_ref): Likewise.
(vect_update_ivs_after_vectorizer): Likewise.
(new_stmt_vec_info): Likewise.
(new_loop_vec_info): Second argument in call to new_stmt_vec_info was
changed from loop to loop_vinfo.
(vect_create_data_ref_ptr): First argument in call to
vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
(vectorizable_assignment): Second argument in call to vect_is_simple_use
was changed from loop to loop_vinfo.
(vectorizable_operation): Likewise.
(vectorizable_store): Likewise.
(vect_mark_stmts_to_be_vectorized): Likewise.
(vect_do_peeling_for_loop_bound): First argument in call to
vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
(vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
was changed from loop to loop_vinfo.
(vect_analyze_data_ref_dependences): Third argument in call to
vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
(vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
(vect_create_data_ref_ptr): Likewise.
(vect_init_vector): Likewise.
(vect_get_vec_def_for_operand): Likewise.
(vectorizable_assignment): Likewise.
(vectorizable_operation): Likewise.
(vectorizable_store): Likewise.
(vectorizable_load): Likewise.
(vect_update_ivs_after_vectorizer): Likewise.
(vect_is_simple_use): Likewise.
(vect_analyze_data_ref_dependence): Likewise.
(vect_analyze_pointer_ref_access): Likewise.
(vect_can_advance_ivs_p): Likewise.
* tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
before _stmt_vec_info.
(_stmt_vec_info): Loop field replaced by loop_vec_info.
(STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
(new_stmt_vec_info): Argument changed from loop structure to
loop_vect_info structure
(vect_analyze_data_ref_dependences): Unnecessary line was removed.
(vect_analyze_offset_expr): Avoid 80 columns overflow.
(vect_create_addr_base_for_vector_ref): Likewise.
(vect_analyze_pointer_ref_access): Likewise.
Giovanni Bajo [Thu, 3 Feb 2005 10:26:22 +0000 (10:26 +0000)]
re PR c++/17401 (ICE with invalid pure specifier)
PR c++/17401
* parser.c (cp_parser_pure_specifier): Emit a specific error
message with an invalid pure specifier.
* decl2.c (grok_function_init): Remove.
(grokfield): An initializer for a method is a always a pure
specifier.
Alexandre Oliva [Thu, 3 Feb 2005 09:09:42 +0000 (09:09 +0000)]
combine.c (simplify_comparison, [...]): Do not drop the extend if we'd have to add a paradoxical subreg later.
gcc/ChangeLog:
* combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
Do not drop the extend if we'd have to add a paradoxical subreg
later. Include optabs.h and insn-codes.h.
* Makefile.in (combine.o): Depend on $(OPTABS_H).
gcc/testsuite/ChangeLog:
* gcc.c-torture/execute/20050203-1.c: New.
altivec.md (altivec_dst): Make the first operand a REG, not a MEM.
2005-02-02 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/altivec.md (altivec_dst): Make the first operand
a REG, not a MEM.
(altivec_dstt): Likewise.
(altivec_dstst): Likewise.
(altivec_dststt): Likewise.
* config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
of first operand.
Dorit Naishlos [Thu, 3 Feb 2005 06:19:16 +0000 (06:19 +0000)]
tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy EXPR_LOCUS from orig_cond to the new cond_stmt.
* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
EXPR_LOCUS from orig_cond to the new cond_stmt.
(vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
the new vec_stmt.
* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
standard_iv_increment_position. Remove call to bsi_next
(no need to bump the iterator anymore).
(vect_create_index_for_vector_ref): Call
standard_iv_increment_position. Remove second function argument.
(vect_finish_stmt_generation): Remove call to bsi_next
(no need to bump the iterator anymore).
(vect_create_data_ref_ptr): Remove second argument (bsi) in call
to vect_create_index_for_vector_ref.
* tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
phis are used out of the loop.
Joseph Myers [Thu, 3 Feb 2005 02:21:10 +0000 (02:21 +0000)]
re PR c/17807 (No warning/error for undefined local function.)
PR c/17807
* c-decl.c (undef_nested_function): New variable.
(pop_scope): Diagnose undefined nested functions.
(finish_function): Don't attempt cgraph processing or genericizing
if current top-level function contained an undefined nested
function. Reset undef_nested_function at the end of a top-level
function.
testsuite:
* gcc.dg/nested-func-3.c: New test.
* gcc.dg/pr18596-3.c: Expect error for undefined nested function.
Tom Tromey [Thu, 3 Feb 2005 00:15:46 +0000 (00:15 +0000)]
Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
* Makefile.am (classes.stamp): New target, broken out from
libgcj.jar target.
($(all_java_class_files)): Depend on it.
(libgcj-@gcc_version@.jar): Likewise.
(all-recursive): Likewise.
(CLEANFILES): Include classes.stamp.
Matt Austern [Thu, 3 Feb 2005 00:02:10 +0000 (00:02 +0000)]
re PR c++/19628 (g++ no longer accepts __builtin_constant_p in constant-expressions)
PR c++/19628
* cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
* parser.c (cp_parser_postfix_expression): Accept function call in constant expression if builtin_valid_in_constant_expr_p is true for that function.
* pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
* semantics.c (finish_id_expression): Accept function call in constant expression if builtin_valid_in_constant_expr_p is true for that function.
* tree.c (builtin_valid_in_constant_expr_p): New.
Steven Bosscher [Wed, 2 Feb 2005 21:50:16 +0000 (21:50 +0000)]
invoke.texi: Update the options enabled at -O1, -O2, and -O3.
* doc/invoke.texi: Update the options enabled at -O1, -O2,
and -O3. Update the documentation for -fgcse-sm, -fgcse-las,
-ftree-pre, and -fthread-jumps.
Volker Reichelt [Wed, 2 Feb 2005 21:19:07 +0000 (21:19 +0000)]
cp-tree.h (complete_type_or_else): Remove macro.
* cp-tree.h (complete_type_or_else): Remove macro.
(complete_type_or_diagnostic): Rename to complete_type_or_else
and remove last argument.
* typeck.c (complete_type_or_diagnostic): Rename to
complete_type_or_else and remove last argument.
Tom Tromey [Wed, 2 Feb 2005 20:59:41 +0000 (20:59 +0000)]
re PR libgcj/19681 (extension loading currently incorrect)
PR libgcj/19681:
* Makefile.in: Rebuilt.
* Makefile.am (ordinary_java_source_files): Added new class.
* java/lang/natVMClassLoader.cc (getSystemClassLoaderInternal):
Use system_instance, not instance.
* gnu/gcj/runtime/SystemClassLoader.java: New file.
* gnu/gcj/runtime/VMClassLoader.java (init): Don't search
java.class.path.
(system_instance): New field.
(initialize): Initialize the system loader as well.
(VMClassLoader): Default to LIB_CACHE.
Ranjit Mathew [Wed, 2 Feb 2005 18:41:25 +0000 (18:41 +0000)]
re PR java/15543 ("jv-scan --complexity" segfaults)
PR java/15543
* parse-scan.y (formal_parameter): Use $2 (type) instead of $$
(modifiers) when square brackets are present in a declaration for
a final paramter.
* jv-scan.c (main): Set input_filename and input_line.
Jeff Law [Wed, 2 Feb 2005 15:59:59 +0000 (08:59 -0700)]
gcse.c (struct reg_set): Store the block index where the register was set rather than the setting insn.
* gcse.c (struct reg_set): Store the block index where the register
was set rather than the setting insn.
(record_one_set, compute_transp): Corresponding changes.
(pre_insert_copy_insn): Do not call replace_one_set.
(replace_one_set): Remove.
Steven Bosscher [Tue, 1 Feb 2005 22:50:12 +0000 (22:50 +0000)]
re PR tree-optimization/19217 (ICE: verify_stmts failed: address taken, but ADDRESSABLE bit not set)
PR tree-optimization/19217
* tree-cfg.c (verify_expr): Use the data field to see if TP was
seen inside a PHI node. Do not do the ADDR_EXPR check if it was.
(verify_stmts): Pass (void*)1 as data to verify_expr to signal
that it is walking a PHI node.
* gcc.c-torture/execute/ieee/copysign1.c: Special case sizeof
long double for ibm double-double format.
* gcc.c-torture/execute/ieee/copysign2.c: Likewise.
Diego Novillo [Tue, 1 Feb 2005 20:30:07 +0000 (20:30 +0000)]
re PR tree-optimization/19633 (local address incorrectly thought to escape)
PR tree-optimization/19633
* tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
* tree-ssa-alias.c (init_alias_info): Initialize.
(merge_pointed_to_info): Set.
(add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
(dump_points_to_info_for): Show value of pt_null.
(struct count_ptr_d): Declare.
(find_ptr_dereference): Remove.
(ptr_is_dereferenced_by): Remove.
(count_ptr_derefs): New local function.
(count_uses_and_derefs): New local function.
(compute_points_to_and_addr_escape): Call it. If the number
of dereferences is greater than zero, mark the pointer as
dereferenced. If there are fewer dereferences than uses of
the pointer, the pointer's value escapes.
testsuite/ChangeLog
PR tree-optimization/19633
* testsuite/gcc.dg/pr19633-1.c: New test.
* testsuite/gcc.dg/pr19633.c: Tweak to make pointer point
to NULL or a symbol.
Mark Mitchell [Tue, 1 Feb 2005 17:13:08 +0000 (17:13 +0000)]
revert: gjavah.c (print_field_info): Mark static data members of floating-point type with "__extension__".
Revert:
2005-01-31 Mark Mitchell <mark@codesourcery.com>
* gjavah.c (print_field_info): Mark static data members of
floating-point type with "__extension__".
Steven Bosscher [Tue, 1 Feb 2005 10:03:15 +0000 (10:03 +0000)]
re PR rtl-optimization/15242 (pessimization of "goto *")
PR optimization/15242
* params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
* basic-block.h (duplicate_computed_gotos): Add prototype.
* bb-reorder.c (duplicate_computed_gotos): New function to
duplicate sufficiently small blocks ending in a computed jump.
* passes.c (rest_of_compilation): Call duplicate_computed_gotos
if not optimizing for size.
* cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
never do tail merging for blocks ending in a computed jump.
* doc/invoke.texi: Document the max-goto-duplication-insns param.