Jeff Law [Tue, 8 Mar 2005 03:40:58 +0000 (20:40 -0700)]
20030821-1.c: Verify that the computed goto was folded away.
* gcc.dg/tree-ssa/20030821-1.c: Verify that the computed goto
was folded away.
* gcc.dg/tree-ssa/pr18133-1.c: New test.
* gcc.dg/tree-ssa/pr18133-2.c: New test.
Jeff Law [Tue, 8 Mar 2005 03:39:19 +0000 (20:39 -0700)]
tree-cfg.c (find_taken_edge_computed_goto): New function.
* tree-cfg.c (find_taken_edge_computed_goto): New function.
(find_taken_edge): Call find_taken_edge_computed_goto as
appropriate. Allow any gimple invariant rather than just
INTEGER_CST for VAL.
(cleanup_control_flow): Cleanup a computed goto which has turned
into a simple goto.
(tree_merge_blocks): If block B has any forced labels, move
them to the start of block A.
* tree-ssa-dom.c (thread_across_edge): Allow threading across
computed gotos as well.
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
removal of unnecessary computed gotos too.
(lookup_redirection_data): Fix type of INSERT argument. Callers
updated.
Andrew Pinski [Tue, 8 Mar 2005 00:40:33 +0000 (00:40 +0000)]
re PR tree-optimization/17671 (PHI-OPT is not smart enough)
2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/17671
* tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
bbs on the COND_EXPR instead of the PHI_NODEs.
(candidate_bb_for_phi_optimization): Remove.
(replace_phi_with_stmt): Rename to ...
(replace_phi_edge_with_variable): this and change so that we
replace the phi argument instead of removing the PHI.
(conditional_replacement): Change so we deal with PHI with more
than two arguments.
(value_replacement): Likewise.
(abs_replacement): Likewise.
2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/17671
* gcc.dg/tree-ssa/phi-opt-[1-4].c: New tests.
Aldy Hernandez [Tue, 8 Mar 2005 00:30:32 +0000 (00:30 +0000)]
rs6000-protos.h: Rename output_e500_flip_eq_bit to output_e500_flip_gt_bit.
* config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
output_e500_flip_gt_bit.
* config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
as bit 31.
(rs6000_generate_compare): Fix logic to look at the correct bits.
(output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
Look at GT bit.
(rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
gen_move_from_CR_gt_bit.
* config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
(UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
* config/rs6000/spe.md ("e500_cr_ior_compare"): New.
(E500_CR_IOR_COMPARE): New constant.
Earl Chew [Mon, 7 Mar 2005 22:42:42 +0000 (22:42 +0000)]
host-cygwin.c: New file to support precompiled headers on cygwin
2005-03-08 Earl Chew <earl_chew@agilent.com>
David Billinghurst <David.Billinghurst@riotinto.com>
* config/i386/host-cygwin.c: New file to support precompiled
headers on cygwin
* config/i386/x-cygwin: Use host-cygwin.c on cygwin host
* config.host: Use above files for cygwin host.
Co-Authored-By: David Billinghurst <David.Billinghurst@riotinto.com>
From-SVN: r96050
Paolo Carlini [Mon, 7 Mar 2005 22:22:35 +0000 (22:22 +0000)]
type_traits (is_polymorphic): Don't forget the virtual destructor, thus avoiding warnings.
2005-03-07 Paolo Carlini <pcarlini@suse.de>
* include/tr1/type_traits (is_polymorphic): Don't forget
the virtual destructor, thus avoiding warnings.
* testsuite/testsuite_tr1.h (class AbstractClass,
class PolymorphicClass): Likewise.
2005-03-07 Paolo Carlini <pcarlini@suse.de>
* include/std/std_complex.h (pow(const complex<_Tp>&,
const complex<_Tp>&)): Dispatch to either __complex_pow(__x.__rep(),
__y.__rep()) or __complex_pow(__x, __y) depending on the macro
_GLIBCXX_USE_C99_COMPLEX.
Per Bothner [Mon, 7 Mar 2005 21:14:12 +0000 (13:14 -0800)]
Various fixes to allow us to again build if --enable-mapped-location:
* c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
* tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
local variable loc. Change logic appropriately.
* tree-vect-transform.c (vect_finish_stmt_generation): Use
EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
* c-parser.c (c_parser_for_statement): Initialize loc variable.
* tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
Bryce McKinlay [Mon, 7 Mar 2005 21:10:49 +0000 (21:10 +0000)]
[multiple changes]
2005-03-04 Bryce McKinlay <mckinlay@redhat.com>
* verify-glue.c (vfy_is_assignable_from): Perform static check using
can_widen_reference_to if the C++ ABI is in use.
(vfy_get_interface_count, vfy_get_interface): Remove unused functions.
* verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
type_isresolved, init_state, set_pc, state_get_pc,
_Jv_BytecodeVerifier): Clean up unused and disabled functions.
(verify_fail): Report the current PC from the verifier context.
(free_state): Remove #if 0 block to enable this function.
(free_verifier_context): Call free_state on state_list iterator
values before freeing them.
* expr.c (pop_type_0): Pop correct type for error message when stack
contains a multi-word type.
2005-03-04 Ranjit Mathew <rmathew@hotmail.com>
* expr.c (build_java_array_length_access): Remove !flag_new_verifier
for known NULL array length access.
re PR rtl-optimization/19683 (MIPS wrong-code for 64-bit multiply.)
PR rtl-optimization/19683
* reload1.c (choose_reload_regs): Pass the number of bits, not the
number of bytes, to smallest_int_for_mode. Fix arguments to
REG_CANNOT_CHANGE_MODE_P.
Paolo Carlini [Mon, 7 Mar 2005 16:58:43 +0000 (16:58 +0000)]
std_fstream.h (basic_fstream<>::open, [...]): Implement the resolution of DR 409 [Ready], call clear() on success.
2005-03-07 Paolo Carlini <pcarlini@suse.de>
* include/std/std_fstream.h (basic_fstream<>::open,
basic_ifstream<>::open, basic_ofstream<>::open): Implement the
resolution of DR 409 [Ready], call clear() on success.
* docs/html/ext/howto.html: Add an entry for DR 409.
* docs/html/faq/index.html (4_4): Clarify the new behavior.
* testsuite/27_io/basic_ifstream/open/char/1.cc: Adjust.
* testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
re PR target/20288 (AVR assignment of a value through a 16 bit pointer generates out of order code)
PR target/20288
* config/avr/avr.c (print_operand): Add 'p' and 'r'.
(out_movhi_r_mr): Read low byte of volatile MEM first.
(out_movhi_mr_r): Write high byte of volatile MEM first.
file-format.exp (gcc_target_object_format): Add check for som format and hardcode object formats on hppa*-*-hpux*.
* lib/file-format.exp (gcc_target_object_format): Add check for som
format and hardcode object formats on hppa*-*-hpux*.
* lib/target-supports.exp (check_weak_available): Add check for som
object format. Always return 0 on hppa*-*-hpux10*.
* gcc.dg/titype-1.c, gcc.dg/uninit-C.c: Don't use TImode if __hppa__
is defined.
* objc.dg/stabs-1.m: hppa*64*-*-* doesn't have stabs.
Kazu Hirata [Sun, 6 Mar 2005 17:23:03 +0000 (17:23 +0000)]
fold-const.c (fold_binary_op_with_conditional_arg): Take decomposed arguments code, type, op0, and op1 instead of t.
* fold-const.c (fold_binary_op_with_conditional_arg): Take
decomposed arguments code, type, op0, and op1 instead of t.
(fold_binary): Update a call to fold_range_test.
Kazu Hirata [Sun, 6 Mar 2005 14:19:45 +0000 (14:19 +0000)]
fold-const.c (optimize_minmax_comparison): Take decomposed arguments code, type, op0, and op1 instead of t.
* fold-const.c (optimize_minmax_comparison): Take decomposed
arguments code, type, op0, and op1 instead of t.
(fold_binary): Update a call to optimize_minmax_comparison.
Kazu Hirata [Sat, 5 Mar 2005 20:21:31 +0000 (20:21 +0000)]
c-semantics.c (build_stmt): Use TYPE_P instead of IS_NON_TYPE_CODE_CLASS.
gcc/
* c-semantics.c (build_stmt): Use TYPE_P instead of
IS_NON_TYPE_CODE_CLASS.
* tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
(NON_TYPE_CHECK): Use TYPE_P instead of
IS_NON_TYPE_CODE_CLASS.
java/
* expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
instead of IS_NON_TYPE_CODE_CLASS.
Roger Sayle [Sat, 5 Mar 2005 16:32:59 +0000 (16:32 +0000)]
re PR bootstrap/20155 (libgcj build fails with "execvp: /bin/sh: Argument list too long")
2005-03-05 Roger Sayle <roger@eyesopen.com>
Alexandre Oliva <aoliva@redhat.com>
Kelley Cook <kcook@gcc.gnu.org>
PR libgcj/20155
* Makefile.am (libgcj0_convenience.la): New rule to create a file
of the object files to link to avoid exceeding the command line
length limits on some platforms.
(clean-local): Clean up objectlist files.
* Makefile.in: Regenerate.
invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
* doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
* config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
(TARGET_SWITCHES): Add -msym32 and -mno-sym32.
(ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
(ASM_SPEC): Pass down -msym32 and -mno-sym32.