Thomas Koenig [Wed, 24 Aug 2005 20:04:20 +0000 (20:04 +0000)]
re PR fortran/17758 (gfortran_abort and some others should be marked as noreturn)
2005-08-24 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/17758
* gfortran.h (symbol_attribute): Add noreturn to the structure.
(gfc_intrinsic_sym): Add noreturn to the structure.
* intrinsic.c (make_noreturn): New function.
(add_subroutines): Mark subroutines abort and exit as noreturn.
(gfc_intrinsic_sub_interface): Copy noreturn attribute from
isym to the resolved symbol.
* trans-decl.c (gfc_get_extern_function_decl): Set function
as VOLATILE (== noreturn) if the noreturn attribute is set.
2005-08-24 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/17758
gfortran.dg/nonreturning_statements.f90: New test.
Zdenek Dvorak [Wed, 24 Aug 2005 07:56:56 +0000 (09:56 +0200)]
bb-reorder.c (copy_bb, [...]): Add argument to duplicate_block.
* bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
to duplicate_block.
* cfghooks.c (duplicate_block): Added position where to place
new block as argument.
* cfghooks.h (duplicate_block): Declaration changed.
* cfglayout.c (copy_bbs): Add argument after. Pass it to
duplicate_block.
* cfglayout.h (copy_bbs): Declaration changed.
* cfgloop.h (loop_version): Declaration changed.
* cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
position to copy_bbs.
(loop_version): Pass position to duplicate_loop_to_header_edge.
Add place_after argument and position new blocks according to
it.
* modulo-sched.c (sms_schedule): Pass place_after argument
to loop_version.
* tracer.c (tail_duplicate): Pass argument to duplicate_block.
* tree-cfg.c (split_edge_bb_loc): New function.
(tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
to determine position of new blocks.
* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
to loop_version.
* tree-ssa-threadupdate.c (create_block_for_threading): Pass
argument to duplicate_block.
* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
Pass position to copy_bbs.
* target-def.h (TARGET_HAVE_CTORS_DTORS): Allow target
configuration files to override the default value.
* config/t-vxworks: Remove INSTALL_ASSERT_H. Define STMP_FIXPROTO,
EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
* config/vx-common.h: New file, split out from...
* config/vxworks.h: here. Update for VxWorks 6.x and RTP mode.
* config/vxworksae.h: New file, for VxWorks AE.
* config/vxworks.opt: New file.
* config/vxlib.c: Update for VxWorks 6.
* config/rs6000/t-vxworks (MULTILIB_OPTIONS): New list. Adjust
other MULTILIB_* variables appropriately.
(LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS): Correct from t-ppccomm.
* config/rs6000/t-vxworksae: New file, adjust multilibs for AE.
* config/rs6000/vxworks.h: Update for VxWorks 6.
* config/rs6000/vxworksae.h: New file, mostly placeholder for now.
Andrew Pinski [Wed, 24 Aug 2005 01:50:54 +0000 (01:50 +0000)]
re PR target/20799 (bad relocs for new/delete overrides)
2005-08-23 Andrew Pinski <pinskia@physics.uc.edu>
PR target/20799
* config/darwin.c (machopic_select_section): Remove the hack to
mark "::operator new" and "::operator delete" for coalescing
even though they are not weak.
Roman Kennke [Tue, 23 Aug 2005 22:19:17 +0000 (22:19 +0000)]
2005-08-23 Roman Kennke <roman@kennke.org>
* java/lang/Character.java
(toChars(int)): New JDK1.5 method.
(toChars(int, char[], int)): New JDK1.5 method.
(charCount): New JDK1.5 method.
(isSupplementaryCodePoint): New JDK1.5 method.
(isValidCodePoint): New JDK1.5 method.
Paolo Bonzini [Tue, 23 Aug 2005 17:39:59 +0000 (17:39 +0000)]
predicates.md (equality_operator): New.
2005-08-23 Paolo Bonzini <bonzini@gnu.org>
* config/rs6000/predicates.md (equality_operator): New.
* config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
comparison with a large constant.
J"orn Rennecke [Tue, 23 Aug 2005 13:07:16 +0000 (13:07 +0000)]
sh.c (sh_builtin_saveregs): If the number of to-be-saved fp registers is even...
* sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
registers is even, and we have a hardware double precision fp,
align the buffer.
(sh_gimplify_va_arg_expr): For floating point arguments, consider
size of current argument when checking if argument was passed in
registers.
J"orn Rennecke [Tue, 23 Aug 2005 12:27:53 +0000 (12:27 +0000)]
re PR middle-end/23467 (alignment of member doesn't always carry over to alignment of struct.)
gcc:
PR middle-end/23467
* stor-layout.c (finalize_type_size): Dont override
existing alignment with a smaller alignment from the mode.
testsuite:
PR middle-end/23467
* gcc.c-torture/execute/pr23467.c: New test.
Sebastian Pop [Tue, 23 Aug 2005 08:15:13 +0000 (10:15 +0200)]
re PR tree-optimization/23511 (Segfault in fold_binary)
PR tree-optimization/23511
* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
Jakub Jelinek [Tue, 23 Aug 2005 07:28:26 +0000 (09:28 +0200)]
re PR middle-end/22043 (Fields not initialized for automatic structs with flexible array members)
PR tree-optimization/22043
* tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
* expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
If ALLOW_FLEXARR, handle types ending with flexible array member.
Pass false as second argument to recursive count_type_elements calls.
(categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
argument to count_type_elements call.
* tree-sra.c (decide_block_copy): Likewise.
* gimplify.c (gimplify_init_constructor): If num_type_elements < 0
for a constant-sized object, set cleared as well. Pass true as
second argument to count_type_elements call.
Alan Modra [Tue, 23 Aug 2005 00:33:18 +0000 (00:33 +0000)]
re PR target/23070 ([3.4 only] CALL_V4_CLEAR_FP_ARGS flag not properly set)
PR target/23070
* config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
stdarg functions, set/clear the fp marker even when no variable
args are passed.
* config/rs6000/sysv4.opt (mprototype): Describe.
Dorit Nuzman [Sun, 21 Aug 2005 06:38:27 +0000 (06:38 +0000)]
tree-vect-transform.c (get_initial_def_for_reduction): Set need_epilog_adjust back to false for MIN/MAX case.
* tree-vect-transform.c (get_initial_def_for_reduction): Set
need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
NULL if need_epilog_adjust is false.
(vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
Case 3 always peels first itration, not just for PLUS case, and no need
to use scalar_initial_def here. Create an epilog adjustment only if
scalar_initial_def is not NULL.
Jakub Jelinek [Sat, 20 Aug 2005 16:03:58 +0000 (18:03 +0200)]
tree-pass.h (TDF_GRAPH): Define.
* tree-pass.h (TDF_GRAPH): Define.
* tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
* passes.c (finish_optimization_passes): Only call
finish_graph_dump_file if TDF_GRAPH is set.
(execute_one_pass): Only call clean_graph_dump_file if dump_file !=
NULL. Set TDF_GRAPH bit.
(execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
* gcc.dg/20050811-1.c: New test.
* gcc.dg/20050811-2.c: New test.
Richard Earnshaw [Sat, 20 Aug 2005 10:31:42 +0000 (10:31 +0000)]
arm.h (arm_stack_offsets): Add locals_base field.
* arm.h (arm_stack_offsets): Add locals_base field.
* arm.c (arm_get_frame_offsets): Compute it.
(thumb_compute_initial_elimination offset): Make the Thumb frame
pointer point to the base of the local variables.
(thumb_expand_prologue): Update accordingly.
(thumb_expand_epilogue): Likewise.
* arm.md (thumb_movhi_clobber): Make this insn a define_expand. Change
mode of clobbered scratch to DImode. Handle a case that's known to
need this.
Devang Patel [Fri, 19 Aug 2005 17:54:16 +0000 (10:54 -0700)]
re PR tree-optimization/23048 (ICE in get_loop_body with -O1 -ftree-vectorize on 4.1.x)
PR tree-optimization/23048
* tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
third parameter. Check whether latch is dominated by exit
block or not.
(if_convertible_loop_p): Supply exit block itself to
if_convertible_bb_p.
Richard Earnshaw [Fri, 19 Aug 2005 13:17:04 +0000 (13:17 +0000)]
re PR target/23473 (ICE at config/arm/arm.c:3280)
PR target/23473
* arm.md (arm_load_pic_register): Change argument to the mask of
saved registers. Call thumb_find_work_register if we need a
scratch register on Thumb.
(arm_expand_prologue): Pass empty register set to
arm_load_pic_register.
(thumb_expand_prologue): Pass live_regs_mask directly to
arm_load_pic_register.
* arm-protos.h (arm_load_pic_register): Update prototype.
Joern Rennecke [Fri, 19 Aug 2005 12:33:54 +0000 (13:33 +0100)]
sh.c (find_sole_member): New function.
* sh.c (find_sole_member): New function.
(sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
if the record's alignment is larger than the size of its only member.
Joern Rennecke [Fri, 19 Aug 2005 12:25:58 +0000 (13:25 +0100)]
sh.c (find_sole_member): New function.
* sh.c (find_sole_member): New function.
(sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
if the record's alignment is larger than the size of its only member.
Paul Woegerer [Fri, 19 Aug 2005 07:47:34 +0000 (07:47 +0000)]
crx.c: Implemented crx_decompose_address (like in the i386 port) so that...
* config/crx/crx.c: Implemented crx_decompose_address (like in the
i386 port) so that crx_legitimate_address_p, crx_address_cost
and crx_print_operand_address are using the same code for adress
handling. Using symbolic displacements now gets rejected since
the CRX register relative adressing mode can't handle unsigned
32-bit values as displacements.
* config/crx/crx.h: Simplified definitions for REG_OK_FOR_BASE_P,
removed redundant parenthesis and obsolete macros.
* config/crx/crx.opt: Added a new switch for debugging of address
handling.
* config/crx/crx-protos.h: Added new declarations for above.
Andrew Pinski [Fri, 19 Aug 2005 05:14:13 +0000 (05:14 +0000)]
Makefile.am (extra_ldflags_libjava): New variable to substitute in.
2005-08-19 Andrew Pinski <pinskia@physics.uc.edu>
* Makefile.am (extra_ldflags_libjava): New variable to
substitute in.
(LIBLINK): Add extra_ldflags_libjava to it.
* configure.ac (extra_ldflags_libjava): Set for *-darwin* to
"-Wl,-single_module".
* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* gcj/Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.