Nick Clifton [Fri, 26 Aug 2005 13:45:42 +0000 (13:45 +0000)]
v850.c (ep_memory_operand): Return FALSE if TARGET_EP is not defined.
* config/v850/v850.c (ep_memory_operand): Return FALSE if TARGET_EP is not
defined.
* config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if TARGET_EP is
enabled.
(OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
* config/v850/v850.md (save_all_interrupt): Only use the EP register if
TARGET_EP is defined.
(restore_all_interrupt): Likewise.
* config/v850/lib1funcs.asm: Update functions so that the EP register is only
used if __EP__ is defined.
David Ung [Fri, 26 Aug 2005 13:15:14 +0000 (13:15 +0000)]
mips.c (mips_expand_prologue): Handle case when generating for MIPS16 and the outgoing argument area is more...
* config/mips/mips.c (mips_expand_prologue): Handle case when
generating for MIPS16 and the outgoing argument area is more than
SMALL_OPERAND. Use the frame pointer as temporary to generate the
add instruction.
Paul Woegerer [Fri, 26 Aug 2005 08:20:55 +0000 (08:20 +0000)]
crx.md: Make doloop_end pattern usage controllable via mloop-nesting=<max-nesting>...
* config/crx/crx.md: Make doloop_end pattern usage controllable
via mloop-nesting=<max-nesting> command line switch. Make sure
the combiner cannot use doloop_end_<mode> in an illegal way.
* config/crx/crx.c: Use regs up to r6 for argument passing.
Refine crx_address_cost (non cst4 displacements are expensive).
* config/crx/crx.opt: Add switch for mloop-nesting=.
Nathan Sidwell [Thu, 25 Aug 2005 09:06:45 +0000 (09:06 +0000)]
re PR c++/20817 (ICE for tree check in build_offset_type)
cp:
PR c++/20817
* typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
->*.
testsuite:
PR c++/20817
* g++.old-deja/g++.benjamin/13908.C: Robustify expected error.
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.