]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
re PR tree-optimization/14197 (Wrong code for bcopy/memmove (string-asm-2.c))
[gcc.git] / gcc / ChangeLog
CommitLineData
aef0afc4
UW
12004-05-24 Ulrich Weigand <uweigand@de.ibm.com>
2
3 PR tree-optimization/14197
4 * builtins.c: Include "tree-gimple.h"
5 (readonly_data_expr): Use get_base_address. Make sure to call
6 decl_readonly_section only on trees it can handle.
7 * tree-gimple.c (get_base_address): Accept STRING_CST and
8 CONSTRUCTOR expressions.
9 * Makefile.in: Update dependencies.
10
4f4e53dd
PB
112004-05-23 Paolo Bonzini <bonzini@gnu.org>
12
13 Move libcpp to the toplevel.
14 * Makefile.in: Remove references to libcpp files,
15 use CPPLIBS instead of libcpp.a. Define SYMTAB_H
16 and change hashtable.h to that.
17 * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
18 gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
19 * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
20 * configure: Regenerate.
21 * config.in: Regenerate.
22 * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
23 * cppcharset.c: Removed.
24 * cpperror.c: Removed.
25 * cppexp.c: Removed.
26 * cppfiles.c: Removed.
27 * cpphash.c: Removed.
28 * cpphash.h: Removed.
29 * cppinit.c: Removed.
30 * cpplex.c: Removed.
31 * cpplib.c: Removed.
32 * cpplib.h: Removed.
33 * cppmacro.c: Removed.
34 * cpppch.c: Removed.
35 * cpptrad.c: Removed.
36 * cppucnid.h: Removed.
37 * cppucnid.pl: Removed.
38 * cppucnid.tab: Removed.
39 * hashtable.c: Removed.
40 * hashtable.h: Removed.
41 * line-map.c: Removed.
42 * line-map.h: Removed.
43 * mkdeps.c: Removed.
44 * mkdeps.h: Removed.
45 * stringpool.h: Include symtab.h instead of hashtable.h.
46 * tree.h: Include symtab.h instead of hashtable.h.
47 * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
48
76391e5a
PB
492004-05-23 Paolo Bonzini <bonzini@gnu.org>
50
51 * gcc.c (struct prefix_list): Add forward declaration.
52 (do_spec_path): New function, extracted from...
53 (do_spec_1) <'D'>: ... here. Drop support for
54 SPACE_AFTER_L_OPTION.
55 (do_spec_1) <'I'>: Use do_spec_path.
56 (process_command): Do not store the 'include' suffix
57 in include_prefixes.
58 * system.h: Poison SPACE_AFTER_L_OPTION.
59
8d4a2ff6
RS
602002-05-23 Roger Sayle <roger@eyesopen.com>
61
62 * fold-const.c (non_lvalue): Explicitly list the tree codes that
63 need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
64
6972898c
JM
652004-05-23 Joseph S. Myers <jsm@polyomino.org.uk>
66
67 * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
68 Update based on printed manual. Enable setting of offsets for
69 FSFPRINT and move it to gcc-common.texi.
70 * doc/gcc.texi: Update FSF printing details.
71 * doc/gccint.texi: Remove FSF printing details.
72
68ca1923
AP
732004-05-23 Andrew Pinski <pinskia@physics.uc.edu>
74
75 * config/rs6000/t-rs6000: Remove the disabling -Werror.
76
d6dc556b
RS
772004-05-22 Roger Sayle <roger@eyesopen.com>
78
79 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
80 expand_builtin_strrchr, expand_builtin_strpbrk,
81 expand_builtin_mempcpy, expand_builtin_memcmp,
82 expand_builtin_strcmp, expand_builtin_strncmp,
83 expand_builtin_strcat, std_expand_builtin_va_start,
84 std_expand_builtin_va_arg, expand_builtin_va_copy,
85 expand_builtin_signbit, fold_builtin_cabs,
86 fold_builtin_logarithm, fold_builtin_mempcpy,
87 fold_builtin_signbit, fold_builtin_isascii,
88 fold_builtin_toascii, fold_builtin_isdigit,
89 fold_builtin_1, build_function_call_expr,
90 simplify_builtin_strchr, simplify_builtin_strrchr,
91 simplify_builtin_strpbrk, simplify_builtin_strncpy,
92 simplify_builtin_memcmp, simplify_builtin_strcmp,
93 simplify_builtin_strncmp, simplify_builtin_strncat,
94 simplify_builtin_strspn, simplify_builtin_strcspn,
95 simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
96 to build with calls to build2, build3 or omit_one_operand.
97
0a0de3bf
RS
982004-05-22 Richard Sandiford <rsandifo@redhat.com>
99
8e657c46 100 * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
0a0de3bf
RS
101 section when generating EABI code.
102
79bba51c
AP
1032004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
104
105 PR 15546
106 * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
107 Call mark_decl_referenced on the SYMBOL_REF_DECL.
108
6f312d18
ZW
1092004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
110
111 * c-common.c (c_common_truthvalue_conversion): Handle
112 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
113 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
114 i.e. set the type to truthvalue_type_node and return.
115
1162004-05-22 Zack Weinberg <zack@codesourcery.com>
117
118 * tree.h (struct tree_decl): Add possibly_inlined bit.
119 (DECL_POSSIBLY_INLINED): New accessor macro.
120 * cgraph.h: Remove declaration of cgraph_inline_hash.
121 * cgraph.c: Remove definition of cgraph_inline_hash.
122 (hash_node): Revert to hashing DECL_UID.
123 (eq_node): Take two pointers to cgraph_node structures.
124 Compare DECL_UIDs.
125 (cgraph_remove_node): Pass the node directly to htab_find_slot.
126 (cgraph_varpool_hash_node): Rename hash_varpool_node;
127 hash on DECL_UID.
128 (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
129 pointers to cgraph_varpool_node structures; compare DECL_UIDs.
130 (cgraph_node): Allocate a temporary node on the stack, fill in
131 its DECL field, and pass that to htab_find_slot.
132 (cgraph_varpool_node): Likewise.
133 (cgraph_function_possibly_inlined_p): If global info is ready,
134 return the DECL_POSSIBLY_INLINED bit.
135 * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
136 instead of mucking with cgraph_inline_hash.
137
2dec00bf
JM
1382004-05-22 Joseph S. Myers <jsm@polyomino.org.uk>
139
140 * doc/contrib.texi: Add g77 contributors.
141
9fd47435
RS
1422004-05-22 Richard Sandiford <rsandifo@redhat.com>
143
144 * calls.c (initialize_argument_information): Forbid sibcalls if a
145 callee-copied argument is stored in the current function's frame.
146
0bc0f41d
EC
1472004-05-22 Eric Christopher <echristo@redhat.com>
148
149 * fix-header.c (read_scan_file): Update for add_path change.
150
b02398bd
BE
1512004-05-22 Ben Elliston <bje@au.ibm.com>
152
153 * c.opt (Wmissing-include-dirs): New.
154 * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
155 to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
156 OPT_isystem. Handle case OPT_Wmissing_include_dirs.
157 * c-incpath.h (add_path): Add fourth (bool) argument.
158 * c-incpath.c (add_env_var_paths): Pass false to add_path ().
159 (add_standard_paths): Likewise.
160 (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
161 is used and the directory was user-supplied via -I.
162 (add_path): Set p->user_supplied_p. Remove duplicated code by
163 using add_cpp_dir_path ().
164 * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
165 (struct cpp_dir): Add user_supplied_p.
166 * doc/invoke.texi (Warning Options): Document new option.
167
12fea1f9
UW
1682004-05-21 Ulrich Weigand <uweigand@de.ibm.com>
169
170 * fold-const.c (fold_read_from_constant_string): Convert result to
171 requested type.
172
f0638e1d
RH
1732004-05-21 Richard Henderson <rth@redhat.com>
174
175 * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
176 (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
177 Don't mark VA_ARG_EXPRs volatile here.
178 (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
179
11ed191c
RH
1802004-05-21 Richard Henderson <rth@redhat.com>
181
182 * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
183 * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
184
b953ebd6
RS
1852004-05-21 Roger Sayle <roger@eyesopen.com>
186
187 * fold-const.c (fold, fold_relational_hi_lo,
188 nondestructive_fold_binary_to_constant,
189 fold_read_from_constant_string): Use fold_convert instead of convert.
190 * builtins.c (simplify_builtin, simplify_builtin_strstr,
191 simplify_builtin_strchr, simplify_builtin_strrchr,
192 simplify_builtin_strpbrk): Use fold_convert instead of convert.
193
e54d0214
DN
1942004-05-21 Diego Novillo <dnovillo@redhat.com>
195
196 * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
197 is NULL.
198
942e0f44
JJ
1992004-05-21 Jakub Jelinek <jakub@redhat.com>
200
201 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
202 override sparc.h definition.
203
59ce6d6b
RS
2042004-05-20 Roger Sayle <roger@eyesopen.com>
205
206 * tree.c (array_type_nelts, save_expr, substitute_in_expr,
207 get_unwidened, get_narrower): Replace build with build2.
208 * fold-const.c (negate_expr, associate_trees, size_binop,
209 fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
210 pedantic_omit_one_operand, distribute_bit_expr,
211 make_bit_field_ref, optimize_bit_field_compare,
212 decode_field_reference, range_binop, make_range,
213 build_range_check, fold_range_test, fold_truthop,
0bc0f41d 214 optimize_minmax_comparison, extract_muldiv_1,
59ce6d6b
RS
215 fold_binary_op_with_conditional_arg, fold_mathfn_compare,
216 fold_inf_compare, fold_single_bit_test, fold,
217 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
218 Likewise replace build with either build2 or build3.
219
3972995b
ILT
2202004-05-20 Ian Lance Taylor <ian@wasabisystems.com>
221
222 * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
223 * calls.c (prepare_call_address): Don't test
224 NO_RECURSIVE_FUNCTION_CSE.
225 * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
226 * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
227 * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
228 * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
229 * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
230 * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
231 * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
232 * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
233 * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
234 * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
235 * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
236 * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
237 Likewise.
238 * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
239 * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
240 * doc/tm.texi (Costs): Remove documentation for
241 NO_RECURSIVE_FUNCTION_CSE.
242
0ef54a47
PB
2432004-05-20 Paul Brook <paul@codesourcery.com>
244
245 * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
246 * unwind-dw2.c (extract_cie_info): Ditto.
247 (_Unwind_FrameState): Change retaddr_column to word type.
248
f4085d4c
RS
2492004-05-20 Roger Sayle <roger@eyesopen.com>
250
251 PR middle-end/3074
252 * fold-const.c (strip_compound_expr): Delete function.
253 (count_cond): Delete function.
254 (fold_binary_op_with_conditional_arg): Only perform transformations
255 "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
256 when a is constant. This greatly simplifies this routine.
257
258 * tree.c (saved_expr_p): Delete function.
259 * tree.h (saved_expr_p): Delete function prototype.
260
b8850dd2
AP
2612004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
262
263 * common.opt (ftree-loop-optimize): Remove.
264
4ac29b33
DJ
2652004-05-20 Daniel Jacobowitz <dan@debian.org>
266
267 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
268 (NM_FOR_TARGET): Use := and $(shell).
269 (mainversion): Remove unused variable.
270
52fe4de8
JDA
2712004-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
272
273 * reorg.c (delete_from_delay_slot): If we have a barrier after the
274 sequence containing the insn to be deleted, always reemit it.
275
7e140280
RH
2762004-05-20 Richard Henderson <rth@redhat.com>
277
278 PR 15454
279 * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
280 * function.c (expand_function_start): Expand static_chain_decl by hand.
281 * gimplify.c (create_tmp_var_name): Export.
282 * tree-gimple.h (create_tmp_var_name): Declare.
283
9bf6462a
AP
2842004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
285
286 * rs6000.c (print_operand) <case 'z'>: Call
287 mark_decl_referenced before assemble_name.
288
30719c65
ZW
2892004-05-20 Zack Weinberg <zack@codesourcery.com>
290
291 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
292 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
293 (cgraph_varpool_node): Hash on the pointer to the decl, not
294 the DECL_UID. Fixes 64-bit bootstrap failure.
295
69260355
RE
2962004-05-20 Richard Earnshaw <rearnsha@arm.com>
297
298 * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
299 we don't earlyclobber operands used in the second insn.
300
1ffae628
SB
3012004-05-20 Steven Bosscher <stevenb@suse.de>
302
303 * tree-mudflap.c: Formatting fixes.
304
965ccc5a
R
3052004-05-20 J"orn Rennecke <joern.rennecke@superh.com>
306
307 * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
308 * gengtype.c (open_base_files): Include reload.h in ifiles.
309 * reload.h (reg_equiv_memory_loc_varray): Declare.
310 * reload1.c (reg_equiv_memory_loc_varray): New variable.
311 (init_reload): Initialize it.
312 (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
313 reg_equiv_memory_loc_varray to size 0.
314 * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
315 growing reg_equiv_memory_loc_varray to the desired size.
316 * passes.c (rest_of_handle_old_regalloc): Likewise.
317 * reload.c: Amend comment on calling init_reload.
318
4ccfc10a
NC
3192004-05-20 Nick Clifton <nickc@redhat.com>
320
321 * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
322 with 'TRAMP' in the body of the macro definition.
323
6bc709c1
L
3242004-05-19 H.J. Lu <hongjiu.lu@intel.com>
325
326 PR target/15383
327 * config/ia64/ia64.c (ia64_expand_compare): Don't check
328 TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
329 cmptf_libfunc isn't set.
330 (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
331 conventions.
332 (ia64_sysv4_init_libfuncs): New.
333
334 * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
335 ia64_sysv4_init_libfuncs.
336
d3a7ef9a
FH
3372004-05-20 Falk Hueffner <falk@debian.org>
338
339 PR other/15526
340 * libgcc2.c (__mulvsi3): Fix overflow test.
341
e916e1d0
AP
3422004-05-19 Andrew Pinski <pinskia@physics.uc.edu>
343
dc44e18a 344 PR c/14171
d2032ad8
AP
345 * reg-stack.c (nan): Rename to ...
346 (not_a_num): Here.
347 (reg_to_stack): Rename nan to not_a_num.
348 (subst_stack_regs_pat): Likewise.
349 (convert_regs_entry): Likewise.
350 (convert_regs_1): Likewise.
351
e916e1d0
AP
352 * tree-cfg.c (find_case_label_for_value): Replace call to
353 simple_cst_equal with tree_int_cst_equal.
354
84c672b9
JL
3552004-05-19 Jeff Law <law@redhat.com>
356
34eb8991
JL
357 * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
358 If the operand is for a use, then strip away the SSA_NAME, do not
359 strip away the SSA_NAME for a set. Never call release_ssa_name.
360 (mark_def_sites): Appropriately pass additional argument to
361 prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME,
362 then set the VDEF_RESULT to the VDEF_OP.
363 (set_def_block): Strip away any SSA_NAME to get to the real
364 underlying variable.
365
84c672b9
JL
366 * tree-ssa-phiopt.c (value_replacement): Handle the case where
367 the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
368 BB directly.
369
0aea6467
ZD
3702004-05-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
371
372 PR c++/15463
373 * loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on
374 result of inverse.
375
376 PR rtl-optimization/15274
377 * loop-iv.c (determine_max_iter, shorten_into_mode,
378 iv_number_of_iterations): Handle constants correctly.
379 * rtl.h (get_mode_bounds): Declaration changed.
380 * stor-layout.c (get_mode_bounds): Return a constant suitable for
381 the target mode.
382
383 PR rtl-optimization/14692
384 * loop-unswitch.c (may_unswitch_on): Try folding the result.
385 (unswitch_single_loop): Work correctly when may_unswitch_on
386 returns a folded constant.
387
388 * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
389 * simplify-rtx.c (simplify_const_relational_operation): Optimize
390 comparisons with mode bounds.
391
392 * function.c (struct temp_slot): Add new field prev.
393 (free_after_compilation, init_temp_slots): Free new fields.
394 (cut_slot_from_list, insert_slot_to_list,
395 temp_slots_at_level, max_slot_level, move_slot_to_level,
396 make_slot_available): New functions.
397 (assign_stack_temp_for_type, combine_temp_slots,
398 find_temp_slot_from_address, preserve_temp_slots,
399 preserve_rtl_expr_result, free_temp_slots,
400 free_temps_for_rtl_expr, pop_temp_slots): Work with
401 the new structure of lists.
402 (mark_all_temps_used): Removed.
403 * function.h (struct function): Field x_temp_slots
404 replaced by x_used_temp_slots and x_avail_temp_slots.
405 (temp_slots): Replaced by ...
406 (used_temp_slots, avail_temp_slots): New.
407 * tree.h (mark_all_temps_used): Declaration removed.
408
409 * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
410 simplify_using_assignment): Take the expression out of
411 the expr_list wrapper.
412
413 * loop-iv.c (iv_number_of_iterations): Improve clasification of
414 infinite loops.
415
31a52b86
RS
4162004-05-19 Roger Sayle <roger@eyesopen.com>
417
418 * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
419 costs should be based on code size when optimizing for size.
420
d28f752b
PB
4212004-05-19 Paolo Bonzini <bonzini@gnu.org>
422
423 * fold-const.c: Remove non-printable character 160.
424
d55b55aa
NC
4252004-05-19 Nick Clifton <nickc@redhat.com>
426
34a86306
NC
427 * doc/invoke.texi (ARM Options): Fix typo.
428 Remove descrption of -mshort-load-bytes and
429 -mno-short-load-bytes.
430
d55b55aa
NC
431 * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
432 missing parenthesis.
433 * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
434 * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
435
6af8eb57
SB
4362004-05-19 Steven Bosscher <stevenb@suse.de>
437
438 * expr.c (store_constructor): Build loop start and end by hand
439 instead of via loop functions from stmt.c.
440 (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
441 Remove the code to expand them.
442
443 * stmt.c (loop_stack): Remove this and everything related.
444 (struct nesting, enum nesting_desc): Update.
445 (expand_fixup): Likewise.
446 (expand_loop_start, expand_start_loop_continue_elsewhere,
447 expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
448 expand_end_null_loop, expand_continue_loop, expand_exit_loop,
449 expand_exit_loop_if_false, expand_exit_loop_top_cond,
450 expand_exit_something): Remove.
451 * tree.h: Remove prototypes.
452
eeab4d81
MS
4532004-05-18 Mike Stump <mrs@apple.com>
454 Devang Patel <dpatel@apple.com>
455
456 * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
457 if this label is for eh.
458 * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
459 * config/darwin.c (darwin_emit_unwind_label): Likewise.
460 * dwarf2out.c (output_call_frame_info): Likewise.
461 * output.h (default_emit_unwind_label): Likewise.
462 * target.h (unwind_label): Likewise.
463 * varasm.c (default_emit_unwind_label): Likewise.
464
465 * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
466 DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
467 DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
468 DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
469 DEBUG_RANGES_SECTION): Define.
470
bb9a388d
ZW
4712004-05-18 Zack Weinberg <zack@codesourcery.com>
472
473 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
474 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
475 (cgraph_varpool_node):
476 Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
477 (cgraph_function_possibly_inlined_p): Use the decl itself for
478 the key, not DECL_ASSEMBLER_NAME.
479 (change_decl_assembler_name): No need to muck with the hash tables.
480 (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
481 Delete.
482 * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
483 for the key, not DECL_ASSEMBLER_NAME.
484 * cgraph.h: Remove prototypes of deleted functions.
485 * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
486 (mark_decl_referenced): New function.
487 * tree.h: Prototype mark_decl_referenced.
488 * final.c (output_addr_const) <case SYMBOL_REF>: Call
489 mark_decl_referenced before assemble_name.
490 * c-decl.c (finish_decl): Use mark_decl_referenced.
491
3a3f4da9
AP
4922004-05-18 Andrew Pinski <pinskia@physics.uc.edu>
493 Jeff Law <law@redhat.com>
494
cc52902d
AP
495 * tree-ssa-phiopt.c (abs_replacement): New function.
496 (empty_block_p): New function extracted from...
497 (candidate_bb_for_phi_optimization): Break out empty block test.
498 (conditional_replacement): Use empty_block_p.
499 (value_replacement): Similarly.
500
3a3f4da9
AP
501 * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
502 * tree-ssa-phiopt.c: Include flags.h.
503 (conditional_replacement): Remove argument names from prototype.
504 Minor formatting and comment fixes.
505 (tree_ssa_phiopt): If conditional_replacement returns false, then
506 call value_replacement.
507 (value_replacement): New function.
508
14886ab7
JL
5092004-05-18 Jeff Law <law@redhat.com>
510
1833df5c
JL
511 * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
512 from conditional_replacement.
513 (candidate_bb_for_phi_optimization): Similarly.
514 (conditional_replacement): Use replace_phi_with_stmt and
515 candidate_bb_for_phi_optimization.
516
14886ab7
JL
517 * tree-ssa-phiopt.c: Fix various formatting issues.
518
70315fcd
SB
5192004-05-18 Steven Bosscher <stevenb@suse.de>
520
521 * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
522 s390_expand_cmpmem): Do not use expand_start_loop and
523 expand_end_loop, instead build the loop manually.
524
f82ddcae
AM
5252004-05-18 Alan Modra <amodra@bigpond.net.au>
526
527 * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
528 (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
529
dd747311
JL
5302004-05-17 Jeff Law <law@redhat.com>
531
532 * toplev.h (flag_delete_null_pointer_checks): Move from here to...
533 * flags.h (flag_delete_null_pointer_checks): Here.
534 * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
535 * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
536 (add_phi_arg, remove_phi_arg_num): Similarly.
537 * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
538 property into PHI nodes.
539 * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
540 (record_equivalences_from_phis): If all PHI arguments are known to be
541 nonzero, then the result must be nonzero as well.
8eb14e2e
SB
542 (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
543 (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
dd747311
JL
544 appropriately. Walk the USE-DEF chains and propagate nonzero property
545 as appropriate.
546 * tree.h (PHI_ARG_NONZERO): Define.
547 (phi_arg_d): Add nonzero flag.
548
b4117c30
ZW
5492004-05-17 Zack Weinberg <zack@codesourcery.com>
550
551 * f: Entire directory removed
552
553 * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
554 (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
555 (g77_integer_type_node, g77_uinteger_type_node)
556 (g77_longint_type_node, or g77_ulongint_type_node): Delete.
557 * c-common.c (c_common_nodes_and_builtins): Do not initialize
558 the above set of variables.
559
560 * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
561 * doc/invoke.texi, doc/standards.texi: Remove cross-references
562 to g77 manual.
563
6944d9dd
SB
5642004-05-17 Steven Bosscher <stevenb@suse.de>
565
5e806501 566 PR tree-optimization/15438
6944d9dd
SB
567 * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
568 attributed functions as pure or const.
569
e1564e1d
FCE
5702004-05-17 Frank Ch. Eigler <fche@redhat.com>
571
572 * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
573 from source code with errors.
574
a2824db3
RM
5752004-05-17 Ranjit Mathew <rmathew@hotmail.com>
576
577 Enable tree browser for all front ends.
578 * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
579 (BACKEND): ...to here.
580
2c6b27c3
JH
5812004-05-17 Jan Hubicka <jh@suse.cz>
582
583 * i386.c (construct_container): Do not produce BLKmode registers.
584 (classify_argument): Properly compute alignment of complex types.
585
044b3892
L
5862004-05-17 H.J. Lu <hongjiu.lu@intel.com>
587
588 PR target/15084
589 * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
590 and renamed to movdi_insv_1_rex64.
591 (insv): Support SImode for 32bit and DImode for 64bit.
592
646ca712
RS
5932004-05-17 Richard Sandiford <rsandifo@redhat.com>
594
595 * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
596 (TARGET_SWITCHES): Remove debugg.
597 * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
598 TARGET_64BIT.
599 (subdi3): Replace the define_expand with a define_insn, the latter
600 renamed from subdi3_internal_3.
601 (negdi2): Likewise negdi2_internal_2.
602 (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
603 (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
604 and associated define_splits.
605 (adddi3_internal): Renamed from adddi3_internal_3.
606 (ashldi3_internal): Likewise ashldi3_internal4.
607 (ashrdi3_internal): Likewise ashrdi3_internal4.
608 (lshrdi3_internal): Likewise lshrdi3_internal4.
609
d83aba0f
RS
6102004-05-17 Richard Sandiford <rsandifo@redhat.com>
611
612 * optabs.c (expand_unop): Try implementing negation using subtraction
613 from zero.
614
15581992
JDA
6152004-05-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
616
617 * pa.md: Fix typo from last change. Remove DFmode move to and from
618 SAR register.
619
2a2789d8
RE
6202004-05-16 Richard Earnshaw <rearnsha@arm.com>
621
622 PR target/10982
623 * arm.md (ne_zeroextractsi): Convert to insn-and-split.
624 (ne_zeroextractsi_shifted): New pattern.
625 (ite_ne_zeroextractsi): New pattern.
626 (ite_ne_zeroextractsi_shifted): New pattern.
627
673fda6b
SB
6282004-05-15 Steven Bosscher <stevenb@suse.de>
629
630 * c-gimplify.c (c_genericize):
631 Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
632 * c-parse.in <expr_no_commas>: Likewise.
633 <if_prefix>: Likewise.
634 <select_or_iter_stmt>: Likewise.
635 * expr.c (expand_var, expand_expr_real_1): Likewise.
636 * expr.h (expand_expr): Make it a static inline function.
637 Move prototype for expand_expr_real up before this.
638 * fold-const.c (fold_relational_hi_lo, fold_relational_const):
639 Likewise.
640 * gimplify.c (gimple_boolify, gimplify_addr_expr,
641 gimplify_asm_expr, gimplify_expr): Likewise.
642 * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
643 dump_function_to_file): Likewise.
644 * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
645 * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
646 * tree-into-ssa.c (dump_tree_ssa): Likewise.
647 * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
648 Likewise.
649 * tree-optimize.c (execute_one_pass): Likewise.
650 * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
651 * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
652
653 * objc/objc-act.c (objc_build_try_enter_fragment,
654 objc_build_try_epilogue, objc_build_catch_stmt,
655 objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
656 with lang_hooks.foo ().
657
e2bb53e5
RS
6582004-05-15 Roger Sayle <roger@eyesopen.com>
659
660 * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
661 that simplify_builtin doesn't destructively modify its argument.
662
dc491742
RE
6632004-05-15 Richard Earnshaw <reanrsha@arm.com>
664
b4117c30 665 * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
dc491742
RE
666 implementations for ARM and Thumb.
667 * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
668
428d4d76
TQ
6692004-05-15 Thomas Quinot <quinot@act-europe.fr>
670
671 * prefix.c (update_path): Replace PREFIX with KEY only
672 when it matches a full directory name in PATH.
673
61f0ccff
RE
6742004-05-15 Richard Earnshaw <reanrsha@arm.com>
675
676 * arm.h (TARGET_APCS_32): Delete.
677 (TARGET_MMU_TRAPS): Delete.
678 (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__. Never
679 define __APCS_26__.
680 (CPP_SPEC): Remove checking of -mapcs-{26,32}.
681 (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
682 (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
683 (prog_mode_type): Delete.
684 (PROMOTE_MODE): Always promote unsigned for HImode.
685 (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
686 (MASK_RETURN_ADDR): Simplify.
687 * arm.c (arm_prgmode): Delete.
688 (arm_override_options, arm_gen_rotated_half_load): Simplify.
689 (print_multi_reg, output_return_instruction): Simplify.
690 (arm_output_epilogue, arm_final_prescan_insn): Simplify.
691 (arm_return_addr): Simplify.
692 * arm.md (prog_mode): Delete.
693 (conds): Simplify.
694 (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
695 (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
696 (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
697 (loadhi_shiftpredec): Delete.
698 (peephole for post-increment on HImode load): Delete.
699 * arm/crtn.asm: (FUNC_END): Simplify.
700 * arm/lib1funcs.asm: Remove APCS-26 return macros.
701 * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
b4117c30 702 * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
61f0ccff
RE
703 * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
704 MULTILIB_DEFAULTS as required.
705 * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
706 * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
707 variables as required.
708 * doc/invoke.texi (ARM Options): Remove obsolete flags.
709
11c01dcc
AM
7102004-05-15 Alan Modra <amodra@bigpond.net.au>
711
712 * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
713 UNITS_PER_WORD to calculate gpr size. Re-instate code to set reg
714 count to 8 to handle n_reg > 2.
715
aaa67502
JM
7162004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
717
718 * doc/extend.texi: Update WG14 URL.
719
827c06b6
SB
7202004-05-15 Steven Bosscher <stevenb@suse.de>
721
722 * basic-block.h (life_analysis, delete_noop_moves):
723 Update prototypes.
724 * bt-load.c (branch_target_load_optimize): Don't take the
725 insns stream as an argument. Update the life_analysis calls.
726 * combine.c (combine_instructions): Update delete_noop_moves
727 calls.
728 * flow.c (notice_stack_pointer_modification): Don't take the
729 insns stream as an argument. Work on the flow graph.
730 (life_analysis): Likewise.
731 (delete_noop_moves): Likewise.
732 * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
733 (rest_of_handle_life): Update life_analysis call.
734 (rest_of_compilation): Likewise, and also update
735 branch_target_load_optimize call.
736 * ra.c (reg_alloc): Update life_analysis call.
737 * reg-stack.c (reg_to_stack): Likewise. Also, don't take
738 the insns stream as an argument.
739 * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
740 call.
741 * rtl.c (branch_target_load_optimize, reg_to_stack): Update
742 prototypes.
743 * value-profile.c (branch_prob): Update life_analysis call.
744 * web.c (web_main): Work on the CFG, not on the insns stream.
745
746 * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
747 * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
748 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
749
e9a75776
JM
7502004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
751
752 PR c/15444
753 * c-format.c (avoid_dollar_number): New function.
754 (check_format_info_main): Call avoid_dollar_number when operand
755 numbers might occur but has_operand_number == 0.
756
3053b100
RE
7572004-05-14 Richard Earnshaw <rearnsha@arm.com>
758
759 * arm.md (all peephole2 patterns): Use predicates that validate
760 register classes as appropriate.
761
b89e96ac
SB
7622004-05-14 Steven Bosscher <stevenb@suse.de>
763
764 PR opt/14472
765 * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
766 ignore type conversions that do not inhibit tail calling.
767 (find_tail_calls): Likewise.
768
14bc8dc2
JL
7692004-05-14 Jeff Law <law@redhat.com>
770
91cde0c3
JL
771 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
772 bother marking bypassed virtuals for out-of-ssa. Instead merge
827c06b6 773 bypassed virtuals into vars_to_rename just before into-ssa pass.
91cde0c3 774
14bc8dc2
JL
775 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
776 so that it picks up more opportunities to eliminate ABS expressions
777 or turn them into negations.
778
e83f4801
SB
7792004-05-14 Steven Bosscher <stevenb@suse.de>
780
781 * passes.c (rest_of_handle_null_pointer): Remove.
782 (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
783 (rest_of_compilation): Likewise.
784 * rtl.h (delete_null_pointer_checks): Remove prototype.
785 * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
786 Remove declarations.
787 (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
788 compute_kill_rd, compute_rd, alloc_avail_expr_mem,
789 free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
790 expr_reaches_here_p, computing_insn, def_reaches_here_p,
791 can_disregard_other_sets, handle_avail_expr, classic_gcse,
792 one_classic_gcse_pass, invalidate_nonnull_info,
793 delete_null_pointer_checks_1, delete_null_pointer_checks,
794 expr_reached_here_p_work): Remove.
795 (gcse_main): Do not perform classic GCSE when optimizing for size.
796 (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
797 are never used.
798
571325db
AP
7992004-05-14 Andrew Pinski <pinskia@physics.uc.edu>
800
801 PR optimization/14466
802 * tree-complex.c (make_temp): Remove.
803 (gimplify_val): Replace make_temp with make_rename_temp
804 and add NULL as the second argument.
805 (expand_complex_div_wide): Likewise.
806 * tree-dfa.c (make_rename_temp): New function.
807 * tree-flow.h (make_rename_temp): Declare.
808 * tree-sra.c (make_temp): Remove.
809 (lookup_scalar): Replace make_temp with make_rename_temp.
810 (create_scalar_copies): Likewise.
811 * tree-ssa-phiopt.c (conditional_replacement): When we
812 get non gimple create a temporary variable to hold the
813 casted expression.
814
13c1cd82
PB
8152004-05-14 Paul Brook <paul@codesourcery.com>
816
817 * stor-layout.c (update_alignment_for_field): Use
818 targetm.align_anon_bitfield.
819 * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
820 (TARGET_INITIALIZER): Use it.
821 * target.h (struct gcc_target): Add align_anon_bitfield.
822 * config/arm/arm.c (arm_align_anon_bitfield): New function.
823 (TARGET_ALIGN_ANON_BITFIELD): Define.
824 * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
825
90afe2c9
ZW
8262004-05-13 Zack Weinberg <zack@codesourcery.com>
827
828 * tree.def (documentation): Remove mention of class 'b'.
829 (BLOCK): Now in class 'x'.
830 * c-common.c (verify_tree): Remove case 'b'.
831 * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
832 * calls.c (calls_function_1): Control cannot get past the switch
833 when exp is a BLOCK.
834 * print-tree.c (print_node): Move code for class 'b' to the class
835 'c'/'x' switch, as case BLOCK.
836 * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
837 (unsafe_for_reeval, substitute_placeholder_in_expr)
838 (stabilize_reference_1): Remove case 'b'.
839 * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
840 of something being 'b' to tests for TREE_CODE of something being
841 BLOCK.
842 * tree-ssa-operands.c (get_expr_operands): Likewise.
843
eadf906f
DN
8442004-05-13 Diego Novillo <dnovillo@redhat.com>
845
846 * tree-gimple.c: Rename from tree-simple.c.
847 * tree-gimple.h: Rename from tree-simple.h.
848 * c-gimplify.c: Rename from c-simplify.c
849 * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
850 langhooks.c, tree-alias-ander.c, tree-alias-common.c,
851 tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
852 tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
853 tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
854 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
855 tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
856 Update.
857
fc55c95e
RM
8582004-05-14 Ranjit Mathew <rmathew@hotmail.com>
859
860 * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
861
2b648957
AP
8622004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
863
6b9bee8e
AP
864 * tree-ssa.c (delete_tree_ssa): XFREE
865 bitmaps allocated with BITMAP_XMALLOC.
866
15342341
AP
867 * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
868 idfs_cache at the end of the function.
869
870 * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
623f4556
AP
871 at the end of the function.
872
960076d9
AP
873 * tree-ssa-dce.c (perform_tree_ssa_dce): Free
874 el at the end of the function.
875
8b752086
AP
876 * tree-into-ssa.c (insert_phi_nodes_for): XFREE
877 bitmaps allocated with BITMAP_XMALLOC.
878
77e23325
AP
879 * loop-unswitch.c (unswitch_single_loop): Free bbs at
880 the end.
881
07a1f795
AP
882 * final.c (shorten_branches): Free uid_shuid before
883 reallocating it.
884
2b648957
AP
885 * bb-reoder.c (connect_traces): Free cold_traces at the end.
886
91581bcc
JL
8872004-05-13 Jeff Law <law@redhat.com>
888
02ea8d06
JL
889 * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
890 variables. Simplify slightly by using USE_OP/DEF_OP instead
891 of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
892
6c875a31
JL
893 * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
894 rather than iterating through the blocks testing each bit in
895 livein to initialize the worklist.
896 (mark_def_sites): Remove useless checks of KILLS for virtual
897 operands.
898
91581bcc
JL
899 * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
900 new parameters for the statement and variable worklist as well
901 as a bitmap of interesting SSA_NAMEs. Walk over the statement
902 worklist recording interesting variables in the variable worklist
903 and bitmap. Handle casts between integral and boolean types.
904 (substitute_single_use_vars): Accept new parameters for the statement
905 and variable worklist. When a substitution is made add a new
906 entry to the statement worklist. Handle casts between integral
907 and boolean types.
908 (tree_ssa_forward_propagate_single_use_vars): Rework to pass
909 worklists to children. Iterate until the statement worklist
910 is empty.
911
0b87eff5
AP
9122004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
913
520f0c48
AP
914 * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
915 the end of the block.
916
f472590a
AP
917 * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
918 with BITMAP_XMALLOC.
919
d1f9044b
AP
920 * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
921 with BITMAP_XMALLOC.
922
cfa4cb00
AP
923 * tree-ssa-dom.c (tree_ssa_dominator_optimize):
924 Free nonzero_vars at the end of the function.
925
0b87eff5
AP
926 * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
927 need to generate code instead of a NOP_EXPR.
928
eb18fd8d
ILT
9292004-05-13 Ian Lance Taylor <ian@wasabisystems.com>
930
931 * gcc.c (default_compilers): Fill out initializers for new Fortran
932 entries.
933
d81d0bdd
PB
9342004-05-13 Paul Brook <paul@codesourcery.com>
935
936 * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
937
6b045785
PB
9382004-05-13 Paul Brook <paul@codesourcery.com>
939
940 * config/arm/arm.c (arm_default_short_enums): New function.
941 (TARGET_DEFAULT_SHORT_ENUMS): Define.
942
6de9cd9a
DN
9432004-05-13 Diego Novillo <dnovillo@redhat.com>
944
945 Merge from tree-ssa-20020619-branch.
946
947 * Makefile.in (reload1.o-warn): Add.
948 (tree-alias-ander.o-warn): Add.
949 (GMPLIBS): Define.
950 (GMPINC): Define.
951 (BANSHEELIB): Define.
952 (BANSHEEINC): Define.
953 (TREE_DUMP_H): Define.
954 (TREE_SIMPLE_H): Define.
955 (TREE_FLOW_H): Define.
956 (LIBDEPS): Add BANSHEELIB.
957 (INCLUDES): Add BANSHEEINC and GMPINC.
958 (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
959 c-mudflap.o and c-pretty-print.o.
960 (C_OBJS): Remove c-pretty-print.o.
961 (OBJS-common): Remove sibcall.o.
962 Add tree-cfg.o, tree-dfa.o, tree-eh.o,
963 tree-ssa.o, tree-optimize.o, tree-simple.o,
964 tree-alias-type.o, gimplify.o, tree-pretty-print.o,
965 tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
966 tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
967 tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
968 tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
969 tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
970 tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
971 tree-tailcall.o, gimple-low.o, tree-iterator.o,
972 tree-phinodes.o, tree-ssanames.o, tree-sra.o,
973 tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
974 tree-profile.o.
975 (OBJC-archive): Add tree-nomudflap.o.
976 (cc1): Add dependency on @TREEBROWSER@.
977 (c-decl.o): Add dependency on TREE_DUMP_H.
978 (c-dump.o): Likewise.
979 (c-common.o): Add dependency on tree-iterator.h
980 (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
981 (gtype-desc.o): Add dependency on TREE_FLOW_H.
982 (tree.o): Add dependency on tree-iterator.h,
983 BASIC_BLOCK_H and TREE_FLOW_H.
984 (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
985 (langhooks.o): Add dependency on TREE_SIMPLE_H.
986 (tree-alias-type.o, tree-alias-ander.o,
987 tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
988 tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
989 tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
990 tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
991 domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
992 tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
993 tree-nested.o, tree-iterator.o, tree-dfa.o,
994 tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
995 tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
996 gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
997 tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
998 tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
999 tree-sra.o, tree-complex.o, tree-profile.o,
1000 rtl-profile.o): New rules.
1001 (function.o): Add dependency on basic-block.h
1002 (expr.o): Add dependency on tree-iterator.h.
1003 (sibcall.o): Remove.
1004 (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
1005 (cfg.o): Add dependency on TIMEVAR_H.
1006 (cfghooks.o): Add dependency on TREE_FLOW_H.
1007 (reg-stack.o): Add dependency on basic-block.h.
1008 (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
1009 c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
1010 tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
1011 tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
1012 tree-alias-type.h, tree-alias-common.h,
1013 tree-alias-type.c, tree-alias-common.c,
1014 tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
1015 rtl-profile.c and tree-nested.c.
1016 (gt-tree-alias-common.h, gt-tree-mudflap.h,
1017 gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
1018 gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
1019 gt-tree-cfg.h, gt-tree-nested.h): New rules.
1020 (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
1021 * basic-block.h: Include predict.h
1022 (struct edge_def): Add GTY marker.
1023 Change field 'insns' to be a union of tree and rtx.
1024 (EDGE_TRUE_VALUE): Define.
1025 (EDGE_FALSE_VALUE): Define.
1026 (EDGE_EXECUTABLE): Define.
1027 (struct bb_ann_d): Forward declare.
1028 (struct basic_block_def): Add GTY marker.
1029 Remove fields head_tree and end_tree.
1030 Add fields stmt_list, rbi and tree_annotations.
1031 (struct reorder_block_def): Define.
1032 (basic_block_info): Add GTY marker.
1033 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
1034 variables instead of macros.
1035 (flow_call_edges_add): Remove declaration.
1036 (make_eh_edge): Remove declaration.
1037 (brief_dump_cfg, find_edge, tree_predicted_by_p,
1038 rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
1039 predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
1040 cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
1041 alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
1042 (try_redirect_by_replacing_jump): Modfiy return type to
1043 edge instead of bool.
1044 * bb-reorder.c (copy_bb): Call duplicate_block
1045 instead of cfg_layout_duplicate_bb.
1046 (copy_bb_p): Call can_duplicate_block_p instead of
1047 cfg_layout_can_duplicate_bb_p.
1048 * bitmap.c (bitmap_first_set_bit): Abort if word
1049 wasn't found.
1050 (bitmap_last_set_bit): Likewise.
1051 * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
1052 (DEF_FUNCTION_TYPE_3): Add.
1053 * builtins.c (c_strlen): Make extern.
1054 (builtin_save_expr): New.
1055 (expand_builtin_nonlocal_goto): New.
1056 (expand_builtin_constant_p): Remove.
1057 (expand_builtin_mathfn): Call builtin_save_expr instead
1058 of save_expr.
1059 (expand_builtin_mathfn_2): Likewise.
1060 (expand_builtin_strcmp): Likewise.
1061 (expand_builtin_strncmp): Likewise.
1062 (expand_builtin_strcat): Likewise.
1063 (fold_builtin_cabs): Likewise.
1064 (expand_builtin_alloca): Don't trigger if -fmudflap is
1065 given.
1066 (build_string_literal): Set TREE_INVARIANT on new node.
1067 (expand_builtin_profile_fun): New.
1068 (round_trampoline_addr): New.
1069 (expand_builtin_init_trampoline): New.
1070 (expand_builtin_adjust_trampoline): New.
1071 (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
1072 <BUILT_IN_CONSTANT_P>: Return const0_rtx;
1073 <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
1074 BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
1075 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
1076 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
1077 Handle.
1078 (fold_builtin_expect): New.
1079 (fold_builtin_isascii): Don't return non-constant results
1080 in GIMPLE form.
1081 (fold_builtin_isdigit): Likewise.
1082 (fold_builtin_1): New.
1083 (fold_builtin): Call it.
1084 (build_function_call_expr): Update call to build a new
1085 CALL_EXPR.
1086 (purge_builtin_constant_p): Remove.
1087 (simplify_builtin, simplify_builtin_memcmp,
1088 simplify_builtin_strcmp, simplify_builtin_strncmp,
1089 simplify_builtin_strpbrk, simplify_builtin_strstr,
1090 simplify_builtin_strchr, simplify_builtin_strrchr,
1091 simplify_builtin_strcat, simplify_builtin_strncat,
1092 simplify_builtin_strspn, simplify_builtin_strcspn,
1093 simplify_builtin_next_arg, simplify_builtin_va_start,
1094 simplify_builtin_sprintf): New.
1095 * builtins.def (BUILT_IN_STACK_ALLOC,
1096 BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
1097 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
1098 BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
1099 BUILT_IN_PROFILE_FUNC_EXIT): Define.
1100 * c-common.c: Include tree-iterator.h and hashtab.h.
1101 (lang_statement_code_p): Declare.
1102 (lang_gimplify_stmt): Declare.
1103 (fix_string_type): Set TREE_INVARIANT for value.
1104 (pointer_int_sum): Rely on build to set TREE_CONSTANT.
1105 (c_type_hash): New.
1106 (c_common_get_alias_set): Handle multiple type nodes
1107 referring to "the same" type, currently for C90 only.
1108 (c_add_case_label): Use create_artificial_label.
1109 (finish_label_address_expr): Don't set TREE_CONSTANT on
1110 result.
1111 (c_expand_expr): Don't handle STMT_EXPR.
1112 (handle_alias_attribute): Marke aliased variables to be
1113 TREE_STATIC.
1114 (handle_nonnull_attribute): Initialize arg_num.
1115 (check_function_nonnull): Likewise.
1116 (c_walk_subtrees): New.
1117 (c_estimate_num_insns_1): Don't handle
1118 EXPR_WITH_FILE_LOCATION nor FILE_STMT.
1119 (c_decl_uninit_1): Remove.
1120 (c_decl_uninit): Remove.
1121 (c_warn_unused_result): New.
1122 * c-common.def (ASM_STMT): Change number of operands
1123 to 4.
1124 (FILE_STMT): Remove.
1125 * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
1126 Remove.
1127 (lang_gimplify_stmt): Add.
1128 (expand_stmt): Remove.
1129 (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
1130 ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
1131 ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
1132 FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
1133 ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
1134 (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1135 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1136 genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
1137 genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
1138 genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
1139 genrtl_compound_stmt, genrtl_asm_stmt,
1140 genrtl_cleanup_stmt, c_decl_uninit): Remove.
1141 (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
1142 c_tree_chain_matters_p, c_warn_unused_result,
1143 c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
1144 Declare.
1145 * c-convert.c (convert): Make convert work when
1146 converting to compatible types across translation unit.
1147 * c-decl.c: Include langhooks.h, tree-mudflap.h,
1148 tree-simple.h, diagnostic.h and tree-dump.h
1149 (merge_decls): Initialize oldtype to NULL.
1150 (finish_decl): Use DECL_HARD_REGISTER instead of
1151 DECL_C_HARD_REGISTER.
1152 (check_bitfield_type_and_width): Check for null
1153 lang_type_specific when check the precision of an enum.
1154 (grokdeclarator): Immediately layout an ARRAY_TYPE used
1155 in a pointer-to-array declarator.
1156 (finish_struct): Clear allocated struct lang_type.
1157 (finish_enum): Set enum_min and enum_max. Set
1158 TYPE_MIN/MAX_VALUE to the limits of the compatible type,
1159 not to the enumerators.
1160 (set_decl_nonlocal): New.
1161 (store_parm_decls): Use it via walk_tree.
1162 (c_finalize): New.
1163 (finish_function): When !targetm.have_ctors_dtors,
1164 record static constructors and destructors here...
1165 (c_expand_body_1): ... not here.
1166 (c_expand_decl): Rename from c_expand_decl_stmt.
1167 Handle all C-specific expansion semantics.
1168 * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
1169 STMT_LINENO.
1170 * c-format.c (handle_format_arg_attribute): Initialize
1171 format_num.
1172 * c-lang.c: Include tree-inline.h
1173 (LANG_HOOKS_EXPAND_DECL,
1174 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1175 LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
1176 LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
1177 LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
1178 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1179 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
1180 (c_types_compatible_p): New.
1181 * c-mudflap.c: New file.
1182 * c-objc-common.c: Include tree-mudflap.h
1183 (start_cdtor, finish_cdtor): Collapse
1184 together into
1185 (build_cdtor): ...here. Update to construct a complete tree
1186 for the function. No need to call push_scope, pop_scope, or
1187 clear_last_expr, or set current_function_cannot_inline.
1188 (c_missing_noreturn_ok_p): Change prototype to return
1189 bool.
1190 (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
1191 * c-opts.c (c_common_handle_option): Move handling of -fdump- to
1192 opts.c.
1193 (c_common_post_options): Don't ever use rtl inlining.
1194 * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
1195 * c-pragma.c (handle_pragma_redefine_extname): Define
1196 always.
1197 (init_pragma): Activate #pragma redefine_extname for mudflap.
1198 * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
1199 (pp_c_initializer): Accept any type CONSTRUCTOR.
1200 (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
1201 COMPLEX_TYPE.
1202 (decl_name_str): New local function.
1203 (pp_c_direct_declarator): Call it.
1204 (pp_c_primary_expression): Call it.
1205 (pp_c_id_expression): Call it.
1206 (pp_c_statement): Call it.
1207 (print_c_tree): Create new pp object.
1208 * c-pretty-print.h (pp_c_tree_decl_identifier,
1209 print_c_tree): Declare.
1210 * c-semantics.c: Include langhooks.h
1211 (lang_expand_stmt, lang_expand_decl_stmt,
1212 find_reachable_label_1, find_reachable_label,
1213 expand_unreachable_if_stmt, expand_unreachable_stmt,
1214 genrtl_do_stmt_1): Remove.
1215 (begin_stmt_tree): Don't check for changed filename.
1216 Call annotate_with_locus.
1217 (finish_stmt_tree): Don't set line for end of function.
1218 (build_stmt): Don't check type nodes for
1219 side effects.
1220 (build_stmt): Set TREE_SIDE_EFFECTS.
1221 Set EXPR_LOCUS instead of STMT_LINENO.
1222 (lang_expand_stmt, lang_expand_decl_stmt,
1223 expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1224 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1225 genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
1226 genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
1227 genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
1228 genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
1229 genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
1230 find_reachable_label_1, expand_unreachable_if_stmt,
1231 expand_unreachable_stmt): Remove.
1232 (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
1233 * c-simplify.c: New file.
1234 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
1235 (struct lang_type): Add fields enum_min and enum_max.
1236 (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
1237 (c_expand_decl, c_missing_noreturn_ok_p,
1238 c_types_compatible_p): Declare.
1239 * c-typeck.c (tagged_types_tu_compatible_p): Allow for
1240 compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
1241 (default_function_array_conversion): Rely on build to
1242 set TREE_CONSTANT.
1243 (parser_build_binary_op, pointer_diff): Likewise.
1244 (build_unary_op, build_binary_op): Likewise.
1245 (build_array_ref):
1246 (build_external_ref): Set TREE_INVARIANT.
1247 (build_c_cast, pop_init_level): Likewise.
1248 (process_init_element): Use ASM_VOLATILE_P.
1249 (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
1250 (c_finish_case): Call c_do_switch_warnings.
1251 * c.opt (fdump-): Remove.
1252 * calls.c (try_to_integrate): Remove.
1253 (prepare_call_address): Replace fndecl arg with a
1254 precomputed static chain value.
1255 (emit_call_1): New argument for full call expr.
1256 (flags_from_decl_or_type): Call special_function_p.
1257 (initialize_argument_information): Add argument
1258 may_tailcall.
1259 (purge_reg_equiv_notes): New.
1260 (expand_call): Do not try to expand calls inline.
1261 (fixup_tail_calls): New.
1262 * cfg.c: Include timevar.h and ggc.h.
1263 (bb_pool, edge_pool): Remove.
1264 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
1265 (entry_exit_blocks): Remove.
1266 (rbi_pool): Declare.
1267 (init_flow): Do not create pools.
1268 Allocate entry/exit block.
1269 (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
1270 (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
1271 (unlink_block): Clear b->prev_bb and b->next_bb.
1272 (compact_blocks): Clear all slots of BASIC_BLOCK array.
1273 (dump_flow_info): Work on trees too.
1274 (dump_cfg_bb_info): New.
1275 (brief_dump_cfg): New.
1276 * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
1277 (find_edge): New.
1278 * cfgbuild.c (rtl_make_eh_edge): Rename from
1279 make_eh_edge. Update all users.
1280 (find_basic_blocks): Don't call VARRAY_FREE on
1281 basic_block_info.
1282 * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
1283 and newpos2.
1284 (delete_unreachable_blocks): Return changed status.
1285 (merge_seq_blocks): New.
1286 * cfghooks.c: Include tree-flow.h
1287 (tree_register_cfg_hooks, ir_type): New.
1288 (redirect_edge_and_branch): Change return type to edge.
1289 (predict_edge, predicted_by_p, can_duplicate_block_p,
1290 duplicate_block, block_ends_with_call_p,
1291 block_ends_with_condjump_p, flow_call_edges_add): New.
1292 * cfghooks.h (redirect_edge_and_branch): Change return
1293 type to edge.
1294 (predict_edge, predicted_by_p, can_duplicate_block_p,
1295 duplicate_block, block_ends_with_call_p,
1296 block_ends_with_condjump_p, flow_call_edges_add): Declare.
1297 (redirect_edge_and_branch): Change return type to edge.
1298 (struct cfg_hooks): Add fields block_ends_with_call_p,
1299 block_ends_with_condjump_p, flow_call_edges_add,
1300 predict_edge, predicted_by_p, can_duplicate_block_p and
1301 duplicate_block.
1302 (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
1303 * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
1304 (fixup_reorder_chain): Use initialize_bb_rbi.
1305 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
1306 (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
1307 (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
1308 (insn_locators_initialize): Use new info about blocks.
1309 * cfglayout.h (typedef struct reorder_block_def): Moved to
1310 basic_block.h.
1311 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
1312 removed.
1313 * cfgloop.c: Include tree.h and tree-flow.h.
1314 * cfgloop.h (create_loop_notes): Declare.
1315 * cfgloopmanip.c (create_loop_notes): New.
1316 * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
1317 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
1318 and duplicate_block fields.
1319 (create_basic_block_structure): Don't look at
1320 RTX_INTEGRATED_P.
1321 (rtl_block_ends_with_call_p): New.
1322 (rtl_block_ends_with_condjump_p): New.
1323 (need_fake_edge_p): Moved from cfganal.c.
1324 (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
1325 (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
1326 rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
1327 (cfg_layout_rtl_cfg_hooks): Ditto.
1328 * cgraph.c (cgraph_mark_reachable_node): Don't force nested
1329 functions to be reachable.
1330 * cgraphunit.c (decide_is_function_needed):
1331 * cgraphunit.c (decide_is_function_needed): Nested functions of extern
1332 inline functions don't need to be output.
1333 (cgraph_assemble_pending_functions): Don't do anything
1334 special for nested functions.
1335 (cgraph_mark_functions_to_output): Likewise.
1336 (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
1337 (cgraph_analyze_function): Use estimate_num_insns.
1338 (cgraph_mark_functions_to_output): Likewise.
1339 (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
1340 (cgraph_expand_function): Allow functions to not be
1341 emitted.
1342 (cgraph_remove_unreachable_nodes):
1343 (cgraph_recursive_inlining_p): Simplify.
1344 (lookup_recursive_calls,
1345 cgraph_decide_recursive_inlining): New.
1346 (cgraph_decide_inlining_*): Update calls of
1347 cgraph_mark_inline.
1348 * combine.c (get_pos_from_mask): Always set *plen.
1349 * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
1350 ftree-based-profiling, ftree-ccp, ftree-ch,
1351 ftree-combine-temps, ftree-copyrename, ftree-dce,
1352 ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
1353 ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
1354 ftree-lrs): Add.
1355 * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
1356 Undefine.
1357 * configure.ac: Add --enable-tree-browser option.
1358 Add --with-libbanshee option.
1359 Add GMPLIBS and GMPINC.
1360 * configure: Regenerate.
1361 * coverage.c (tree_ctr_tables): New.
1362 (coverage_counter_alloc): Use it.
1363 (build_ctr_info_value): Ditto.
1364 (coverage_counter_ref): Ditto. Rename to rtl_coverage_counter_ref.
1365 (tree_coverage_counter_ref): New.
1366 * coverage.h (coverage_counter_ref): Remove declaration.
1367 (rtl_coverage_counter_ref): Declare.
1368 (tree_coverage_counter_ref): Declare.
1369 * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
1370 (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
1371 * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
1372 (struct cse_basic_block_data): Rename enum values to not
1373 conflict with profile.h; update all uses.
1374 * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
1375 in comments.
1376 * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
1377 * diagnostic.h (debug_output_buffer, dump_generic_node,
1378 print_generic_stmt, print_generic_stmt_indented,
1379 print_generic_expr, print_generic_decl,
1380 debug_generic_expr, debug_generic_stmt, debug_c_tree):
1381 Declare.
1382 * dominance.c: Cache immediate dominators.
1383 * domwalk.c: New file.
1384 * domwalk.h: New file.
1385 * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
1386 (gen_subprogram_die): Generate a DIE for a named
1387 return value.
1388 (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
1389 (add_location_or_const_value_attribute): Likewise.
1390 (add_bound_info): Likewise.
1391 (gen_decl_die): Likewise.
1392 * emit-rtl.c (maybe_set_first_label_num): New.
1393 (copy_most_rtx): Don't copy the integrated flag.
1394 Copy the new return_val flag.
1395 * et-forest.c (MAX_NODES): Define.
1396 (record_path_before_1): Abort if len is greater than
1397 MAX_NODES.
1398 * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
1399 gen_eh_region_catch, gen_eh_region_allowed,
1400 gen_eh_region_must_not_throw, get_eh_region_number,
1401 get_eh_region_may_contain_throw, get_eh_region_tree_label,
1402 set_eh_region_tree_label, expand_resx_expr): New.
1403 (expand_eh_region_start, expand_start_catch): Use them.
1404 (expand_end_catch): Tidy.
1405 (note_eh_region_may_contain_throw): Take region argument.
1406 (note_current_region_may_contain_throw): New.
1407 (get_exception_filter): Export.
1408 (collect_eh_region_array): Export.
1409 (remove_unreachable_regions): Check ERT_TRY based on reachability
1410 of catches, not reachability of continue_label. Never remove
1411 ERT_MUST_NOT_THROW regions.
1412 (collect_rtl_labels_from_trees): New.
1413 (convert_from_eh_region_ranges): Use it.
1414 (connect_post_landing_pads): Handle dying cleanups.
1415 (struct reachable_info): Add callback data.
1416 (add_reachable_handler): Invoke the callback.
1417 (foreach_reachable_handler): New.
1418 (reachable_handlers): Use it.
1419 (arh_to_landing_pad, arh_to_label): New.
1420 (can_throw_internal_1): Split out from can_throw_internal.
1421 (can_throw_external_1): Similarly.
1422 * except.h: Update.
1423 * explow.c (emit_stack_save): Remove savearea mode check.
1424 (update_nonlocal_goto_save_area): New.
1425 (allocate_dynamic_stack_space): Use it.
1426 (probe_stack_range): Never emit loop notes.
1427 * expmed.c (extract_fixed_bit_field): Always propagate the
1428 target for the shift if it is a REG.
1429 * expr.c: Include tree-iterator.h
1430 (is_zeros_p): Remove.
1431 (categorize_ctor_elements_1, categorize_ctor_elements): New.
1432 (count_type_elements): New.
1433 (mostly_zeros_p): Use them.
1434 (expr_wfl_stack): Remove.
1435 (convert_move): Do nothing if to and from are the same.
1436 (emit_block_move_via_loop): Don't emit LOOP notes.
1437 (emit_move_insn): Don't handle CONSTANT_P_RTX.
1438 (emit_move_insn_1): Don't generate inline warnings.
1439 (expand_vars, expand_var): Split from ...
1440 (expand_expr_1): ... here.
1441 (expand_expr_real, expand_expr_real_1): Use new macros
1442 EXPR_LOCATION and EXPR_HAS_LOCATION.
1443 * expr.h (simplify_builtin_fputs,
1444 simplify_builtin_strcpy, simplify_builtin_strncpy,
1445 expand_var, fixup_tail_calls,
1446 update_nonlocal_goto_save_area): Declare.
1447 (lookup_static_chain, expand_inline_function,
1448 mark_seen_cases): Remove.
1449 (prepare_call_address): Change type of 2nd argument to
1450 rtx.
1451 * final.c (profile_function): Update static chain test.
1452 (final): Don't look at RTX_INTEGRATED_P.
1453 * flags.h (flag_mudflap, flag_mudflap_threads,
1454 flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
1455 flag_tree_dce, flag_tree_combine_temps,
1456 flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
1457 flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
1458 flag_tree_points_to): Declare.
1459 (enum pta_type): Declare.
1460 * flow.c (lang_missing_noreturn_ok_p): Remove.
1461 (check_function_return_warnings): Remove.
1462 (update_life_info): Update comments.
1463 (free_basic_block_vars): Don't call VARRAY_FREE for
1464 basic_block_info.
1465 (regno_uninitialized): Remove.
1466 * fold-const.c (int_const_binop): Make extern.
1467 (non_lvalue): Rely on build to set TREE_CONSTANT.
1468 (operand_equal_p): Replace only_const argument with
1469 flags. Allow pure functions if OEP_PURE_SAME.
1470 (fold): Use OEP_ONLY_CONST.
1471 (invert_truthvalue) <NOP_EXPR> Break if argument is of
1472 boolean type.
1473 (fold_relational_hi_lo,
1474 nondestructive_fold_binary_to_constant,
1475 nondestructive_fold_unary_to_constant,
1476 fold_read_from_constant_string): New.
1477 * function.c (struct function): Remove calls_constant_p.
1478 (current_function_calls_constant_p): Remove.
1479 (inline_function_decl): Remove.
1480 (put_var_into_stack): Don't use it.
1481 (fix_lexical_addr): Likewise.
1482 (inline_function_decl): Remove extern declaration.
1483 (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
1484 (trampolines_created): Move to varasm.c.
1485 (free_after_compilation): Update for removed fields.
1486 (allocate_struct_function): Likewise.
1487 (delete_handlers, lookup_static_chain): Remove.
1488 (fix_lexical_addr): Don't consider non-local variable refs.
1489 (trampoline_address): Remove.
1490 (round_trampoline_addr): Move to builtins.c.
1491 (adjust_trampoline_addr): Remove.
1492 (expand_function_start): Update for changes to static chain
1493 and nonlocal goto handling.
1494 (initial_trampoline): Move to varasm.c.
1495 (expand_function_end): Don't build trampolines or kill
1496 unreferenced nonlocal goto labels.
1497 (free_after_compilation): Don't set it.
1498 (expand_function_end): Likewise.
1499 (setjmp_vars_warning): Rename from
1500 uninitialized_vars_warning, remove uninitialized vars warning.
1501 (uninitialized_vars_warning): Remove old comment
1502 and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
1503 and do not call the langhook.
1504 (expand_function_start, expand_function_end): Don't do
1505 function instrumentation here.
1506 (clear_block_marks): Rename from reorder_blocks_0, export.
1507 (blocks_nreverse): Export.
1508 (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
1509 of rtl.
1510 (reset_block_changes, record_block_change, finalize_block_changes,
1511 check_block_change, free_block_changes): New functions.
1512 (assign_parms): Setting of current_function_stdarg
1513 moved ...
1514 (allocate_struct_function): ... here.
1515 * function.h (struct function): Remove x_nonlocal_labels,
1516 x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
1517 x_context_display, x_trampoline_list, needs_context.
1518 Add static_chain_decl, nonlocal_goto_save_area.
1519 (struct function): Remove x_clobber_return_insn.
1520 Add tail_call_emit field, last_label_uid,
1521 unexpanded_var_list, dont_emit_block_notes,
1522 ib_boundaries_block, function_end_locus and saved_tree/saved_args.
1523 (clear_block_marks): Declare.
1524 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
1525 (mfwrap_spec, mflib_spec): Declare.
1526 (cpp_unique_options, cc1_options): Ditto.
1527 (default_compilers): Add .F and .f90.
1528 (static_specs): Add mfwrap and mflib.
1529 * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
1530 CONSTANT_RTX_P.
1531 (reg_used_on_edge, reg_killed_on_edge, bypass_block):
1532 Update to match insns field in struct edge_def.
1533 * gdbinit.in (pgs, pge): Define.
1534 * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
1535 instead of the integrated flag.
1536 * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
1537 * gengtype-yacc.y (bitfieldlen): Add empty action.
1538 (struct_fields): Accept unnamed bitfields.
1539 (bitfieldlen): Split from ...
1540 (bitfieldopt): ... here.
1541 * gengtype.c (ifiles): Add tree-alias-type.h and
1542 tree-flow.h.
1543 * genrecog.c (validate_pattern): Do not handle
1544 CONSTANT_P_RTX.
1545 * gimple-low.c: New file.
1546 * gimplify.c: New file.
1547 * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
1548 (restore_line_notes): Do not set RTX_INTEGRATED_P.
1549 * ifcvt.c (dead_or_predicable): Initialize local variable
1550 'earliest'.
1551 * input.h (expr_wfl_stack): Remove.
1552 * integrate.c (INTEGRATE_THRESHOLD): Remove.
1553 (setup_initial_hard_reg_value_integration): Likewise.
1554 (initialize_for_inline): Likewise.
1555 (note_modified_parmregs): Likewise.
1556 (integrate_parm_decls): Likewise.
1557 (process_reg_param): Likewise.
1558 (save_parm_insns): Likewise.
1559 (copy_insn_list): Likewise.
1560 (copy_insn_notes): Likewise.
1561 (compare_blocks): Likewise.
1562 (find_block): Likewise.
1563 (inlining): Likewise.
1564 (function_cannot_inline_p): Likewise.
1565 (parmdecl_map): Likewise.
1566 (in_nonparam_insns): Likewise.
1567 (save_for_inline): Likewise.
1568 (FIXED_BASE_PLUS): Likewise.
1569 (expand_inline_function): Likewise.
1570 (copy_rtx_and_substitute): Don't look at map->integrating,
1571 map->inline_target, and inlining, since we are never copying
1572 for integrating.
1573 Don't abort on RTX_INTEGRATED_P.
1574 (old_fun): Remove.
1575 (output_inline_function): Remove.
1576 * integrate.h (struct inline_map): Remove fields integrating,
1577 block_map, leaf_reg_map, inline_target, and local_return_label.
1578 * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
1579 copy_loop_headers, never_reached_warning): Removed.
1580 (any_uncondjump_p): Reject nonlocal goto.
1581 * langhooks-def.h (lhd_types_compatible_p,
1582 lhd_expand_decl, lhd_gimplify_expr): Declare.
1583 (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
1584 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1585 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
1586 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1587 LANG_HOOKS_GIMPLIFY_EXPR,
1588 LANG_HOOKS_GIMPLE_BEFORE_INLINING,
1589 LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
1590 LANG_HOOKS_GIMPLIFY_EXPR,
1591 LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
1592 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
1593 LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
1594 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
1595 LANG_HOOKS_RTL_EXPAND_INITIALIZER,
1596 LANG_HOOKS_DECL_UNINIT,
1597 LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
1598 * langhooks.c: Include tree-simple.h.
1599 (lhd_expand_decl): New.
1600 (lhd_types_compatible_p): New.
1601 (lhd_decl_uninit): Remove.
1602 (lhd_gimplify_expr): New.
1603 * langhooks.h (struct lang_hooks_for_rtl_expansion):
1604 Remove.
1605 (struct lang_hooks_for_functions): Add field
1606 missing_noreturn_ok_p.
1607 (struct lang_hooks): Add field expand_decl,
1608 types_compatible_p, gimplify_expr and
1609 gimple_before_inlining.
1610 Remove fields decl_uninit and rtl_expand
1611 * opts.c (decode_options): Set flag_tree_ccp,
1612 flag_tree_dce, flag_tree_dom, flag_tree_dse,
1613 flag_tree_pre, flag_tree_ter,
1614 flag_tree_live_range_split, flag_tree_sra,
1615 flag_tree_copyrename and flag_tree_ch at -O1 and higher.
1616 (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
1617 OPT_fmudflapth, OPT_fmudflapir,
1618 OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
1619 OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
1620 OPT_ftree_dominator_opts, OPT_ftree_copyrename,
1621 OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
1622 OPT_ftree_points_to_ and OPT_ftree_pre.
1623 * output.h (regno_uninitialized, find_basic_blocks,
1624 cleanup_cfg, delete_unreachable_blocks,
1625 check_function_return_warnings): Remove.
1626 * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
1627 PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
1628 PARAM_MAX_INLINE_RECURSIVE_DEPTH,
1629 PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
1630 PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
1631 * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
1632 Define.
1633 * passes.c (rest_of_decl_compilation):
1634 (rest_of_handle_sibling_calls): Remove.
1635 (rest_of_handle_inlining): Remove.
1636 (rest_of_handle_gcse): Do not run
1637 purge_builtin_constant_p.
1638 (rest_of_compilation): Update.
1639 Do not call copy_loop_headers.
1640 Do rtl-based profiling only when
1641 !flag_tree_based_profiling. Register rtl-based profiling
1642 hooks.
1643 * predict.c: Include tree-flow.h, ggc.h, tree-dump.h
1644 (predicted_by_p): Rename to ...
1645 (rtl_predicted_by_p): .. this one; make global
1646 (tree_predicted_by_p): New.
1647 (dump_prediction): Add FILE argument.
1648 (predict_edge): Rename to ...
1649 (rtl_predict_edge): .. this one.
1650 (tree_predict_edge): New.
1651 (combine_predictions_for_insn): Update calls of predict_edge.
1652 (predict_loops): Break out from ...
1653 (estimate_probability): ... here; update comments; move updating
1654 of unknown probabilities from ...
1655 (estimate_bb_frequencies): ... here.
1656 (combine_predictions_for_bb): New.
1657 (tree_predict_by_opcode): New.
1658 (tree_estimate_probability): New.
1659 * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
1660 PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
1661 * predict.h: Add include guard.
1662 (predict_edge, predict_edge_def): Move prototypes to basic_block.h
1663 * pretty-print.c (pp_write_text_to_stream): Make extern.
1664 * pretty-print.h (pp_write_text_to_stream): Declare.
1665 * print-rtl.c (print_rtx): Don't print the integrated flag.
1666 Print the return_val flag.
1667 * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
1668 of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
1669 Remove support for EXPR_WITH_FILE_LOCATION nodes.
1670 (print_node): Print TREE_INVARIANT and TREE_VISITED.
1671 * profile.c: Include cfghooks.h, tree-flow.h.
1672 (profile_hooks): New.
1673 (profile_dump_file): New.
1674 (instrument_edges): Use hooks instead of RTL-specific code.
1675 (instrument_values): Ditto.
1676 (get_exec_counts): Ditto.
1677 (compute_branch_probabilities): Ditto.
1678 (compute_value_histograms): Ditto.
1679 (branch_prob): Ditto.
1680 (find_spanning_tree): Ditto.
1681 (end_branch_prob): Ditto.
1682 (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
1683 (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
1684 (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
1685 (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
1686 (tree_register_profile_hooks): New.
1687 (rtl_register_profile_hooks): New.
1688 * ra-rewrite.c (rewrite_program): Clear variable info.
1689 * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
1690 * regs.h: Add include guards.
1691 * reload.c (decompose): Clear val using memset.
1692 * rtl.def (CONSTANT_P_RTX): Remove.
1693 * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
1694 (copy_loop_headers): Remove.
1695 (struct rtx_def): Replace the integrated flag with the
1696 return_val flag.
1697 (maybe_set_first_label_num): Declare.
1698 (init_branch_prob): Move declaration to value-prof.h.
1699 (end_branch_prob): Ditto.
1700 (branch_prob): Ditto.
1701 (never_reached_warning): Don't declare it.
1702 * rtlanal.c (get_related_value): Initialize get_jump_table_offset
1703 (hoist_insn_to_edge): Update to match field insns in
1704 struct edge_def.
1705 * sbitmap.c (sbitmap_realloc): New.
1706 * sbitmap.h (sbitmap_realloc): Declare.
1707 * sibcall.c: Remove file.
1708 * simplify-rtx.c (simplify_rtx): Do not handle
1709 CONSTANT_P_RTX.
1710 * stmt.c (parse_output_constraint): Don't warn for read-write
90afe2c9 1711 memory operand.
6de9cd9a
DN
1712 (tail_recursion_args): Use types_compatible_p langhook.
1713 (force_label_rtx): Don't look at inline_function_decl.
1714 (label_rtx): Set LABEL_PRESERVE_P appropriately.
1715 (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
1716 (declare_nonlocal_label): Remove.
1717 (expand_goto): Don't handle nonlocal gotos.
1718 (expand_nl_handler_label): Remove.
1719 (expand_nl_goto_receivers): Remove.
1720 (expand_end_bindings): Don't expand_nl_goto_receivers. Use
1721 update_nonlocal_goto_save_area.
1722 (expand_expr_stmt_value): Check TREE_NO_WARNING.
1723 (warn_if_unused_value): Likewise.
1724 (expand_start_loop, expand_loop_continue_here,
1725 expand_end_loop): Don't create loop notes.
1726 (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
1727 mark_seen_cases, check_for_full_enumeration_handling): Remove.
1728 (expand_end_case_type): Don't do warn_switch handling.
1729 (pushcase, pushcase_range) Update add_case_node calls.
1730 (add_case_node): Add dont_expand_label argument.
1731 (same_case_target_p): Don't search rtl.
1732 (expand_start_bindings_and_block, expand_end_bindings):
1733 Don't emit block notes when dont_emit_block_notes.
1734 (using_eh_for_cleanups_p): Export.
1735 (expand_return): Allow any typed rhs.
1736 (expand_stack_alloc): New.
1737 (expand_stack_save, expand_stack_restore): New.
1738 (containing_blocks_have_cleanups_or_stack_level): New
1739 function.
1740 (asm_op_is_mem_input): New fn.
1741 (expand_asm_expr): New fn.
1742 (warn_if_unused_value): Check operand 0 of SAVE_EXPR
1743 nodes.
1744 * stor-layout.c (layout_type): Just return if type is
1745 error_mark_node.
1746 (update_alignment_for_field): Export.
1747 (variable_size): We don't care about global_bindings_p if
1748 the frontend doesn't want a list of the expressions.
1749 * system.h: Poison INTEGRATE_THRESHOLD.
1750 * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
1751 TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
1752 TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
1753 TV_TREE_SSA_OTHER, TV_TREE_OPS,
1754 TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
1755 TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
1756 TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
1757 TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
1758 TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
1759 TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
1760 TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
1761 TV_CONTROL_DEPENDENCES): Define.
1762 * toplev.c: Include tree-alias-common.h
1763 (current_file_decl, flag_mudflap, flag_mudflap_threads,
1764 flag_mudflap_ignore_reads, flag_tree_based_profiling,
1765 flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
1766 flag_tree_dce, flag_tree_ch, flag_tree_sra,
1767 flag_tree_combine_temps, flag_tree_ter,
1768 flag_tree_live_range_split, flag_tree_dom,
1769 flag_tree_copyrename, flag_tree_dse): Declare.
1770 (f_options): Add tree-based-profiling, tree-gvn,
1771 tree-pre, tree-ccp, tree-dce,
1772 tree-dominator-opts, tree-copyrename, tree-dse,
1773 tree-combine-temps, tree-ter, tree-lrs and tree-ch.
1774 (wrapup_global_declarations): Don't output nested inlined functions.
1775 (general_init): Call init_tree_optimization_passes.
1776 (process_options): Sorry for -ftree-based-profiling plus
1777 -ftest-coverage or -fprofile-values.
1778 * toplev.h (init_tree_optimization_passes,
1779 flag_tree_based_profiling): Declare.
1780 * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
1781 * tree-alias-ander.c: New file.
1782 * tree-alias-ander.h: New file.
1783 * tree-alias-common.c: New file.
1784 * tree-alias-common.h: New file.
1785 * tree-alias-type.c: New file.
1786 * tree-alias-type.h: New file.
1787 * tree-browser.c: New file.
1788 * tree-browser.def: New file.
1789 * tree-cfg.c: New file.
1790 * tree-complex.c: New file.
1791 * tree-dfa.c: New file.
1792 * tree-dump.c (dump_enable_all): New.
1793 (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
1794 (dump_node): Remove const from field suffix and swtch.
1795 (dump_files): Add null entry, .generic, .nested, .vcg,
1796 .xml and a match-all entry.
1797 (extra_dump_files, extra_dump_files_in_use,
1798 extra_dump_files_alloced): Declare
1799 (dump_option_value_info): Add raw, details, stats,
1800 blocks, vops, lineno, uid and all.
1801 (dump_register): New.
1802 (get_dump_file_info): New.
1803 (dump_begin): Call it.
1804 Do nothing for TDI_none.
1805 (dump_begin): Include phase number in dump filename.
1806 (dump_enable_all): New.
1807 (dump_switch_p_1): Split out from dump_switch_p.
1808 (dump_switch_p): Handle extra_dump_files.
1809 Start our scan at TDI_none + 1.
1810 If -fdump-tree-all was given, call dump_enable_all.
1811 * tree-dump.h: Include splay-tree.h.
1812 (dump_function, dump_function_to_file, dump_register):
1813 Declare.
1814 * tree-eh.c: New file.
1815 * tree-flow-inline.h: New file.
1816 * tree-flow.h: New file.
1817 * tree-inline.c: Re-write to handle inlining on GIMPLE.
1818 * tree-inline.h (walk_tree,
1819 walk_tree_without_duplicates): Move to tree.h.
1820 (estimate_num_insns): Declare.
1821 * tree-into-ssa.c: New file.
1822 * tree-iterator.c: New file.
1823 * tree-iterator.h: New file.
1824 * tree-mudflap.c: New file.
1825 * tree-mudflap.h: New file.
1826 * tree-nested.c: New file.
1827 * tree-nomudflap.c: New file.
1828 * tree-nrv.c: New file.
1829 * tree-optimize.c (dump_flags, vars_to_rename,
1830 in_gimple_form, all_passes, pass_gimple,
1831 pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
1832 (execute_gimple, execute_rebuild_bind,
1833 gate_all_optimizations, execute_del_cfg,
1834 register_one_dump_file, register_dump_files, dup_pass_1,
1835 init_tree_optimization_passes, execute_todo,
1836 execute_one_pass, execute_pass_list): New.
1837 (clear_decl_rtl): Remove.
1838 (tree_rest_of_compilation): Update to use tree
1839 optimizers.
1840 * tree-outof-ssa.c: New file.
1841 * tree-pass.h: New file.
1842 * tree-phinodes.c: New file.
1843 * tree-pretty-print.c: New file.
1844 * tree-profile.c: New file.
1845 * tree-simple.c: New file.
1846 * tree-simple.h: New file.
1847 * tree-sra.c: New file.
1848 * tree-ssa-alias.c: New file.
1849 * tree-ssa-ccp.c: New file.
1850 * tree-ssa-copy.c: New file.
1851 * tree-ssa-copyrename.c: New file.
1852 * tree-ssa-dce.c: New file.
1853 * tree-ssa-dom.c: New file.
1854 * tree-ssa-dse.c: New file.
1855 * tree-ssa-forwprop.c: New file.
1856 * tree-ssa-live.c: New file.
1857 * tree-ssa-live.h: New file.
1858 * tree-ssa-loop.c: New file.
1859 * tree-ssa-operands.c: New file.
1860 * tree-ssa-operands.h: New file.
1861 * tree-ssa-phiopt.c: New file.
1862 * tree-ssa-pre.c: New file.
1863 * tree-ssa.c: New file.
1864 * tree-ssanames.c: New file.
1865 * tree-tailcall.c: New file.
1866 * tree.c: Include tree-iterator.h, basic-block.h and
1867 tree-flow.h.
1868 (tree_node_kind): Add phi_nodes and ssa names.
1869 (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
1870 EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
1871 (make_node_stat): Handle PHI_NODE and SSA_NAME.
1872 <'c'> Set TREE_INVARIANT.
1873 (copy_node_stat): Abort if trying to copy a
1874 STATEMENT_LIST.
1875 Clear TREE_VISITED.
1876 Clear annotation field.
1877 (build_constructor): Copy TREE_INVARIANT from vals.
1878 Don't clear TREE_CONSTANT.
1879 (expr_first, expr_last, expr_length): Remove.
1880 (staticp): Pass unknown component references to the language.
1881 (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
1882 (skip_simple_arithmetic): Likewise.
1883 (stabilize_reference_1): Likewise.
1884 (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
1885 EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
1886 STATEMENT_LIST.
1887 (lhd_unsave_expr_now): Remove.
1888 (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
1889 (recompute_tree_invarant_for_addr_expr): New.
1890 (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
1891 Call recompute_tree_invarant_for_addr_expr.
1892 Set TREE_INVARIANT accordingly.
1893 (build2_stat): Don't handle CALL_EXPR.
1894 (build3_stat): Don't call build2_stat for CALL_EXPRs.
1895 (build_expr_wfl): Remove.
1896 (annotate_with_file_line, annotate_with_locus): New.
1897 (simple_cst_equal): Call simple_cst_list_equal to compare
1898 CONSTRUCTOR_ELTS pointers.
1899 (iterative_hash_expr): Don't hash types associated
1900 with conversions. Instead hash on the signedness of the
1901 toplevel object and the operand of the conversion.
1902 (dump_tree_statistics): Call ssanames_print_statistics
1903 and phinodes_print_statistics.
1904 (ephi_node_elt_check_failed, phi_node_elt_check_failed,
1905 add_var_to_bind_expr, build_empty_stmt, is_essa_node,
1906 needs_to_live_in_memory): New.
1907 (initializer_zerop): Handle VECTOR_CST. Don't check
1908 AGGREGATE_TYPE_P for CONSTRUCTOR.
1909 * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
1910 SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
1911 PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
1912 (GOTO_SUBROUTINE_EXPR): Change type to 's'.
1913 (CALL_EXPR): Add another operand.
1914 (EXPR_WITH_FILE_LOCATION): Remove.
1915 (SWITCH_EXPR): Add another operand.
1916 * tree.h: Update various comments.
1917 (union tree_ann_d): Forward declare.
1918 (struct tree_common): Add fields nowarning_flag,
1919 invariant_flag and visited.
1920 (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
1921 PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
1922 EPHI_NODE_ELT_CHECK, TREE_BLOCK,
1923 STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
1924 TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
1925 IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
1926 EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
1927 EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
1928 CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
1929 BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
1930 ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
1931 ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
1932 COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
1933 CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
1934 EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
1935 SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
1936 SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
1937 PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
1938 PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
1939 EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
1940 EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
1941 EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
1942 EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
1943 EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
1944 EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
1945 EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
1946 EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
1947 EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
1948 EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
1949 TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
1950 DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
1951 DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
1952 STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
1953 TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
1954 TDF_UID,): Define.
1955 (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
1956 EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
1957 EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
1958 EXPR_WFL_SET_LINECOL): Remove.
1959 (phi_node_elt_check_failed, ephi_node_elt_check_failed,
1960 make_phi_node, init_phinodes, fini_phinodes,
1961 release_phi_node, phinodes_print_statistics,
1962 init_ssanames, fini_ssanames, make_ssa_name,
1963 release_ssa_name, ssanames_print_statistics,
1964 annotate_with_file_line, build_empty_stmt,
1965 annotate_with_locus, expr_only, categorize_ctor_elements,
1966 count_type_elements, add_var_to_bind_expr, is_essa_node,
1967 expand_stack_alloc, expand_stack_save,
1968 expand_stack_restore, add_case_node, operand_equal_p,
1969 nondestructive_fold_unary_to_constant,
1970 nondestructive_fold_binary_to_constant,
1971 fold_read_from_constant_string, int_const_binop,
1972 strip_float_extensions, simplify_builtin, c_strlen,
1973 recompute_tree_invarant_for_addr_expr,
1974 needs_to_live_in_memory, make_vector,
1975 setjmp_vars_warning, update_alignment_for_field,
1976 expand_asm_expr, asm_op_is_mem_input,
1977 containing_blocks_have_cleanups_or_stack_level,
1978 create_artificial_label, gimplify_function_tree,
1979 get_name, unshare_expr, walk_tree,
1980 walk_tree_without_duplicates, in_gimple_form): Declare.
1981 (struct tree_exp): Add fields locus and block.
1982 (struct tree_ssa_name, struct edge_def, struct
1983 tree_phi_node, struct tree_eref_common, struct
1984 tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
1985 union alias_var_def, struct tree_statement_list_node,
1986 struct tree_statement_list, enum operand_equal_flag): Declare.
1987 (enum tree_node_structure_enum): Add TS_SSA_NAME,
1988 TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
1989 TS_STATEMENT_LIST.
1990 (union tree_node): Add fields ssa_name, phi, eref, ephi,
1991 euse and stmt_list.
1992 (function_cannot_inline_p, uninitialized_vars_warning,
1993 save_for_inline, output_inline_function, all_cases_count,
1994 check_for_full_enumeration_handling,
1995 declare_nonlocal_label): Remove.
1996 (enum tree_dump_index): Add TDI_none, TDI_tu,
1997 TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
1998 * unroll.c (unroll_loop): Don't clear map->inline_target.
1999 * unwind-sjlj.c (uw_install_context): Make a proper static inline
2000 function.
2001 * value-prof.c (value_prof_hooks): New.
2002 (find_values_to_profile): Rename to rtl_find_values_to_profile.
2003 Move rtl-specific bits in from branch_prob.
2004 (value_profile_transformations): Rename to
2005 rtl_value_profile_transformations.
2006 (struct value_prof_hooks): New.
2007 (rtl_value_prof_hooks): New.
2008 (rtl_register_value_prof_hooks): New.
2009 (tree_find_values_to_profile): New stub.
2010 (tree_value_profile_transformations): New stub.
2011 (tree_value_prof_hooks): New stub.
2012 (tree_register_value_prof_hooks): New stub.
2013 (find_values_to_profile): New.
2014 (value_profile_transformations): New.
2015 * value-prof.h: Add multiple inclusion guard.
2016 (struct histogram_value): Change rtx fields to void *.
2017 (rtl_register_value_prof_hooks): New declaration.
2018 (tree_register_value_prof_hooks): New declaration.
2019 (find_values_to_profile): New declaration.
2020 (free_profiled_values): New declaration.
2021 (value_profile_transformations): New declaration.
2022 (struct profile_hooks): New declaration.
2023 (init_branch_prob): Declaration moved from rtl.h.
2024 (branch_prob): Declaration moved from rtl.h.
2025 (end_branch_prob): Declaration mooved from rtl.h.
2026 (tree_register_profile_hooks): New declaration.
2027 (rtl_register_profile_hooks): New declaration.
2028 (tree_profile_hooks): New declaration.
2029 (rtl_profile_hooks): New declaration.
2030 * varasm.c: Include tree-mudflap.h.
2031 (TRAMPOLINE_ALIGNMENT): Remove.
2032 (make_decl_rtl): Call mudflap_enqueue_decl.
2033 (assemble_static_space):
2034 (assemble_trampoline_template): Set and return
2035 TRAMPOLINE_ALIGNMENT.
2036 * varray.c (element): Add GENERIC_PTR_NOGC entry.
2037 Add entry for 'tree *'.
2038 Add entry for struct edge_def *.
2039 (varray_copy): New.
2040 * varray.h (enum varray_data_enum): Add
2041 VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
2042 VARRAY_DATA_TREE_PTR.
2043 (union varray_data_tag): Corresponding changes.
2044 (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
2045 VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
2046 VARRAY_EDGE, VARRAY_TREE_PTR,
2047 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
2048 VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
2049 VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
2050
2051 * config/*/*: Various updates for changed macros, tree
2052 codes, etc. Check ChangeLog.tree-ssa.
2053
2054 * doc/cfg.texi: New file.
2055 * doc/tree-ssa.texi: New file.
2056 * doc/c-tree.texi: Document new codes.
2057 * doc/gccint.texi: Include new files.
2058 * doc/install.texi: Document new features.
2059 * doc/invoke.texi: Document new switches.
2060 * doc/passes.texi: Document new passes.
2061 * doc/rtl.texi: Update changed RTL codes.
2062 * doc/sourcebuild.texi: Update build instructions.
2063 * doc/standards.texi: Document Fortran changes.
2064 * doc/tm.texi: Update.
2065
5eaad481
PB
20662004-05-12 Paolo Bonzini <bonzini@gnu.org>
2067
2068 Replace several arrays with a struct of arrays.
90afe2c9
ZW
2069 * combine.c (struct reg_stat): New.
2070 (init_reg_last_arrays): Renamed to...
2071 (init_reg_last): ...this. Callers adjusted.
2072 (reg_stat): New.
2073 (combine_instructions): Allocate it and use it.
2074 (reg_last_death, reg_last_set, reg_last_set_value,
2075 reg_last_set_label, reg_last_set_table_tick,
2076 reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
2077 reg_last_set_mode, reg_last_set_nonzero_bits,
2078 reg_last_set_sign_bit_copies): Replace throughout
2079 with items of reg_stat.
5eaad481 2080
e51f9159
KK
20812004-05-11 Kaz Kojima <kkojima@gcc.gnu.org>
2082
2083 PR optimization/15100
2084 * combine.c (distribute_notes): Don't create a dangling
2085 REG_LIBCALL/REG_RETVAL note.
2086
6a599451
AH
20872004-05-11 Aldy Hernandez <aldyh@redhat.com>
2088
2089 * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
2090
2091 * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
2092 negv2si2.
2093
425a2bde
AH
20942004-05-11 Aldy Hernandez <aldyh@redhat.com>
2095
2096 * doc/md.texi (Standard Names): Fix typo in vec_init description.
2097
bed7b8f1
GK
20982004-05-11 Geoffrey Keating <geoffk@apple.com>
2099
2100 * doc/gty.texi (GTY Options): Clarify example.
2101
7958a2a6
FJ
21022004-05-11 Fariborz Jahanian <fjahanian@apple.com>
2103
2104 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2105 Add const qualifier to altivec vector type if one is needed.
2106
32770746
PB
21072004-05-11 Paul Brook <paul@codesourcery.com>
2108
2109 * flags.h (flag_short_enums): Update comment.
2110 * opts.c (decode_options): Set flag_short_enums to 2.
2111 * toplev.c (flag_short_enums): Update comment.
2112 (process_options): Call default_short_enums target hook.
2113
78f59f3e
AP
21142004-05-11 Andrew Pinski <pinskia@gcc.gnu.org>
2115
2116 PR target/14063
2117 * config/rs6000/altivec.md (altivec_dssall):
2118 Change to unspec_volatile.
2119 (altivec_dss): Likewise.
2120
39302b6a
AH
21212004-05-10 Aldy Hernandez <aldyh@redhat.com>
2122
2123 * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
2124 vnor.
2125 ("one_cmplv8hi2"): Same.
2126 ("one_cmplv4si2"): Same.
2127
726d4cb7
KK
21282004-05-10 Kaz Kojima <kkojima@gcc.gnu.org>
2129
2130 PR target/15130
2131 * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
2132 * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
2133 into account. Compute the correct number of general registers
2134 for the return value. Generate a special push/pop sequence when
2135 failing to get a temporary register for non SHmedia epilogue.
2136 (sh_expand_epilogue): Add an argument to show whether it's for
2137 sibcall or not. Set the 3rd argument of output_stack_adjust to
2138 -1 if needed.
2139 (sh_need_epilogue): Call sh_expand_epilogue with 0.
2140 * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
2141 with 1.
2142 (epilogue): Call sh_expand_epilogue with 0.
2143
0c196bf9
AP
21442004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
2145
2146 * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
2147 goto a cleanup label. After the cleanup, free the allocated memory.
2148
16cfa3dc
ZL
21492004-05-10 Ziemowit Laski <zlaski@apple.com>
2150
2151 * config/rs6000/altivec.h (vec_sld): Add overloads for
2152 argument/return types of 'vector bool int', 'vector bool short'
2153 and 'vector bool char'.
2154
3358cae0
ZW
21552004-05-10 Zack Weinberg <zack@codesourcery.com>
2156
2157 * c-decl.c (store_parm_decls_newstyle): Correct test for a
2158 nested function.
2159
62d45923
RS
21602004-05-10 Richard Sandiford <rsandifo@redhat.com>
2161
2162 * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
2163 treating missing ones as "".
2164 * config/mips/mips.md: Remove constraints from match_operands and
2165 match_scratches if they appear in define_expands (except reload*),
2166 define_peephole2s, define_splits or attribute specifications.
2167 * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
2168 constraint strings.
2169
b2d04ecf
AM
21702004-05-10 Alan Modra <amodra@bigpond.net.au>
2171
2172 * config/rs6000/rs6000.c (function_arg_boundary): Always align
2173 AltiVec vectors.
2174 (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
2175 vectors by refererence. Align the same for TARGET_64BIT to a 16
2176 byte boundary. Remove useless code. Add function comment.
2177 (function_arg): Similarly. Move gpr rs6000_mixed_function_arg
2178 call to where it belongs.
2179 (function_arg_partial_nregs): Return true for all TARGET_32BIT
2180 -mabi=no-altivec AltiVec vectors. Fix debug output.
2181 (rs6000_va_arg): Adjust for AltiVec change.
2182
b6685939
PB
21832004-05-10 Paul Brook <paul@codesourcery.com>
2184
2185 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2186 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2187 (TARGET_DOUBLEWORD_ALIGN): Use it.
2188 (WCHAR_TYPE): Define.
2189 (WCHAR_SIZE_TYPE): Define.
2190 (SIZE_TYPE): Define.
2191
4ed78545
AM
21922004-05-10 Alan Modra <amodra@bigpond.net.au>
2193
2194 * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
2195 when size is 8 bytes.
2196 (function_arg_advance): Account for stack space used by AltiVec
3358cae0 2197 args when -mabi=altivec. Simplify alignment calculations. For
4ed78545
AM
2198 ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
2199 (function_arg): Similarly.
2200 (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
2201 not AltiVec ABI.
2202 (rs6000_va_arg): Correct fp arg test. Adjust for AltiVec change.
2203 Correct alignment, and align before testing reg count. Remove
2204 TREE_THIS_VOLATILE from reg. Don't emit unused labels.
2205 (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
2206 TARGET_FPRS here..
2207 (rs6000_function_value): .. not here before call.
2208
f350ff00
AH
22092004-05-09 Aldy Hernandez <aldyh@redhat.com>
2210
2211 * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
2212
eecec698
ZW
22132004-05-09 Zack Weinberg <zack@codesourcery.com>
2214
2215 PR 15007
2216 * c-decl.c (current_file_decl): Rename to all_translation_units,
2217 adjust comment.
2218 (pop_scope): If popping file_scope, construct a
2219 TRANSLATION_UNIT_DECL and make it the context of all the
2220 symbols in the scope.
2221 (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
2222 (pushdecl): Clarify comment. Do not set DECL_CONTEXT of
2223 anything to current_file_decl.
2224 (pushdecl_top_level): Likewise.
2225 (store_parm_decls_newstyle): Adjust check for nested function.
4ed78545
AM
2226 (c_write_global_declarations): Update for renamed variable.
2227
2aa4498c
AH
22282004-05-09 Aldy Hernandez <aldyh@redhat.com>
2229
2230 * config/rs6000/rs6000-protos.h
2231 (rs6000_conditional_register_usage): Protoize.
2232
2233 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
2234
2235 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
2236 function.
2237
8dc2384c
RS
22382004-05-08 Roger Sayle <roger@eyesopen.com>
2239
2240 * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
2241 where op is a comparison operator and C1 and C2 are integer constants
2242 into a range check.
2243 (fold): Call fold_div_compare.
2244
ae81c844
EB
22452004-05-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2246
2247 * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
2248 problems with earlier versions of the GNU compiler.
2249
0d1fbc8c
AH
22502004-05-07 Aldy Hernandez <aldyh@redhat.com>
2251
2252 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
2253 Declare.
2254
2255 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
2256 (rs6000_hard_regno_mode_ok): New.
2257 (rs6000_init_hard_regno_mode_ok): New.
2258 (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
2259
2260 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
2261 result.
2262
f95d9272
ZL
22632004-05-07 Ziemowit Laski <zlaski@apple.com>
2264
2265 * config/rs6000/altivec.h (vector, pixel, bool): Do not
2266 define as macros #ifdef __APPLE_ALTIVEC__.
2267
22682004-05-07 Fariborz Jahanian <fjahanian@apple.com>
2269
36a454e1
FJ
2270 * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
2271 Generate appropriate parallels for vector arguments
2272 passed to vararg functions. (function_arg): make the call
2273 to rs6000_mixed_function_arg for vector args as needed.
eecec698 2274
f7dbd289
RS
22752004-05-07 Richard Sandiford <rsandifo@redhat.com>
2276
2277 * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
2278 EABI_FLOAT_VARARGS_P.
2279
5c8a81d5
RS
22802004-05-07 Richard Sandiford <rsandifo@redhat.com>
2281
2282 * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
2283 * config/mips/mips.c (override_options): Disable branch likely
2284 instructions if TUNE_MIPS5500.
2285
9045f39a
RS
22862004-05-07 Richard Sandiford <rsandifo@redhat.com>
2287
2288 * config/mips/mips.c (override_options): Allow the hi and lo registers
2289 to store any integral mode, not just MODE_INTs.
2290
bc21b3f3
PB
22912004-05-07 Paul Brook <paul@codesourcery.com>
2292
2293 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2294 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2295 (TARGET_DOUBLEWORD_ALIGN): Use it.
2296 (WCHAR_TYPE): Define.
2297 (WCHAR_SIZE_TYPE): Define.
2298 (SIZE_TYPE): Define.
2299
2484cc35
UB
23002004-05-07 Uros Bizjak <uros@kss-loka.si>
2301
2302 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
2303 testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
2304
7600f094
AP
23052004-05-07 Andrew Pinski <pinskia@physics.uc.edu>
2306
2307 * loop-doloop.c (doloop_valid_p): Make sure that body
2308 gets freed.
2309
bfb23806
EB
23102004-05-07 Eric Botcazou <ebotcazou@act-europe.fr>
2311
2312 * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
2313 declaration.
2314 * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
2315 (sparc_skip_caller_unimp): New global variable.
2316 (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
2317 Use it instead of SKIP_CALLERS_UNIMP_P.
2318 * config/sparc/sparc.md (call expander): Add sanity check.
2319 (call_address_struct_value_sp32): Re-sync with expander.
2320 (call_symbolic_struct_value_sp32): Likewise.
2321 (return peepholes): Use 'sparc_skip_caller_unimp' instead
2322 of custom predicate.
2323
92ff0c41
EB
23242004-05-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2325
2326 PR c++/14962
2327 * c-pragma.c (handle_pragma_redefine_extname): Only change
2328 the assembler name of FUNCTION_DECLs and VAR_DECLs.
2329
c2fcfa4f
UB
23302004-05-07 Uros Bizjak <uros@kss-loka.si>
2331
2332 * optabs.h (enum optab_index): Add new OTI_log1p.
2333 (log1p_optab): Define corresponding macro.
2334 * optabs.c (init_optabs): Initialize log1p_optab.
2335 * genopinit.c (optabs): Implement log1p_optab using log1p?f2
2336 patterns.
2337 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
2338 using log1p_optab.
2339 (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
2340 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2341
2342 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
2343
2344 * config/i386/i386.c (ix86_emit_i387_log1p): New function.
2345 * config/i386/i386-protos.h (ix86_emit_i387_log1p):
2346 Prototype here.
2347 * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
2348 x87's fyl2xp1 instruction.
2349 (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
2350 (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
2351 (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
2352 log1p and log1pl built-ins as inline x87 intrinsics.
2353
4d980568
LR
23542004-05-07 Loren James Rittle <ljrittle@acm.org>
2355
3c4392aa 2356 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4d980568
LR
2357 * config/arm/freebsd.h: Likewise.
2358 * config/ia64/freebsd.h: Likewise.
2359 * config/sparc/freebsd.h: Likewise.
2360
afce2847
HPN
23612004-05-07 Hans-Peter Nilsson <hp@axis.com>
2362
2363 PR optimization/15296
2364 * reorg.c (fill_simple_delay_slots): Use next_real_insn when
2365 getting last consecutive label at a branch.
2366 (relax_delay_slots): Similar, near top of loop.
2367
9acf97b6
JDA
23682004-05-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2369
2370 PR target/15202
2371 * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
2372 register to general register.
2373
19fb36e3
AM
23742004-05-07 Alan Modra <amodra@bigpond.net.au>
2375
2376 * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
2377 TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
2378 * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
2379 (STACK_BOUNDARY): Delete.
2380
db643b91 23812004-05-06 Stuart Hastings <stuart@apple.com>
2484cc35 2382
db643b91
SH
2383 * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
2384 mistakenly clobbered by 1.423.
19fb36e3 2385
dc884a86
RS
23862004-05-06 Richard Sandiford <rsandifo@redhat.com>
2387
2388 * doc/invoke.texi: Document -mvr4130-align.
2389 * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
2390 (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
2391 (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
2392 (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
2393 * config/mips/mips.md: Include sched-int.h.
2394 (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
2395 (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
2396 (override_options): Enable -mvr4130-align at -O3 and above.
2397 (mips_sim_insn): New variable.
2398 (mips_sim): New structure.
2399 (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
2400 (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
2401 (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
2402 (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
2403 (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
2404 (mips_reorg): Call vr4130_align_insns.
2405 (vr4130_last_insn): New variable.
2406 (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
2407 (vr4130_swap_insns_p, vr4130_reorder): New functions.
2408 (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
2409 (mips_issue_rate): Return 2 for PROCESSOR_R4130.
2410 (mips_use_dfa_pipeline_interface): Return true for the same.
2411 * config/mips/4130.md: New file.
2412 * config/mips/mips.md: Include it. Add a peephole2 to convert
2413 "mult;mflo" into "mtlo;macc".
2414 (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
2415 target of maccs.
2416 (*msac_using_macc): New pattern.
2417
615ccdd3
RS
24182004-05-06 Richard Sandiford <rsandifo@redhat.com>
2419
2420 * config/mips/5500.md (ir_vr55_store): Set latency to 0.
2421 (ir_vr55_hilo): Split into...
2422 (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
2423 (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
2424 (ir_vr55_imul_di): Change latency to 9. Reserve vr55_mac for 4 cycles.
2425 Add various multiplication bypasses.
2426 * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
2427 multiplication.
2428
152e3565
UB
24292004-05-06 Uros Bizjak <uros@kss-loka.si>
2430
2431 * config/i386/i386.md (*fscalexf4): Correct insn "mode"
2432 attribute to "XF".
2433
5ae27cfa
UB
24342004-05-05 Uros Bizjak <uros@kss-loka.si>
2435
2436 * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
152e3565 2437 (fmod_optab, drem_optab): Define corresponding macros.
5ae27cfa
UB
2438 * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
2439 * genopinit.c (optabs): Implement fmod_optab and drem_optab
2440 using fmod?f3 and drem?f3 patterns.
2441 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
2442 using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
2443 (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
2444 BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
2445 flag_unsafe_math_optimizations is set.
2446
2447 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
2448 UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
2449
2450 * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
2451 * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
2452 Prototype here.
2453 * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
2454 UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
2455 fprem and fprem1 instructions.
2456 (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
2457 Rename insn definition to x86_fnstsw_1.
2458 (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
2459 x87 instructions.
2460 (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
2461 and fmodl built-ins as inline x87 intrinsics.
2462 (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
2463 and dreml built-ins as inline x87 intrinsics.
2464
cf9c6ca5
RS
24652004-05-05 Roger Sayle <roger@eyesopen.com>
2466
2467 * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
2468
32dd2dc9
ILT
24692004-05-05 Ian Lance Taylor <ian@wasabisystems.com>
2470
2471 PR driver/9822
2472 * doc/invoke.texi (Spec Files): Remove documentation of %c.
2473
4a6f766d
CD
24742004-05-05 Chris Demetriou <cgd@broadcom.com>
2475
2476 * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
2477 representation.
2478
fdd695fd
PB
24792004-05-06 Paul Brook <paul@codesourcery.com>
2480
2481 * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
2482 (arm_coproc_mem_operand): ... To this.
2483 * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
2484 (arm_legitimate_index_p): Ditto.
2485 (vfp_mem_operand): Rename ...
2486 (arm_coproc_mem_operand): ... To this. Handle writeback modes.
2487 (vfp_secondary_reload_class): Use it.
2488 (output_move_double): Use doubleword load/store instructions.
2489 (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
2490 * config/arm/arm.h (TARGET_LDRD): Define.
2491 (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
2492 * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
2493 New splitter for invalid doubleword loads.
2494 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
2495 * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
2496 * doc/md.texi: Document Uy constraint.
2497
59af0b6a
JH
24982004-05-05 Jan Hubicka <jh@suse.cz>
2499
2500 PR opt/14980
2501 * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
2502 inline clones.
2503
9953b5e1
L
25042004-05-05 H.J. Lu <hongjiu.lu@intel.com>
2505
2506 PR target/15290
2507 * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
2508 instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
2509
e3c287c9
MS
25102004-05-05 Mike Stump <mrs@apple.com>
2511
2512 * config/darwin-c.c (add_framework): Copy the directory name as it
2513 can be freed later. Also, ensure we always allocate enough room
2514 for the cached framework information.
2515 (find_subframework_header): Keep track of the directory where the
2516 subframework header was found.
2517 (framework_construct_pathname): Speed up by not trying to re-add a
2518 framework.
2519 * cppfiles.c (search_path_exhausted): Arrange for the missing
2520 header callback to be able to set the directory where the header
2521 was found.
2522 (cpp_get_dir): Add.
2523 * cpplib.h (missing_header_cb): Add a parameter.
2524 (cpp_get_dir): Add.
2525
25262004-05-03 Mike Stump <mrs@apple.com>
4bed3787
MS
2527
2528 * doc/invoke.texi (Directory Options): Document -iquote.
2529 * doc/cpp.texi: Likewise.
2530 * doc/cppopts.texi: Likewise.
2531 * c-opts.c (c_common_missing_argument): Add -iquote processing.
2532 (c_common_handle_option): Likewise.
2533 * c.opt (iquote): Add.
2534 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
2535 * c-incpath.c (merge_include_chains): Update comment to use -iquote.
2536
2537 * c-opts.c (case OPT_I): Deprecate -I- support.
2538 * doc/invoke.texi: Likewise.
2539 * doc/cpp.texi: Likewise.
2540 * doc/cppopts.texi: Likewise.
2541
bb8a619e
SB
25422004-05-05 Steven Bosscher <stevenb@suse.de>
2543
2544 * basic-block.h (free_basic_block_vars): Update prototype.
2545 * flow.c (free_basic_block_vars): Remove the keep_head_end_p
2546 argument.
2547 (life_analysis): Update call.
2548 * ifcvt.c (if_convert): Likewise.
2549 * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
2550 * passes.c (rest_of_handle_final): Likewise.
2551 (rest_of_compilation): Likewise.
2552 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2553
2554 * emit-rtl.c (next_real_insn): Use INSN_P.
2555 (prev_real_insn): Likewise.
2556
2e592dce
EC
25572004-05-05 Eric Christopher <echristo@redhat.com>
2558
2559 * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
2560 representation.
2561
7c62e993
PB
25622004-05-05 Paolo Bonzini <bonzini@gnu.org>
2563
2564 * config/rs6000/rs6000.c (build_opaque_vector_type):
2565 New function.
2566 (rs6000_init_builtins): Use it.
2567
87fac4e3
BG
25682004-05-04 Bernard Giroud <bgiroud2@free.fr>
2569
2570 * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
2571 (func_table): Change type from char ** to vms_func_ref.
2572 (write_rtnbeg): Update to reflect func_table change. Use
2573 fde->funcdef_number instead of rtnnum in output.
2574 (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
2575
cc27e657
PB
25762004-05-04 Paolo Bonzini <bonzini@gnu.org>
2577 Richard Henderson <rth@redhat.com>
2578
2579 PR target/14899
2580
2581 * c-common.c (vector_types_convertible_p): New function.
2582 * c-typeck.c (comptypes): Recurse on vector types.
2583 (convert_for_assignment): Use vector_types_convertible_p.
2584 (digest_init): Use vector_types_convertible_p to check
2585 validness of constant vector initializers; otherwise treat
2586 them as scalars.
2587 * tree.c (make_or_reuse_type): New.
2588 (build_common_tree_nodes): Use it.
2589 * cp/call.c (standard_conversion): Likewise.
2590 * cp/typeck.c (comptypes): Recurse on vector types.
2591 (convert_for_assignment): Use vector_types_convertible_p.
cc27e657 2592
6fc8a30a
CD
25932004-05-04 Chris Demetriou <cgd@broadcom.com>
2594
2595 * config/mips/mips.c (override_options): Default to no
2596 generation of branch-likely operations when tuning for
2597 CPUs where they tend to have a negative performance impact
2598 (e.g., SB-1).
2599
6c89c39a
RK
26002004-05-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2601
2602 * expr.c (store_constructor_field): Don't call store_constructor
2603 if bitsize is not a multiple of a byte.
2604
b5ba341f
RS
26052004-05-04 Richard Sandiford <rsandifo@redhat.com>
2606
2607 * reload1.c (inherit_piecemeal_p): New function.
2608 (emit_reload_insns): When reloading a group of hard registers, use
2609 inherit_piecemeal_p to decide whether the values of individual hard
2610 registers can be inherited.
2611
c6c8779b
L
26122004-05-04 H.J. Lu <hongjiu.lu@intel.com>
2613
2614 * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
2615 * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
2616 * config/t-linux (LIB2ADDEHDEP): Likewise.
2617
82c732f9
PB
26182004-05-04 Paul Brook <paul@codesourcery.com>
2619
2620 * config/arm/crti.asm: Push an even number of registers.
2621 * config/arm/crtn.asm: And restore them. Load via sp.
2622
92e838e2
PB
26232004-05-04 Paolo Bonzini <bonzini@gnu.org>
2624
2625 * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
2626 Collect overhead information.
2627 (ggc_alloc_stat): New name of ggc_alloc. Add MEM_STAT_DECL
2628 parameter and pass it through.
2629 (ggc_alloc_typed_stat): New name of ggc_alloc_typed. Add
2630 MEM_STAT_DECL parameter and pass it through.
2631 (ggc_alloc_zone_stat): New name of ggc_alloc_zone. Add
2632 MEM_STAT_DECL parameter and pass it through.
2633
d8ecbcdb
AH
26342004-05-03 Aldy Hernandez <aldyh@redhat.com>
2635
2636 * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
2637
2638 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
2639
2640 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
2641 rs6000_hard_regno_nregs.
2642
2f7e5a0d
EC
26432004-05-03 Eric Christopher <echristo@redhat.com>
2644
2645 * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
2646 prologue insn instead of setting up call.
2647 (s390_emit_epilogue): Ditto.
2648 * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
2649 (define_constants): Add numbers for above patterns.
2650
38899e29
EC
26512004-05-03 Eric Christopher <echristo@redhat.com>
2652
2653 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
2654 * config/s390/s390.c (s390_conditional_register_usage): ...here.
2655 * config/s390/s390-protos.h: Prototype.
2656
97d62313
JB
26572004-05-03 Joe Buck <jbuck@welsh-buck.org>
2658
2659 * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
2660 assignment.
2661
03a53989
EC
26622004-05-03 Eric Christopher <echristo@redhat.com>
2663
2664 * config/mips/mips.md: Fix branch length attribute definition.
2665
318fec6d
AH
26662004-05-03 Aldy Hernandez <aldyh@redhat.com>
2667
2668 * config.gcc: Remove --enable-altivec support.
2669
2670 * config/rs6000/altivec-defs.h: Remove.
2671
553cba65
RO
26722004-05-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2673
2674 * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
2675 * fixinc/fixincl.x: Regenerate.
2676
6adcf89d
UB
26772004-05-03 Uros Bizjak <uros@kss-loka.si>
2678
2679 * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
2680 definition.
2681 (log?f2, log10?f2, log2?f2): Reimplement expanders with
2682 float_truncate insn.
2683 (*fxtractsf3, *fxtractdf3): Remove insn definition.
2684 (logb?f2): Reimplement expanders with float_truncate insn.
2685
834eb1f0
GS
26862004-05-03 Graham Stott <graham.stott@btinternet.com>
2687
2688 PR 14718
2689 * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
2690 force_type_die for CONST_DECL.
2691
bb8a619e
SB
26922004-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
2693 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
178af0f3
EB
2694
2695 * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
2696 tm-dwarf2.h to tm_file.
2697 (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
2698 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
2699 (ASM_DEBUG_SPEC): Delete.
2700
7a8e07c7
UB
27012004-05-03 Uros Bizjak <uros@kss-loka.si>
2702
2703 * optabs.h (enum optab_index): Add new OTI_expm1.
2704 (expm1_optab): Define corresponding macro.
2705 * optabs.c (init_optabs): Initialize expm1_optab.
2706 * genopinit.c (optabs): Implement expm1_optab using expm1?f2
2707 patterns.
2708 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
2709 using expm1_optab.
2710 (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
2711 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2712
2713 * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
2714 to implement expm1, expm1f and expm1l built-ins as inline x87
2715 intrinsics.
2716
5f2b9599
AO
27172004-05-02 Alexandre Oliva <aoliva@redhat.com>
2718
2719 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
2720 * config/frv/frv.md (*return_true, *return_false): New patterns.
2721
1e5b67ff
KH
27222004-05-02 Kazu Hirata <kazu@cs.umass.edu>
2723
2724 * rtl.h (PHI_NODE_P): Remove.
2725
cfa29a4c
EB
27262004-05-02 Eric Botcazou <ebotcazou@act-europe.fr>
2727
2728 PR middle-end/14988
2729 * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
2730 when passed -2 as 'align'.
2731 (put_var_into_stack): Use 'bool' as the type for the three local
2732 predicates. Adjust calls to put_reg_into_stack.
2733 When passed a CONCAT, instruct put_reg_into_stack to use
2734 a consecutive stack slot for the second part.
2735 (put_reg_into_stack): Remove 'promoted_mode' parameter, add
2736 'consecutive_p' parameter. Turn the three predicates into 'bool'
2737 parameters. Retrieve the register mode from 'reg'.
2738 When consecutive_p is true, instruct assign_stack_local_1 to use
2739 BITS_PER_UNIT alignment.
2740 (put_addressof_into_stack): Use 'bool' as the type for the two
2741 local predicates. Adjust call to put_reg_into_stack.
2742
fc627530
KG
27432004-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2744
2745 * fold-const.c (fold_convert_const, fold): Add missing
2746 FIX_ROUND_EXPR case.
2747
afbe7e61
AO
27482004-05-02 Alexandre Oliva <aoliva@redhat.com>
2749
9850f34a
AO
2750 * configure.ac (FLEX, BISON): Only use tools from the build tree
2751 if build equals host.
2752 * configure: Rebuilt.
2753
764678d1
AO
2754 * config/frv/frv-protos.h (frv_expand_epilogue,
2755 frv_expand_fdpic_call): Add bool argument.
2756 * config/frv/frv.c (frv_function_ok_for_sibcall): New.
2757 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
2758 (frv_expand_epilogue): Use new argument to decide whether to emit
2759 return instruction or copy the return address to LR.
2760 (frv_expand_fdpic_call): Inline PLT entry when emitting direct
2761 sibcalls.
2762 (sibcall_operand): New.
2763 * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
2764 PLUS nor LABEL_REF. Add sibcall_operand.
2765 * config/frv/frv.md (call, call_value): Pass false to
2766 frv_expand_fdpic_call.
2767 (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
2768 (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
2769 sibcall_value_internal, sibcall_value_fdpicdi): New.
2770 (return_unsigned_true, return_unsigned_false): New.
2771 (epilogue): Adjust call to frv_expand_epilogue.
2772 (sibcall_epilogue): New.
2773
afbe7e61
AO
2774 * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
2775 (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
2776 before redefining them.
2777
ca3df643
KG
27782004-05-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2779
2780 * builtins.c (fold_fixed_mathfn): New function.
2781 (fold_builtin_lround, fold_builtin): Use it.
2782
f2c0cb15
JJ
27832004-05-01 Jakub Jelinek <jakub@redhat.com>
2784
2785 * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
2786 also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
2787
ea2637eb
KH
27882004-05-01 Kazu Hirata <kazu@cs.umass.edu>
2789
2790 * config/cris/cris.h: Revert my "fix comment typos" patch.
2791
d0cb84e9
RS
27922004-05-01 Richard Sandiford <rsandifo@redhat.com>
2793
6c3db3ab 2794 * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
d0cb84e9 2795
ebade076
FH
27962004-05-01 Falk Hueffner <falk@debian.org>
2797
2798 * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
2799 builtin_insll): Disallow 0 as first input operand.
2800
0962c33d
FH
28012004-05-01 Falk Hueffner <falk@debian.org>
2802
2803 * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
2804
e2655d15 28052004-05-01 Ulrich Weigand <uweigand@de.ibm.com>
03a53989 2806
e2655d15 2807 PR middle-end/15054
03a53989 2808 * expr.c (expand_expr_real): Do not call preserve_temp_slots
e2655d15
UW
2809 on a TARGET_EXPR temp.
2810 * function.c (assign_stack_temp_for_type): Set 'keep' flag for
2811 TARGET_EXPR temp slots.
2812
77306e3e
PB
28132004-05-01 Paolo Bonzini <bonzini@gnu.org>
2814
2815 * simplify-rtx.c (simplify_ternary_operation): When
2816 converting an IF_THEN_ELSE to a relational op, return
2817 correct mode.
2818
3bf05748
KG
28192004-04-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2820
2821 * builtins.c (fold_builtin_round): Fix comment typo.
2822 (fold_builtin_lround): New function.
2823 (fold_builtin): Use it.
2824
c0873231
AP
28252004-04-20 Andrew Pinski <pinskia@physics.uc.edu>
2826
2827 PR target/11608
2828 * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
2829 more like the one in config/dbxelf.h.
2830
5c5214a9
ZW
28312004-04-30 Zack Weinberg <zack@codesourcery.com>
2832
2833 * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
2834 and adjust definition accordingly.
2835 (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
2836 (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
2837 * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
2838 VECTOR_TYPE.
2839
67214984
JM
28402004-04-30 Jason Merrill <jason@redhat.com>
2841
2842 PR c++/14587
2843 * config/i386/winnt.c (associated_type): Look for attributes on
2844 the TYPE_MAIN_VARIANT of *this.
2845 * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
2846 apply the attributes to the variants.
2847
b73f075a
PB
28482004-04-30 Paul Brook <paul@codesourcery.com>
2849
2850 * config.gcc: Simplify arm --with-{cpu,tune} test.
2851 * config/arm/arm-cores.def: Document whitespace restrictions.
2852
5076da17
RO
28532004-04-30 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2854
2855 PR other/1963
2856 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
2857
8a897bf9 28582004-04-30 Brian Ford <ford@vss.fsi.com>
bb8a619e
SB
2859 DJ Delorie <dj@redhat.com>
2860
2861 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
2862 (DWARF2_DEBUGGING_INFO): Define to enable.
2863 (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
2864 DWARF2.
2865 * configure.ac (Target-specific assembler checks)
2866 <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
2867 relocs.
2868 * configure: Regenerate.
2869 * config.in: Likewise.
2870
2871 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
2872 (ASM_OUPUT_DWARF_OFFSET): Define.
8a897bf9 2873
ed9676cf
AK
28742004-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
2875
2876 * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
2877 (s390_emit_call): New function prototype added.
2878 (s390_tls_get_offset): Function removed.
2879 * config/s390/s390.c (s390_function_ok_for_sibcall,
2880 s390_call_saved_register_used_p): New functions.
2881 (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
2882 (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
2883 (s390_emit_tls_call_insn): New function.
2884 (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
2885 emit_call_insn.
2886 (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5c5214a9 2887 (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
ed9676cf 2888 added.
5c5214a9 2889 * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
ed9676cf
AK
2890 register number used to hold the target address for sibcalls.
2891 * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
2892 New expanders.
5c5214a9 2893 ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
ed9676cf 2894 "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5c5214a9 2895 ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
ed9676cf
AK
2896 Expanders removed.
2897 ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5c5214a9 2898 ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
ed9676cf
AK
2899 "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
2900 ("epilogue"): Changed the call to s390_emit_epilogue to use the
2901 new parameter.
2902
1ae58c30
KH
29032004-04-30 Kazu Hirata <kazu@cs.umass.edu>
2904
2905 * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
2906 cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
2907 reg-stack.c, varasm.c, config/alpha/ev4.md,
2908 config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
2909 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
2910 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
2911 config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
2912 config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
2913 config/ia64/itanium2.md, config/ip2k/ip2k.c,
2914 config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
2915 config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
2916 comment typos.
2917
78011587
PB
29182004-04-30 Paul Brook <paul@codesourcery.com>
2919
2d84a437 2920 * config.gcc: Default ep9312 to hard-float.
78011587
PB
2921 * config/arm/arm-cores.def: Add ARCH field.
2922 * config/arm/arm.c (FL_FOR_ARCH*): Define.
2923 (arm_arch_cirrus): New variable.
2924 (all_cores): Set and use arch.
2925 (all_architectures): Ditto.
2926 (arm_arch_name): New variable.
2927 (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
2928 Set and use arm_arch_cirrus.
2929 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
2930 (enum processor_type): Update ARM_CORE define.
2931 (enum target_cpus): Add. Replaces TARGET_CPU_* defines.
2932 (CPP_SPEC): Remove %(cpp_cpu_arch).
2933 (CPP_ARCH_DEFAULT_SPEC): Remove.
2934 (CPP_CPU_ARCH_SPEC): Remove.
2935 (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
2936 (FPUTYPE_DEFAULT): Don't define here.
2937
e344dbf3
R
29382004-04-30 J"orn Rennecke <joern.rennecke@superh.com>
2939
2940 * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
2941 updates too.
2942
65a939f7
PB
29432004-04-30 Paul Brook <paul@codesourcery.com>
2944
2945 * arm.c (arm_needs_doubleword_align): Use mode alignment.
2946
0bf87ea5
PB
29472004-04-30 Paolo Bonzini <bonzini@gnu.org>
2948
2949 * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
2950 vec_sububs.
2951 [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
2952 duplicates.
2953
a6bf61c7
UB
29542004-04-30 Uros Bizjak <uros@kss-loka.si>
2955
65a939f7
PB
2956 * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
2957 atan2?f3 expanders.
a6bf61c7 2958
150e407a
NC
29592004-04-29 Nick Clifton <nickc@redhat.com>
2960
2961 Bug 14093
2962 * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
2963 * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
2964 Delete static from definition.
2965 * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
2966
6862f97f
UB
29672004-04-30 Uros Bizjak <uros@kss-loka.si>
2968
65a939f7
PB
2969 * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
2970 UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
2971 <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
2972 <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
6862f97f 2973
c65a01af
RG
29742004-04-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
2975
2976 * commom.opt (Wfatal-errors): Add it.
2977 * diagnostic.c (flag_fatal_errors): Define it.
2978 (diagnostic_action_after_output): Check for flag_fatal_errors.
2979 * flags.h (flag_fatal_errors): Declare it.
2980 * opts.c (common_handle_option): Add OPT_Wfatal_errors.
2981 * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
2982
d1c6a401
JZ
29832004-04-30 Josef Zlomek <zlomekj@suse.cz>
2984
2985 * gcse.c (remove_reachable_equiv_notes): Delete notes also in
2986 blocks which have kill flag set.
2987
99c012a8
BE
29882004-04-29 Ben Elliston <bje@au.ibm.com>
2989
2990 * configure.ac (--with-as): Abort if user-supplied assembler
2991 cannot be executed.
2992 (--with-ld): Likewise for the linker.
2993 * configure: Regenerate.
2994
d2be4368
KG
29952004-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2996
2997 * convert.c (convert_to_integer): Ensure `long_integer_type_node'
2998 isn't NULL before using it.
2999
15a6f2c3
RS
30002004-04-29 Richard Sandiford <rsandifo@redhat.com>
3001
3002 PR target/15189
3003 * config/mips/mips.md (load_df_low): Use default length.
3004 (load_df_high, store_df_high): Likewise.
3005
effa5d5d
KH
30062004-04-29 Kazu Hirata <kazu@cs.umass.edu>
3007
3008 * config/mips/mips.md, config/mips/sb1.md,
3009 config/rs6000/rs6000.c: Fix comment typos.
3010
2b8a92de
KH
30112004-04-29 Kazu Hirata <kazu@cs.umass.edu>
3012
3013 * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
3014 Fix comment typos.
3015
8fd58397
DR
30162004-04-29 Douglas B Rupp <rupp@gnat.com>
3017
3018 * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
3019 (delete_if_ordinary): Use above macro.
3020 * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
3021 Update copyright.
3022 * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
3023
56141a6a
RE
30242004-04-29 Richard Earnshaw <rearnsha@arm.com>
3025
3026 * c-decl.c (get_parm_info): Use the correct tag keywords when
3027 warning about type declarations in prototypes.
3028
2682e19f
PB
30292004-04-29 Paul Brook <paul@codesourcery.com>
3030
3031 * config.gcc: Pull list of cores from arm-cores.def.
3032
c6fb08ad
PB
30332004-04-29 Paolo Bonzini <bonzini@gnu.org>
3034
3035 * combine.c (combine_simplify_rtx): Adjust call to use
3036 simplify_relational_operation. Do not use SELECT_CC_MODE
3037 when a comparison already has a MODE_CC mode.
0bf87ea5
PB
3038
30392004-04-29 Paolo Bonzini <bonzini@gnu.org>
3040
c6fb08ad
PB
3041 (simplify_set): simplify_relational_operation may now
3042 return another relational expression.
3043 * cse.c (fold_rtx): simplify_relational_operation now
3044 takes of computing the comparison mode.
3045 * dojump.c (compare_from_rtx): Use simplify_relational_operation,
3046 remove dead code.
3047 (do_compare_rtx_and_jump): Likewise.
3048 * integrate.c (subst_constants): simplify_relational_operation
3049 may now return another relational expression.
3050 * simplify-rtx.c (simplify_gen_relational): Move most code to
3051 the new simplify_relational_operation and
3052 simplify_relational_operation_1 functions.
3053 (simplify_relational_operation): Rewritten.
3054 (simplify_relational_operation_1): New function.
3055 (simplify_ternary_operation): simplify_relational_operation
3056 may now return another relational expression.
5c5214a9 3057 (simplify_rtx): Remove unnecessary temp variable.
c6fb08ad 3058
f964bd29
UB
30592004-04-29 Uros Bizjak <uros@kss-loka.si>
3060
2682e19f
PB
3061 * reg-stack.c (swap_to_top): New function.
3062 (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
3063 swap_to_top().
3064 (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5c5214a9 3065 (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
2682e19f 3066 UNSPEC_FSCALE_EXP.
f964bd29 3067
2682e19f
PB
3068 * config/i386/i386.md (UNSPEC_FSCALE): Remove.
3069 (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
3070 (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
3071 x87's fscale insn.
3072 (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
3073 (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
3074 patterns.
f964bd29 3075
cb83302c
SB
30762004-04-28 Serge Belyshev <1319@bot.ru>
3077
3078 PR 14944
3079 * coverage.c (read_counts_file): Fix usage of warning () call.
3080 * pretty-print.c (pp_base_format_text): Fix typo in the comment.
3081
5ad7ae7f
BE
30822004-04-28 Ben Elliston <bje@au.ibm.com>
3083
3084 * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
3085 options with "-" in the option index.
3086 (SPARC Options): Likewise.
3087 (M32R/D Options): Likewise.
3088
332d782c
KG
30892004-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3090
3091 * convert.c (convert_to_integer): Convert (long)round -> lround,
3092 etc.
3093
90f81f99
AP
30942004-04-28 Andrew Pinski <pinskia@physics.uc.edu>
3095
3096 * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
3097 Return false if we do not have fp register.
3098 (addrs_ok_for_quad_peep): Rename to ...
3099 (mems_ok_for_quad_peep): this.
3100 Add check for volatile memory.
3101 * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
3102 Rename to ...
3103 (mems_ok_for_quad_peep): this.
3104 * config/rs6000/rs6000.md: Change peephole's for lfq/stq
3105 to peephole2's.
3106 (lfq_power2): New instruction.
3107 (stfq_power2): Likewise.
3108
902edd36
JH
31092004-04-28 Jan Hubicka <jh@suse.cz>
3110
3111 PR c/15004
3112 * function.c (do_warn_unused_parameter): Break out form ...
3113 (expand_function_end): ... here; warn only when not using cgraphunit.
3114 * function.h (do_warn_unused_parameter): Declare.
3115 * cgraphunit.c: Include function.h.
3116 (cgraph_finalize_function): Do unused parameter warning.
3117 * Makefile.in (cgraphunit.o): Depend on function.h
3118
a89f5df3
JM
31192004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
3120
3121 * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
3122 calling install-info on $(DESTDIR)$(infodir)/dir already being
3123 present.
3124
40f0b3ee
PB
31252004-04-28 Paul Brook <paul@codesourcery.com>
3126
3127 * dwarf2out.c (mem_loc_descriptor): Handle shifts.
3128
c2e2375e
UW
31292004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
3130
5c5214a9 3131 * gcse.c (find_moveable_store): Do not accept store insns with
c2e2375e
UW
3132 REG_EH_REGION note.
3133
9e1622ed
PB
31342004-04-28 Paul Brook <paul@codesourcery.com>
3135
3136 * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
3137 * function.c (assign_temp): Ditto.
3138 * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
3139
e0d4a859
PB
31402004-04-28 Paul Brook <paul@codesourcery.com>
3141
3142 * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
3143
83532fb7
JZ
31442004-04-28 Josef Zlomek <zlomekj@suse.cz>
3145
3146 * var-tracking.c (variable_different_p): Add a parameter
3147 compare_current_location, compare current location of variable parts
3148 if it is true.
3149 (dataflow_set_different_1): Pass compare_current_location == false.
3150 (dataflow_set_different_2): Pass compare_current_location == false.
3151 (emit_notes_for_differences_1): Pass compare_current_location == true.
3152
cfa29496
UW
31532004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
3154
3155 * config/s390/s390.md ("casesi"): Mark jump table access as
3156 non-trapping and unchanging.
3157
23959f19
JDA
31582004-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3159
3160 PR debug/14829
3161 * dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all
3162 callers.
3163 (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
3164 number for indexing hard_regno_nregs array.
5c5214a9 3165
2f70eed1
GK
31662004-04-27 Geoffrey Keating <geoffk@apple.com>
3167
3168 * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
3169 * config/darwin-crt2.c: Only have contents on __ppc__.
3170
f1dfe704
BW
31712004-04-27 Bob Wilson <bob.wilson@acm.org>
3172
3173 * config/xtensa/xtensa.c (call_insn_operand): Check
3174 SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
3175 * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
3176 * config/xtensa/xtensa.md (call, call_value): Likewise.
3177
80408cac
WY
31782004-04-27 Wu Yongwei <adah@sh163.net>
3179
3180 * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
3181 (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
3182 (__gthread_mutex_init_function): Replace CreateMutex with
3183 initialization of custom mutex using CreateSemaphore.
3184 (__gthread_mutex_lock): Use InterlockedIncrement.
3185 (__gthread_mutex_trylock): Use InterlockedCompareExchange.
3186 (__gthread_mutex_unlock): Use InterlockedDecrement and
3187 ReleaseSemaphore to unlock
3188 * config/i386/gthr-win32.c (__gthread_mutex_init_function,
3189 __gthread_mutex_lock, __gthread_mutex_trylock,
3190 __gthread_mutex_unlock): Adjust to match inline versions in
3191 gthr-win32.h.
3192
70301b45
PB
31932004-04-27 Paul Brook <paul@codesourcery.com>
3194
3195 * config/arm/arm.c (arm_promote_prototypes): New function.
3196 (TARGET_PROMOTE_PROTOTYPES): Use it.
3197
4b763d77
PB
31982004-04-27 Paul Brook <paul@codesourcery.com>
3199
3200 * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
3201
7053a0e2
BG
32022004-04-26 Bernard Giroud <bgiroud@free.fr>
3203
3204 * config/alpha.c (alpha_end_function): For OpenVMS gas,
3205 correctly output .pdesc directive before .end.
3206
6d7870d1
JW
32072004-04-26 James E Wilson <wilson@specifixinc.com>
3208
3209 Bug 14927
3210 * config/ia64/ia64.md (movxf): New local op0. Handle case where
3211 operands[0] is a SUBREG. Handle case where operands[1] is a GR reg.
3212
7dd7fb88
ZW
32132004-04-26 Zack Weinberg <zack@codesourcery.com>
3214
3215 * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
3216 * config/pa/pa-hpux10.h: Likewise.
3217 * config/pa/pa-hpux11.h: Likewise.
3218
488061c8
GK
32192004-04-26 Geoffrey Keating <geoffk@apple.com>
3220
3221 * doc/invoke.texi (Overall Options): Document default for -o
3222 for PCH files.
3223
2b92e7f5
RK
32242004-04-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3225
3226 * builtins.c (expand_builtin_update_setjmp_buf): New function.
3227 (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
3228 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
3229
3657dc3e
PB
32302004-04-26 Paul Brook <paul@codesourcery.com>
3231
3232 * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
3233
778ebdd9
PB
32342004-04-26 Paul Brook <paul@codesourcery.com>
3235
3236 * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
3237
7c95f621
RS
32382004-04-25 Roger Sayle <roger@eyesopen.com>
3239
3240 * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
3241 fold (build1 (NEGATE_EXPR, ...)). Optimize X / -1 as -X and
3242 X % -1 as 0.
3243
29c246a7
HPN
32442004-04-26 Hans-Peter Nilsson <hp@bitrange.com>
3245
3246 PR bootstrap/15141
3247 * except.c (connect_post_landing_pads): Delete insns after the
3248 barrier when generating a unwind_resume_libfunc call.
3249
95df09f0
RK
32502004-04-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3251
3252 PR/c++ 15119
3253 * tree.c (substitute_placeholder_in_expr, case 4): New case,
3254 for TARGET_EXPR.
3255
32562004-04-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
060c5f00
ZD
3257
3258 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3259 __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
3260 inhibit_libc is defined.
3261
39ba1719
RS
32622004-04-25 Richard Sandiford <rsandifo@redhat.com>
3263
3264 * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
3265 * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
3266 * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
3267 (TARGET_SCHED_VARIABLE_ISSUE): Define.
3268 (mips_adjust_cost): Move later in file, next to other sched hooks.
3269 (mips_macc_chains_last_hilo): New variable.
3270 (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
3271 (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
3272 * config/mips/mips.md (may_clobber_hilo): New attribute.
3273
d3535e80
RS
32742004-04-24 Roger Sayle <roger@eyesopen.com>
3275 Bruce Korb <bkorb@gnu.org>
3276
3277 * fixinc/inclhack.def (aix_syswait_2): New fix.
3278 * fixinc/fixincl.x: Regenerate.
3279 * fixinc/tests/base/sys/wait.h: Update for new test.
3280
44688022
AM
32812004-04-24 Alan Modra <amodra@bigpond.net.au>
3282
3283 PR target/14960
3284 * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
3285 to non_fixed_size, and leave out fixed_size from the sum.
3286 (generate_set_vrsave): Correct clobbers.
3287 (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
3288 (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
3289 (rs6000_libcall_value): Likewise.
3290 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
3291 (FUNCTION_ARG_REGNO_P): Likewise.
3292
77278891
UW
32932004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
3294
3295 * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
3296 is a CONST_INT.
3297 (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
3298 with NARROW_OP1 instead of OP1.
3299
170f9e63
UW
33002004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
3301
3302 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
3303 and __s390x__ hosts.
3304
d1c38823
ZD
33052004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3306
3307 * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
3308 _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
3309 * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
3310 BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
3311 BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
3312 * builtins.c (expand_builtin_fork_or_exec): New.
3313 (expand_builtin): Call it.
3314 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
3315 BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
3316 * c-common.c (PID_TYPE): New macro.
3317 (c_common_nodes_and_builtins): Initialize pid_type_node.
3318 * calls.c (special_function_p): Do not handle fork and exec.
3319 (expand_call): Do not handle ECF_FORK_OR_EXEC.
3320 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3321 __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
3322 * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3323 __gcov_execv, __gcov_execvp, __gcov_execve): New.
3324 * tree.h (enum tree_index): Add TI_PID_TYPE.
3325 (pid_type_node): New macro.
3326 (ECF_FORK_OR_EXEC): Removed.
3327
1548580c
EB
33282004-04-23 Eric Botcazou <ebotcazou@libertysurf.fr>
3329
3330 PR optimization/13985
3331 * cfgloopmanip.c (fix_loop_placements): New prototype.
3332 Call fix_bb_placements on the preheader of loops that have
3333 been reparented.
3334 (remove_path): Adjust call to fix_loop_placements.
3335
9b2d02a0
AP
33362004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
3337
3338 * config/darwin7.h: New file.
3339 * config.gcc (*-*-darwin*): Add darwin7.h if the
3340 version is greater than 6.
3341 * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
3342 (MATH_LIBRARY): Wrap in ifdefs.
3343
01d4c813
DJ
33442004-04-23 Daniel Jacobowitz <drow@mvista.com>
3345
3346 * config/arm/arm.c (arm_output_epilogue): Reverse the order of
3347 loading iWMMXt registers with a frame pointer. Use post-increment
3348 without a frame pointer.
3349 (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
3350
7797ff53
PB
33512004-04-23 Paolo Bonzini <bonzini@gnu.org>
3352
3353 * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
3354 mode" rather than "-funit-at-a-time" since -O2 enables it
3355 without requiring -f* options. Refer to -fprofile-generate and
3356 -fprofile-use correctly. Move -funit-at-a-time among options
3357 enabled by -O. Add information about unit-at-a-time caveats.
3358
500bee0a
PB
33592004-04-22 Per Bothner <per@bothner.com>
3360
3361 * line-map.h (struct line_maps): New field highest_line.
3362 (linemap_position_for_column): Make non-inline function.
3363 (LINEMAP_POSITION_FOR_COLUMN): New macro.
3364 * line-map.c (linemap_init): Clear highest_line field.
3365 (linemap_add): Set highest_line field.
3366 (linemap_line_start): Minor optimization - use highest_line field.
3367 Reduce maximum column hint to 10000. Update highest_line field.
3368 (linemap_position_for_column): Moved from line-map.h. Optimize a bit.
3369 * cpphash.h (struct cpp_reader): Remove line field - instead use
3370 line_table->highest_line.
3371 (saved_line): Remove unused field.
3372 (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map.
3373 Use line_table's highest_line field instead of cpp_reader's line.
3374 * cpplib.c (start_directive): Likewise use highest_line field.
3375 (do_line, do_linemarker): Likewise just use newest map.
3376 (_cpp_do_file_change): Don't need to set cpp_reader's line field.
3377 * cpperror.c (cpp_error): Likewise use highest_line field.
3378 * cppfiles.c (open_file_failed: Likewise.
3379 (cpp_make_system_header): Likewise use newest map and highest_line.
3380 * cppinit.c (cpp_create_reader): Don't initialize removed field.
3381 * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
3382 skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
3383 _cpp_lex_direct): Likewise use highest_line.
3384 (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro.
3385 * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line,
3386 and use newest map.
3387 * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line.
3388 * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line.
3389 (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line.
3390
8efcd34f
AM
33912004-04-23 Alan Modra <amodra@bigpond.net.au>
3392
9344fdb9 3393 PR bootstrap/14992
8efcd34f
AM
3394 * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
3395 * config/linux.h (USE_LD_AS_NEEDED): Define.
3396 * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
3397 * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
3398 * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
3399 * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
3400 * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
3401 * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
3402 * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
3403
3092d0fc
PB
34042004-04-22 Per Bothner <per@bothner.com>
3405
3406 * cppinit.c (cpp_read_main_file): Return NULL rather than false.
3407 Fixes PR preprocessor/15067.
3408
e203404e
AS
34092004-04-23 Andreas Schwab <schwab@suse.de>
3410
3411 * config/ia64/ia64intrin.h: Add intermediate cast to void * to
3412 avoid aliasing warning.
3413
bade3a00 34142004-04-22 Jan Hubicka <jh@suse.cz>
bdabb153 3415 Mostafa Hagog <mustafa@il.ibm.com>
bade3a00
JH
3416
3417 * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
3418 * cfgloopanal.c (expected_loop_iterations): Change the return value
3419
fb5d4a68
JJ
34202004-04-22 Jakub Jelinek <jakub@redhat.com>
3421
3422 * cselib.h (struct elt_loc_list): Remove canon_loc field.
3423 * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
3424 (cselib_invalidate_mem): Remove all canon_loc and canon_x
3425 traces.
3426
b10e5b3a
JZ
34272004-04-22 Josef Zlomek <zlomekj@suse.cz>
3428
3429 Revert
3430 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
3431
3432 * var-tracking.c (variable_part_different_p): Variable parts
3433 differ when the most recent locations differ.
3434
827555ea
RS
34352004-04-22 Richard Sandiford <rsandifo@redhat.com>
3436
3437 * doc/invoke.texi: Remove the MIPS -membedded-pic option.
3438 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
3439 (embedded_pic_offset): Delete.
3440 * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other
3441 MASK_* constants.
3442 (TARGET_EMBEDDED_PIC): Delete.
3443 (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
3444 (ASM_SPEC): Remove -membedded-pic.
3445 (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
3446 (ASM_OUTPUT_CASE_LABEL): Likewise.
3447 * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
3448 * config/mips/windiss.h (ASM_SPEC): Likewise.
3449 * config/mips/mips.c (struct machine_function): Remove
3450 embedded_pic_fnaddr_rtx.
3451 (TARGET_ENCODE_SECTION_INFO): Remove override.
3452 (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
3453 (override_options): Remove -membedded-pic handling.
3454 (print_operand): Remove handling of '%S'.
3455 (mips_select_section: Remove -membedded-pic handling.
3456 (mips_encode_section_info): Delete.
3457 (mips_output_conditional_branch): Remove mention of -membedded-pic.
3458 * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
3459 -membedded-pic handling.
3460 (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
3461
00ca716b
AM
34622004-04-22 Alan Modra <amodra@bigpond.net.au>
3463
3464 * var-tracking.c (frame_base_decl): Remove useless GTY.
3465
e4463bf1
AH
34662004-04-21 Aldy Hernandez <aldyh@redhat.com>
3467
3468 * config/rs6000/rs6000.c (rs6000_override_options): Error when
3469 user wants altivec and e500 instructions.
3470
e24e0aa7
L
34712004-04-21 H.J. Lu <hongjiu.lu@intel.com>
3472
3473 PR target/14813
3474 * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
3475 in .init_array section to ...
3476 * config/ia64/crtbegin.asm: Here.
3477
3478 * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
3479 and hidden if HAVE_INITFINI_ARRAY is defined.
3480
cb7761f5
JW
34812004-04-21 James E Wilson <wilson@specifixinc.com>
3482
50d32cf6
JW
3483 * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
3484 * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
3485 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
3486 (fp_register_operand, lo_operand): New.
3487 (mips_rtx_costs): Add TUNE_SB1 support.
3488 (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support.
3489 (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
3490 (mips_multipass_dfa_lookahead): New.
3491 * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
3492 TUNE_SB1): New.
3493 (TARGET_SWITCHES): Add -mfp-exceptions support.
3494 (TARGET_FP_EXCEPTIONS_DEFAULT): New.
3495 (BRANCH_COST): Fix whitespace.
3496 * config/mips/mips.md: Include sb1.md.
3497 * config/mips/sb1.md: New file.
3498 * doc/invoke.texi: Document -mfp-exceptions.
3499
cb7761f5
JW
3500 * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix
3501 comment.
3502 * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
3503 (fixincl.o-warn): Delete.
3504
a031e781
AP
35052004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
3506
3507 * config/rs6000/rs6000 (print_operand) ['z']:
3508 Change ifdef of TARGET_MACHO to if TARGET_MACHO.
3509
06a6469a
DJ
35102004-04-21 Daniel Jacobowitz <drow@mvista.com>
3511
3512 * config.gcc: Support --with-arch=iwmmxt for ARM.
3513
665acd1e
RK
35142004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3515
3516 * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
3517 in two more places; remove unneeded force_reg
3518
f9da97f0
AP
35192004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
3520
3521 * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
3522 for TARGET_MACHO.
3523 (print_operand): For TARGET_MACHO check to see if we need a stub
3524 and output one if we need it.
de3c6d93
AP
3525
3526 PR debug/15033
3527 * dwarf2out.c (rtl_for_decl_location): Check for NULL
3528 rtl.
3529
75293ad6
JW
35302004-04-20 James E Wilson <wilson@specifixinc.com>
3531
3532 * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
3533 (vall_value_gp): Likewise.
3534
8b495402 35352004-04-20 DJ Delorie <dj@redhat.com>
7dd7fb88 3536
8b495402
DD
3537 * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
3538 variables stored in word registers, then in memory.
3539
77a705e4
EC
35402004-04-20 Eric Christopher <echristo@redhat.com>
3541
3542 * cp/parser.c (cp_parser_declaration): Move translate
3543 up before tokens are lexed.
3544
c56122d8
UB
35452004-04-20 Uros Bizjak <uros@kss-loka.si>
3546
3547 * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
3548 (asin_optab, acos_optab): Define corresponding macros.
3549 * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
3550 * genopinit.c (optabs): Implement asin_optab and acos_optab
3551 using asin?f2 and acos?f2 patterns.
3552 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
3553 using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
3554 (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
3555 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3556
3557 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
3558 acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
3559 acos, acosf and acosl built-ins as inline x87 intrinsics.
3560
386d3a16
PB
35612004-04-20 Paul Brook <paul@codesourcery.com>
3562
3563 * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
3564
7aebacee
PB
35652004-04-20 Paul Brook <paul@codesourcery.com>
3566
3567 * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
3568
a7b1dc36
PB
35692004-04-20 Paolo Bonzini <bonzini@gnu.org>
3570
3571 Revert part of 2004-04-17 change that moved -frename-registers
3572 to -O1. -frename-registers is buggy.
3573
3574 * toplev.c (flag_rename_registers): Initialize to 0.
3575 * doc/invoke.texi (Optimize options): Move -frename-registers
3576 to "Not triggered by any -O level" section. Adjust commentary
3577 accordingly.
77a705e4 3578
1548580c 35792004-04-20 Anil Paranjpe <anilp1@kpitcummins.com>
57bef48e
AP
3580
3581 * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
3582
169304de
RS
35832004-04-20 Richard Sandiford <rsandifo@redhat.com>
3584
3585 * config/mips/mips.c (mips_legitimize_move): Generate special patterns
3586 for mflo and mfhi instructions.
3587 (mips_output_move): Remove mflo and mfhi handling.
3588 * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
3589 (*mulsidi3_64bit): Update for new mfhi/mflo representation.
3590 Likewise various define_peephole2s.
3591 (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
3592 alternatives.
3593 (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
3594 (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
3595 (mfhilo_di, mfhilo_si): New patterns.
3596
c6ca23fb
JZ
35972004-04-20 Josef Zlomek <zlomekj@suse.cz>
3598
3599 * function.c (assign_parms): Force
3600 MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
3601
6f615a28
JZ
36022004-04-20 Josef Zlomek <zlomekj@suse.cz>
3603
3604 * var-tracking.c (variable_part_different_p): Variable parts differ
3605 when the most recent locations differ.
3606
a1bac22c
JW
36072004-04-19 James E Wilson <wilson@specifixinc.com>
3608
3609 * rtl.h (reg_set_last): Delete declaration.
3610 * rtlanal.c (reg_set_last): Delete.
3611
e419fe91
RS
36122004-04-19 Roger Sayle <roger@eyesopen.com>
3613
3614 * fold-const.c (fold_convert): Make function extern/public.
3615 * tree.h (fold_convert): Prototype here.
3616 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3617 expand_builtin_strrchr, expand_builtin_strpbrk,
3618 expand_builtin_mempcpy, expand_builtin_bcopy,
3619 expand_builtin_bzero, expand_builtin_memcmp,
3620 expand_builtin_strcmp, expand_builtin_strncmp,
3621 stabilize_va_list, expand_builtin_sprintf,
3622 fold_trunc_transparent_mathfn, fold_builtin_logarithm,
3623 fold_builtin_exponent, fold_builtin_mempcpy,
3624 fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
3625 fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
3626 fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
3627
423c1189
AH
36282004-04-19 Aldy Hernandez <aldyh@redhat.com>
3629
7dd7fb88
ZW
3630 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
3631 (move_from_CR_gt_bit): New.
3632 (cceq_ior_compare): Name previously unnamed pattern. Disable for
3633 E500.
3634 (cceq_rev_compare): Name previously unnamed pattern. Allow for
3635 E500.
3636
3637 * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
3638 (tstsfeq_gpr): Same.
3639 (cmpsfgt_gpr): Same.
3640 (tstsfgt_gpr): Same.
3641 (cmpsflt_gpr): Same.
3642 (tstsflt_gpr): Same.
3643 (e500_cceq_ior_compare): New.
3644 (e500_flip_gt_bit): New.
3645
3646 * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
3647 (print_operand): Add 'c' and 'D'.
3648 (rs6000_generate_compare): Rewrite to generate correct rtl.
3649 (rs6000_emit_sCOND): Handle E500.
3650 (output_cbranch): Adjust for changes in rs6000_generate_compare.
3651 (output_e500_flip_gt_bit): New.
3652
3653 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
3654 Protoize.
423c1189 3655
d2beeae7
EC
36562004-04-19 Eric Christopher <echristo@redhat.com>
3657
3658 * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
3659
06e7f299
DE
36602004-04-19 David Edelsohn <edelsohn@gnu.org>
3661
3662 * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
3663 fix information.
d2beeae7 3664
8df5a2b4
RO
36652004-04-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3666
3667 * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
3668 download URL.
3669
9ca75f15
DJ
36702004-04-19 Daniel Jacobowitz <drow@mvista.com>
3671
3672 * stor-layout.c (layout_decl): Check DECL_PACKED before calling
3673 ADJUST_FIELD_ALIGN. Check maximum_field_alignment after.
3674
4b493aa5
AP
36752004-04-19 Andrew PInski <pinskia@physics.uc.edu>
3676
66a5d24b
AP
3677 * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
3678 (fold_builtin): Update caller to match.
3679
4b493aa5
AP
3680 PR bootstrap/15009
3681 * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
3682
3683 PR bootstrap/14999
3684 * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
3685
3d8f2528
RK
36862004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3687
a3d71605
RK
3688 * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
3689
3d8f2528
RK
3690 * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
3691 (expand_mult_highpart_optab): Likewise.
3692 (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
3693
6f6c1f6d
PB
36942004-04-19 Paul Brook <paul@codesourcery.com>
3695
3696 * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
3697 floatunssisf2, floatunssidf2): New patterns.
3698
fea77ed9
MM
36992004-04-18 Mark Mitchell <mark@codesourcery.com>
3700
33adcb6c
MM
3701 PR other/14918
3702 * doc/invoke.texi (-fprofile-generate): Document requirement to
3703 use -fprofile-generate when linking.
3704
fea77ed9
MM
3705 * doc/extend.texi (Strong Using): Warn users against using this
3706 feature.
3707
76cbf5bf
RS
37082004-04-18 Richard Sandiford <rsandifo@redhat.com>
3709
3710 * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
3711 * config/mips/mips.h (mips_entry, mips_string_length): Delete.
3712 (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
3713 * config/mips/mips.c (struct mips16_constant): Renamed from struct
3714 constant. Propogate change throughout file.
3715 (struct machine_function): Remove insns_len.
3716 (mips_string_length, mips16_strings, string_constants): Delete.
3717 (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
3718 when generating mips16 code. Remove special mips16 treatment of
3719 string constants.
3720 (mips_symbolic_constant_p): Allow mips16 constant pool accesses
3721 to have the form LABEL+CONSTANT.
3722 (mips_symbolic_address_p): Fix comment.
3723 (m16_usym8_4, m16_usym5_4): Delete.
3724 (mips_output_function_epilogue): Remove mips16 string handling.
3725 (mips_output_mi_thunk): Call mips16_lay_out_constants.
3726 (mips_select_section, mips_encode_section_info): Remove mips16
3727 string handling.
3728 (struct mips16_constant_pool): New.
3729 (add_constant): Take a mips16_constant_pool structure. Keep pool
3730 sorted into order of ascending mode size. Keep track of the highest
3731 possible start address, taking padding and the masking of the base PC
3732 value into account.
3733 (dump_constants_1): New function, split out from dump_constants.
3734 Handle vector constants. Use gen_consttable_{int,float} rather than
3735 separate functions for each mode.
3736 (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align
3737 rather than separate functions for each alignment.
3738 (mips_find_symbol): Delete.
3739 (mips16_insn_length): New function, split out from
3740 mips16_lay_out_constants.
3741 (mips16_rewrite_pool_refs): New function.
3742 (mips16_lay_out_constants): Rework. Remove string handling.
3743 Always create an inline constant pool.
3744 * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
3745 (UNSPEC_ALIGN): New constants.
3746 (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
3747 (UNSPEC_ALIGN_[248]): Delete.
3748 (consttable_int, consttable_float, align): New patterns.
3749 (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
3750
8d33585c
AH
37512004-04-17 Aldy Hernandez <aldyh@redhat.com>
3752
3753 * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
3754 __unn_args_eq.
3755
03e007d7
AM
37562004-04-17 Alan Modra <amodra@bigpond.net.au>
3757
3758 PR target/14715
3759 * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
3760 with STARTING_FRAME_OFFSET.
3761
3bd06df7
RS
37622004-04-17 Richard Sandiford <rsandifo@redhat.com>
3763
3764 * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
3765 * config/mips/mips.c (macc_msac_operand): New function.
3766 * config/mips/mips.md (*msac): Move after *macc.
3767 (*msac2): New. Generalize macc-related peepholes so that they apply
3768 to msac too.
3769
38d396e5
PB
37702004-04-17 Paolo Bonzini <bonzini@gnu.org>
3771
3772 * opts.c (decode_options): Do not enable flag_rename_registers
3773 and flag_web at -O3.
3774 * toplev.c (flag_rename_registers): Initialize
3775 flag_rename_registers and flag_web to
3776 AUTODETECT_FLAG_VAR_TRACKING.
3777 (default_debug_hooks): New global.
3778 (process_options): Initialize default_debug_hooks. Warn if
3779 -fvar-tracking specified but not supported by the current
3780 debug format. Do not run var tracking at -O0 or if not
3781 supported by the current debug format, even if
3782 -fvar-tracking was given. If -fno-rename-registers
3783 is not specified, always run register renaming if var
3784 tracking is supported by the default debugging information
3785 format for the target, and we are at -O1 or higher; similarly
3786 for -fweb, but only at -O2 or higher.
3787 * doc/invoke.texi (Optimize Options): Document this.
3788
82e923f6
RS
37892004-04-17 Richard Sandiford <rsandifo@redhat.com>
3790
3791 * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
3792 * configure: Regenerate.
3793
f645e2bd
RS
37942004-04-17 Richard Sandiford <rsandifo@redhat.com>
3795
3796 * gcc.c (used_arg): Check whether an option has been removed.
3797
04db08db
RO
37982004-04-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3799
3800 * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
3801 debugging on Solaris 7 and up.
3802
7e270317
RO
38032004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3804
3805 * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
3806 IRIX 5 port.
3807 Remove -save-temps workaround, handled automatically.
3808 Require GNU binutils 2.15 for debugging.
3809 Remove SGI make warnings since GNU make is now required.
3810 (Specific, mips-sgi-irix6): Some markup fixes.
3811 Describe MIPSpro C problems and workarounds.
3812 Mention working O32 ABI support.
3813 Recommend GNU as 2.15 for O32 with debugging.
3814 Remove description of fixed structure pass/return bug.
3815
2d49ce67
DD
38162004-04-16 DJ Delorie <dj@redhat.com>
3817
3818 * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
3819 TYPE_FIELDS.
3820 (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
3821
41067a2f
JDA
38222004-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3823
e6b75edc
JDA
3824 * pa.md: Remove unnecessary declarations for asm_out_file.
3825
7945b276
JDA
3826 * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
3827 SAR register. Fix comment.
3828 (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
3829 (%cr11).
3830
41067a2f
JDA
3831 * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
3832
c805f22e
NC
38332004-04-16 Nick Clifton <nickc@redhat.com>
3834
3835 * config/arm/arm.c (arm_override_options): Revert previous patch.
3836 * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
3837 be safely built.
3838
8a897efe
KI
38392004-04-16 Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
3840
3841 * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
3842 bug.
3843 (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
3844 TARGET_DEFAULT): Changed. Ditto.
3845 (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
3846 TARGET_ENDIAN_DEFAULT): Added. Ditto.
3847 * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
3848 (TARGET_ENDIAN_DEFAULT): Added.
3849
b069dd3f
KG
38502004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3851
3852 * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
3853 ATTR_CONST_NOTHROW_LIST.
3854
df28deda
KG
38552004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3856
3857 PR/middle-end 14915
3858 * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
3859 BITS_BIG_ENDIAN.
3860
c87fbb0a
PH
38612004-04-15 Pat Haugen <pthaugen@us.ibm.com>
3862
3863 * ra-debug.c (ra_print_rtx): Add break's to case legs.
3864
ea7b98d0
JW
38652004-04-14 James E Wilson <wilson@specifixinc.com>
3866
3867 * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
3868
69f9a345
NN
38692004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
3870
3871 * libada-mk.in: New file.
3872 * configure.ac: Create libada-mk from libada-mk.in.
3873 * configure: Regenerate.
3874
88b28a31
UB
38752004-04-14 Uros Bizjak <uros@kss-loka.si>
3876
3877 * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
3878 (logb_optab, ilogb_optab): Define corresponding macros.
3879 * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
3880 * genopinit.c (optabs): Implement logb_optab and ilogb_optab
3881 using logb?f2 and ilogb?i2 patterns.
3882 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
3883 using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
3884 (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
3885 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3886
3887 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
3888 and UNSPEC_XTRACT_EXP.
3889
3890 * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
3891 patterns to implement fxtract x87 instruction.
3892 (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
3893 logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
3894 intrinsics.
3895 (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
3896 x87's fxtract insn.
3897
ec6e4092
EC
38982004-04-14 Eric Christopher <echristo@redhat.com>
3899
3900 * config/mips/t-elf: Enable multilibs by default.
3901
ef482a86
AT
39022004-04-14 Andreas Tobler <a.tobler@schweiz.ch>
3903
3904 * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
3905 previous fix to check HAVE_return at runtime too.
3906
cd2b7af0
NC
39072004-04-14 Nick Clifton <nickc@redhat.com>
3908
3909 * config/arm/arm.c (arm_override_options): If the user has not
3910 specified an ABI, then default to AAPCS for the iWMMXt processor.
3911 * config/arm/t-xscale-elf: Remove redundant multilib specifications.
3912 * config/arm/t-xscale-coff: Likewise.
3913
61218d19
KG
39142004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3915
3916 * builtins.c (fold_builtin_isdigit): New.
3917 (fold_builtin): Handle BUILT_IN_ISDIGIT.
3918 * defaults.h: Add TARGET_DIGIT0 and sort.
3919 * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
3920
a69934e0
KG
39212004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3922
3923 * builtins.c (fold_builtin_cabs, fold_builtin): Use
3924 `mathfn_built_in' to determine the new builtin.
3925 * fold-const.c (fold): Likewise.
3926
74b9f2d5
RS
39272004-04-14 Richard Sandiford <rsandifo@redhat.com>
3928
3929 * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
3930 * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
3931 (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
3932 (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
3933 (ASM_SPEC): Update accordingly.
3934 * config/mips/mips.c: Update after above renaming.
3935 * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
3936 * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
3937
540554f4
JW
39382004-04-13 James E Wilson <wilson@specifixinc.com>
3939
3940 * c-opt.c (c_common_post_options): If this_input_filename is NULL,
3941 increment errorcount and return false instead of true.
3942
a072d43b
UB
39432004-04-13 Uros Bizjak <uros@kss-loka.si>:
3944
3945 * optabs.c (expand_twoval_unop): Reorder function arguments.
3946 * builtins.c (expand_builtin_mathfn_3): Update calls to
3947 expand_twoval_unop.
3948
3949 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
3950 and UNSPEC_TAN_TAN. Add missing comment.
3951
3952 * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
3953 patterns to implement fptan x87 instruction.
3954 (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
3955 and tanl built-ins as inline x87 intrinsics. Define corresponding
3956 peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
3957 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
3958 x87's fptan insn.
3959
b50b729d
RH
39602004-03-13 Richard Henderson <rth@redhat.com>
3961
3962 * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
3963 for LABEL_REFs.
3964
3a4bdd05
RH
3965 * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
3966 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
3967 * doc/invoke.texi: Update to match.
3968
73ad3de5
RH
3969 * varasm.c (unlikely_text_section): Use assemble_align instead of
3970 ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately
3971 correct alignment argument.
3972
9532c14f
UW
39732004-04-13 Ulrich Weigand <uweigand@de.ibm.com>
3974
3975 * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
3976 after setting reg_last_reload_reg for optional output reloads.
3977
3d3947a9
FJ
39782004-04-12 Fariborz Jahanian <fjahanian@apple.com>
3979
3980 * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
3981 Definition of these two macros are corrected by adding
3982 matchine right paren.
3983
f778cbf0
JL
39842004-04-12 Jonathan Larmour <jifl@eCosCentric.com>
3985
3986 * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
3987
5ea9cb6e
RS
39882004-04-12 Roger Sayle <roger@eyesopen.com>
3989
3990 * config/i386/i386.c (output_387_reg_move): New function.
3991 * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
3992 * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
3993 *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
3994 *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
3995 truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
3996
1c9766da
RK
39972004-04-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3998
3999 * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
4000 TYPE_DECL.
4001 * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
4002 * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
4003 * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
4004 Use skip_simple_arithmetic to find SAVE_EXPR.
4005 (force_type_save_exprs, force_type_save_exprs_1): New functions.
4006 * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
4007 Properly chain multiple pointers.
4008 (copy_tree_r): Copy a TYPE_DECL.
4009 * tree.c (variably_modified_type_p): Add some missing tests and
4010 make some other minor changes.
4011 * tree.h (force_type_save_exprs): New declaration.
4012
1e9b78b0
RS
40132004-04-12 Roger Sayle <roger@eyesopen.com>
4014
4015 * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
4016 Remove fall throughs. Convert 0/x and 0%x into x&0 when x has
4017 side-effects. Don't convert x/1.0 into x if we honor signaling NaNs.
4018 Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert
4019 x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize
4020 x%-1 into 0 (or x&0 if x has side-effects).
4021
fef98bf2
AH
40222004-04-11 Aldy Hernandez <aldyh@redhat.com>
4023
4024 * config/rs6000/rs6000.md: Document why a pattern is not
4025 available.
4026
4027 * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
4028 of floats on the E500.
4029 (branch_positive_comparison_operator): Do not allow NE even on the
4030 E500.
4031
642af3be
AH
40322004-04-11 Aldy Hernandez <aldyh@redhat.com>
4033
4034 * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
4035 in_text_unlikely_section to in_unlikely_text_section.
4036
b3e65ebb
RS
40372004-04-11 Roger Sayle <roger@eyesopen.com>
4038
4039 * fold-const.c (fold_binary_op_with_conditional_arg): Tweak
4040 calling convention to allow a NULL_TREE to be returned. Factor
4041 sanity checks from callers, return NULL_TREE when appropriate.
4042 (fold): Handle COMPOUND_EXPR operands of binary expressions
4043 before COND_EXPR operands. Use reorder_operands_p(a,b) to check
4044 whether a op (b,c) can be rewritten as (b, a op c). Simplify
4045 calls to fold_binary_op_with_conditional_arg.
4046
19d33948
KG
40472004-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4048
4049 * config/mips/iris5.h (current_section_flags): Add
4050 in_unlikely_executed_text and default case.
4051
cf22ce3c
AT
40522004-04-11 Andreas Tobler <a.tobler@schweiz.ch>
4053
4054 * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
4055 failure on solaris. Place ifdef HAVE_return around gen_ret call.
4056 * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
4057 HAVE_return and place it around the place where it is needed.
4058
34982294
AP
40592004-04-11 Andrew Pinski <pinskia@physics.uc.edu>
4060
4061 * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
4062 ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
4063 and NORMAL_TEXT_SECTION_NAME.
4064 (unlikely_text_section): Check targetm.have_named_sections
4065 instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
4066 instead of SECTION_FORMAT_STRING.
4067 * config/mips/iris5.h (current_section_name): Add
4068 in_unlikely_executed_text case and move the abort into the switch.
4069 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
4070 (NORMAL_TEXT_SECTION_NAME): Remove.
4071 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
4072 (SECTION_FORMAT_STRING): Remove.
4073 * defaults.h (SECTION_FORMAT_STRING): Remove.
4074 * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
4075 (SECTION_FORMAT_STRING): Remove.
4076
c7e1876b
JM
40772004-04-10 Joseph S. Myers <jsm@polyomino.org.uk>
4078
4079 * c-typeck.c (common_type): Prefer long long to long when same
4080 precision.
4081
7c3ac422
ZW
40822004-04-09 Zack Weinberg <zack@codesourcery.com>
4083
4084 PR 14887
4085 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
4086 mode argument.
4087 * config/ia64/ia64.c (ia64_hpux_file_end): Check
4088 TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
4089
0b24db88
RS
40902004-04-09 Roger Sayle <roger@eyesopen.com>
4091
4092 * simplify-rtx.c (mode_signbit_p): New function to check whether
4093 an RTX is an immediate constant that represents the most significant
4094 bit of a given machine mode.
4095 (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
4096 C is the sign bit.
4097 (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
4098 when C2 is the sign bit.
4099 (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
4100 is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
4101 sign bit.
4102
ce58118c
KG
41032004-04-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4104
4105 * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
4106 TYPE_MODE.
4107
c29726e2
AP
41082004-04-09 Andrew Pinski <pinskia@physics.uc.edu>
4109
4110 * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
4111 of TREE_READONLY for types.
4112
750054a2
CT
41132004-04-09 Caroline Tice <ctice@apple.com>
4114
7c3ac422 4115 * basic-block.h (struct edge_def): Add new field, crossing_edge.
750054a2
CT
4116 (struct basic_block_def): Add new field, partition.
4117 (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
4118 definitions.
7c3ac422 4119 (partition_hot_cold_basic_blocks): Add extern function
750054a2 4120 declaration.
7c3ac422 4121 * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
750054a2
CT
4122 include statements.
4123 (N_ROUNDS): Increase the maximum number of rounds by 1.
4124 (branch_threshold): Add array value for new round.
4125 (exec_threshold): Add array value for new round.
4126 (push_to_next_round_p): New function.
4127 (add_unlikely_executed_notes): New function.
4128 (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
4129 (mark_bb_for_unlikely_executed_section): New function.
4130 (add_labels_and_missing_jumps): New function.
4131 (add_reg_crossing_jump_notes): New function.
4132 (fix_up_fall_thru_edges): New function.
4133 (find_jump_block): New function.
4134 (fix_crossing_conditional_branches): New function.
4135 (fix_crossing_unconditional_branches): New function.
4136 (fix_edges_for_rarely_executed_code): New function.
4137 (partition_hot_cold_basic_blocks): New function.
4138 (find_traces): Add an extra round for partitioning hot/cold
4139 basic blocks.
4140 (find_traces_1_round): Add a parameter. Modify to push all cold blocks,
4141 and only cold blocks, into the last (extra) round of collecting traces.
7c3ac422 4142 (better_edge_p): Add a parameter. Modify to favor non-crossing edges
750054a2 4143 over crossing edges.
7c3ac422 4144 (bb_to_key): Add code to correctly identify cold blocks when
750054a2
CT
4145 doing partitioning.
4146 (connect_traces): Modify to connect all the non-cold traces first, then
4147 go back and connect up all the cold traces.
4148 (reorder_basic_blocks): Add call to add_unlikely_executed_notes.
4149 * cfg.c (entry_exit_blocks): Add initialization for partition field in
4150 entry and exit blocks.
7c3ac422 4151 * cfgbuild.c (make_edges): Update current_function_has_computed_jump
750054a2
CT
4152 if we are doing hot/cold partitioning.
4153 * cfgcleanup.c (cfglayout.h): Add new include statement.
7c3ac422 4154 (try_simplify_condjump): Modify to not attempt on blocks with jumps
750054a2
CT
4155 that cross section boundaries.
4156 (try_forward_edges): Likewise.
4157 (merge_blocks_move_predecessor_nojumps): Likewise.
4158 (merge_blocks_move_successor_nojumps): Likewise.
4159 (merge_blocks_move): Likewise.
4160 (try_crossjump_to_edge): Modify to not attempt after we have done
4161 the block partitioning.
4162 (try_crossjump_bb): Modify to not attempt on blocks with jumps that
4163 cross section boundaries.
4164 (try_optimize_cfg): Likewise.
4165 * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
4166 jumps that cross section boundaries.
7c3ac422 4167 * cfglayout.c (flags.h): Add new include statement.
750054a2 4168 (update_unlikely_executed_notes): New function.
7c3ac422
ZW
4169 (fixup_reorder_chain): Add code so when a new jumping basic block is
4170 added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
750054a2
CT
4171 updated appropriately.
4172 (duplicate_insn_chain): Add code to duplicate the new NOTE insn
4173 introduced by this optimization.
7c3ac422
ZW
4174 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
4175 extern function declaration.
750054a2
CT
4176 * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
4177 list of notes that can be deleted.
4178 (create_basic_block_structure): Add initialization for partition field.
4179 (rtl_can_merge_blocks): Modify to test blocks for jumps that cross
4180 section boundaries.
4181 (try_redirect_by_replacing_jump): Modify to not attempt on jumps that
4182 cross section boundaries.
4183 (commit_one_edge_insertion): Add code so newly created basic block
7c3ac422 4184 ends up in correct (hot or cold) section. Modify to disallow
750054a2
CT
4185 insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
4186 (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
4187 crosses section boundaries.
4188 (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
4189 cross section boundaries.
4190 (force_nonfallthru_and_redirect): Modify to make sure new basic block
4191 ends up in correct section, with correct notes attached.
7c3ac422
ZW
4192 * common.opt (freorder-blocks-and-partition): Add new flag for this
4193 optimization.
4194 * dbxout.c (dbx_function_end): Add code to make sure scope labels at
4195 the end of functions are written into the correct (hot or cold)
4196 section.
750054a2
CT
4197 (dbx_source_file): Add code so writing debug file information
4198 doesn't incorrectly change sections.
7c3ac422 4199 * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
750054a2 4200 in partitioning hot/cold basic blocks into separate sections.
7c3ac422 4201 (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
750054a2
CT
4202 section partitioning.
4203 (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
4204 conditional branches can span all of memory.
4205 (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
4206 unconditional branches can span all of memory.
7c3ac422
ZW
4207 * final.c (scan_ahead_for_unlikely_executed_note): New function.
4208 (final_scan_insn): Add code to check for NOTE instruction indicating
4209 whether basic block belongs in hot or cold section, and to make sure
4210 the current basic block is being written to the appropriate section.
4211 Also added code to ensure that jump table basic blocks end up in the
4212 correct section.
4213 * flags.h (flag_reorder_blocks_and_partition): New flag.
750054a2
CT
4214 * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
4215 one of the branches has a jump that crosses between sections.
4216 (find_if_case_2): Likewise.
7c3ac422 4217 (ifcvt): Modify to not attempt to mark loop exit edges after
750054a2 4218 hot/cold partitioning has occurred.
7c3ac422
ZW
4219 * opts.c (decode_options): Code to handle new flag,
4220 flag_reorder_blocks_and_partition; also to turn it off if
750054a2 4221 flag_exceptions is on.
7c3ac422
ZW
4222 (common_handle_option): Code to handle new flag,
4223 flag_reorder_blocks_and_partition.
4224 * output.h (unlikely_text_section): New extern function declaration.
750054a2 4225 (in_unlikely_text_section): New extern function declaration.
7c3ac422
ZW
4226 * passes.c (rest_of_handle_stack_regs): Add
4227 flag_reorder_blocks_and_partition as an 'or' condition for calling
750054a2 4228 reorder_basic_blocks.
7c3ac422 4229 (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
750054a2
CT
4230 as an 'or' condition for calling reorder_basic_blocks.
4231 (rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
7c3ac422
ZW
4232 * print-rtl.c (print_rtx): Add code for handling new note,
4233 NOTE_INSN_UNLIKELY_EXECUTED_CODE
4234 * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
750054a2
CT
4235 (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
4236 cross between section boundaries.
7c3ac422
ZW
4237 * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
4238 indicating the basic block containing it belongs in the cold section.
750054a2
CT
4239 (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
4240 between hot and cold sections.
7c3ac422
ZW
4241 * toplev.c (flag_reorder_blocks_and_partition): Add code to
4242 initialize this flag, and to tie it to the command-line option
4243 freorder-blocks-and-partition.
4244 * varasm.c (cfglayout.h): Add new include statement.
4245 (unlikely_section_label_printed): New global variable, used for
4246 determining when to output section name labels for cold sections.
750054a2
CT
4247 (in_section): Add in_unlikely_executed_text to enum data structure.
4248 (text_section): Modify code to use SECTION_FORMAT_STRING and
4249 NORMAL_TEXT_SECTION_NAME macros.
4250 (unlikely_text_section): New function.
4251 (in_unlikely_text_section): New function.
7c3ac422
ZW
4252 (function_section): Add code to make sure beginning of function is
4253 written into correct section (hot or cold).
4254 (assemble_start_function): Add code to make sure stuff is written to
4255 the correct section.
4256 (assemble_zeros): Add in_unlikely_text_section as an 'or' condition
4257 to an if statement that was checking 'in_text_section'.
4258 (assemble_variable): Add 'in_unlikely_text_section' as an 'or'
4259 condition to an if statement that was checking 'in_text_section'.
4260 (default_section_type_flags_1): Add check: if in cold section
4261 flags = SECTION_CODE.
750054a2
CT
4262 * config/darwin.c (darwin_asm_named_section): Modify to use
4263 SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7c3ac422 4264 * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
750054a2
CT
4265 specifically for the i386.
4266 (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
7c3ac422 4267 * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
750054a2
CT
4268 text string to something more informative.
4269 (NORMAL_TEXT_SECTION_NAME): Add new definition.
4270 (SECTION_FORMAT_STRING): Add new definition.
7c3ac422
ZW
4271 * config/rs6000/rs6000.c (rs6000_assemble_integer): Add
4272 '!in_unlikely_text_section' as an 'and' condition to an if statement
4273 that was already checking '!in_text_section'.
4274 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
4275 UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
4276 sure these are properly defined for linux on ppc.
4277 * doc/invoke.texi (freorder-blocks-and-partition): Add documentation
4278 for this new flag.
750054a2
CT
4279 * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
4280 reg_note.
7c3ac422
ZW
4281 * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
4282 HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
750054a2
CT
4283 these new macros.
4284
88673361
RS
42852004-04-08 Roger Sayle <roger@eyesopen.com>
4286
4287 * function.c (gen_mem_addressof): When changing the RTX from a REG
4288 to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
4289
82a6a758
RS
42902004-04-08 Roger Sayle <roger@eyesopen.com>
4291
4292 PR target/14888
4293 * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
4294 truncxfdf2_noop): Provide dummy "fmov" implementations.
4295
febc5365
ILT
42962004-04-08 Ian Lance Taylor <ian@wasabisystems.com>
4297
2a782c52
ILT
4298 * gcc.c (default_compilers): Add missing initializers.
4299
febc5365
ILT
4300 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
4301 Return 1 if file was successfully mapped.
4302
f07e9f0f
GK
43032004-04-08 Geoffrey Keating <geoffk@apple.com>
4304
54e109ed
GK
4305 PR pch/13419
4306 PR pch/14137
4307 Radar #: 3315288
4308 * doc/invoke.texi (Precompiled Headers): Suggest -o
4309 to put an output file in a particular place. Be more detailed
4310 about which options affect PCH validity and which options
4311 might not work.
4312 * c-pch.c (pch_matching): New.
4313 (MATCH_SIZE): New.
4314 (struct c_pch_validity): New field 'match'.
4315 (pch_init): Handle pch_matching.
4316 (c_common_valid_pch): Check pch_matching.
4317
f07e9f0f
GK
4318 * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
4319
f7b6f250
MM
43202004-04-08 Mark Mitchell <mark@codesourcery.com>
4321
4322 * doc/invoke.texi (Precompiled Headers): Warn about known
4323 problems.
4324
4a77e08c
DS
43252004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
4326
4327 PR c++/14808
4328 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
4329 to 1 if ASM_OUTPUT_DEF is defined.
4330 * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
4331 * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
4332 Set to non-zero iff not a one_only decl.
4333
cc81dde8
PB
43342004-04-08 Paul Brook <paul@codesourcery.com>
4335
4336 * arm.h (CLASS_LIKELY_SPILLED_P): Define.
4337
d4453b7a
PB
43382004-04-08 Paul Brook <paul@codesourcery.com>
4339
4340 * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
4341 PROMOTE_FOR_CALL_ONLY.
4342 * config/arm/arm-protos.h (arm_function_value): Declare.
4343 * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
4344 (TARGET_PROMOTE_PROTOTYPES): Return false.
4345 (arm_function_value): New function.
4346 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
4347 (FUNCTION_VALUE): Call arm_function_value.
4348 * config/cris/cris.h (PROMOTE_MODE): Rename ...
4349 (PROMOTE_FUNCTION_MODE): ... to this.
4350 (PROMOTE_FOR_CALL_ONLY): Remove.
4351 * config/mmix/mmix.h: Likewise.
4352 * config/s390/s390.h: Likewise.
4353 * config/sparc/sparc.h: Likewise.
4354 * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
4355 * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
4356 (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
4357 (PROMOTE_FOR_CALL_ONLY): Remove.
4358
c00e272e
JS
43592004-04-08 Joel Sherrill <joel@oarcorp.com>
4360
4361 PR ada/14538
4362 * ada/5rosinte.adb: Remove fake mprotect() body.
4363 * ada/5rosinte.ads: Add SA_SIGINFO.
4364 * ada/5rtpopsp.adb: Rewrite to use new interface.
4365 * ada/init.c: Reorder so the simple single OS conditional __rtems__
4366 is tested before more complex ones which mix UNIX and embedded
4367 systems in the conditional.
4368
4afae4b9
JS
43692004-04-08 Joel Sherrill <joel@oarcorp.com>
4370
4371 PR ada/14665
4372 * ada/osint.adb (Find_Program_Name): Rework to properly handle
4373 filenames which end in .exe or have versioning suffixes like VMS.
4374
bfbdca0b
AP
43752004-04-08 Andrew Pinski <pinskia@physics.uc.edu>
4376
467f3af0 4377 PR target/10129
bfbdca0b
AP
4378 * config/darwin.c (darwin_encode_section_info): When the decl has
4379 a DECL_INITIAL, it is only defined also when it is not a common.
4380
df0785d6
KG
43812004-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4382
4383 * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
4384 (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
4385
2897f1d4
L
43862004-04-07 H.J. Lu <hongjiu.lu@intel.com>
4387
4388 * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
4389 global register variables.
4390
6ed6a1b9
JM
43912004-04-07 Joseph S. Myers <jsm@polyomino.org.uk>
4392
4393 * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
4394 rpc_xdr_lvalue_cast_b): New fixes.
4395 * fixinc/fixincl.x: Regenerate.
4396 * fixinc/tests/base/rpc/xdr.h: Add new tests.
4397
fc091c8e
DE
43982004-04-07 David Edelsohn <edelsohn@gnu.org>
4399
4400 * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
4401 to power4 and power5 entries.
4402
7876228d
GK
44032004-04-06 Geoffrey Keating <geoffk@apple.com>
4404
4405 * c-common.h (pending_lang_change): Mark for PCH.
4406
b21292d0
CT
44072004-04-07 Caroline Tice <ctice@apple.com>
4408
4409 * gcc.c (main): Move 'break' in main loops (on an error)
4410 to wait until error processing has occurred.
7c3ac422 4411
615be2cf
NN
44122004-04-06 Nathanael Nerode <neroden@gcc.gnu.org>
4413
4414 * config.gcc: Stop changing enable_threads midstream.
4415 Replace uses of enable_threads_flag with enable_threads.
4416 * configure.ac: Replace uses of enable_threads_flag with
4417 enable_threads. Improve autoconf quotation in one place.
4418 * configure: Regenerate.
4419
6c7cf1f0
UB
44202004-04-06 Uros Bizjak <uros@kss-loka.si>
4421
4422 * builtins.c: Implement support for sincos function.
4423 (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
4424 BUILT_IN_COS{,F,L}.
4425 (expand_builtin_mathfn_3): New function.
4426 (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
4427 BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
4428 flag_unsafe_math_optimization is set.
4429
4430 * optabs.h (enum optab_index): Add new OTI_sincos.
4431 (sincos_optab): Define corresponding macro.
4432
4433 * optabs.c (init_optabs): Initialize sincos_optab.
4434 (expand_twoval_unop): New function.
4435
4436 * genopinit.c (optabs): Implement sincos_optab using sincos?f3
4437 patterns.
4438
4439 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
4440 and UNSPEC_SINCOS_SIN.
4441
4442 * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
4443 sincosxf3): New patterns to implement sincos, sincosf and sincosl
4444 built-ins as inline x87 intrinsics. Define splits for
4445 sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
4446 cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
4447 sincos patterns.
4448 (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
4449 (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
4450
a072d43b
UB
4451 (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
4452 x87's fsincos insn.
6c7cf1f0 4453
23bd1514
DP
44542004-04-06 Devang Patel <dpatel@apple.com>
4455
4456 PR 14467
4457 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7c3ac422 4458
c5124497
JDA
44592004-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4460
4461 * doc/install.texi: Update HP-UX 11 installation procedure.
4462
485d61a7
PB
44632004-04-06 Paul Brook <paul@codesourcery.com>
4464
4465 * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
4466
13ecc9e0
KK
44672004-04-05 Kaz Kojima <kkojima@gcc.gnu.org>
4468
4469 * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
4470 when the TLS address is generated by a function call.
4471 * config/sh/sh.md (tls_global_dynamic): Use a call expression.
4472 (tls_local_dynamic): Likewise.
4473
e0e4ac7f
AP
44742004-04-05 Andrew Pinski <pinskia@physics.uc.edu>
4475
4476 * tree.c (reconstruct_complex_type): Use TYPE_READONLY
4477 and TYPE_VOLATILE.
4478
0855eab7
CT
44792004-04-05 Caroline Tice <ctice@apple.com>
4480
485d61a7 4481 * gcc.c (combine_flag): New global variable, for new driver option.
0855eab7
CT
4482 (struct compiler): Add two new fields, to be used when
4483 combining multiple input files in a single pass (IMA).
7c3ac422
ZW
4484 (default_compilers): Add values for the new fields to all
4485 compiler entries. Modify the "@c" compiler entry for doing IMA
0855eab7
CT
4486 properly with "-save-temps" and the "combine" flag.
4487 (option_map): Add new driver option, "--combine", to tell driver
4488 to pass multiple input files to compiler at one time.
4489 (have_o_argbuf_index): New global variable.
4490 (store_arg): Modify to assign value to have_o_argbuf_index.
4491 (struct infile): Add three new fields, to help with IMA.
4492 (display_help): Add help for new "combine" option.
4493 (process_command): Remove local variable have_o; add code to check
4494 for new "combine" option; remove assignment to combine_inputs.
4495 (do_spec_1): Modify to deal with IMA better.
4496 (main): Make variable 'lang_n_infiles' local to entire function
7c3ac422
ZW
4497 rather than to a single block. Use flag combine_flag to
4498 determine whether to do IMA or not; Modify loop initializing
0855eab7
CT
4499 infiles to deal properly with linker files.
4500 Add code for doing preprocessing in presence of
4501 IMA with "-save-temps" flag. Modify "main" loop to handle
4502 multiple input files, in multiple languages, with or without
4503 preprocessing, gracefully.
4504 * toplev.c (set_src_pwd): Modify to not complain if attempting to
4505 re-set it to same directory it's previously been set to (avoid
7c3ac422 4506 irritating, meaningless warning messages when doing IMA with
0855eab7
CT
4507 save-temps).
4508 * doc/invoke.texi: Add "-combine" to list of Overall Options;
4509 remove documentation about IMA that is no longer accurate; Add
4510 documentation explaining what "-combine" does.
4511 * ada/lang-specs.h: Add initialization values for new fields in
4512 "struct compiler".
4513 * cp/lang-specs.h: Likewise.
4514 * f/lang-specs.h: Likewise.
4515 * java/lang-specs.h: Likewise.
4516 * objc/lang-specs.h: Likewise.
4517 * treelang/lang-specs.h: Likewise.
4518
26be75db
DE
45192004-04-05 David Edelsohn
4520
4521 * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
4522 symbol handling.
4523
fda935a2 45242004-04-05 Jakub Jelinek <jakub@redhat.com>
26be75db 4525 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
fda935a2
JJ
4526
4527 PR optimization/13424 (hppa), bootstrap/14462, c/14828
4528 * pa.md: Use replace_equiv_address to retain the attributes of the
4529 memory operands used in the split and peephole2 patterns for optimizing
4530 the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
4531
4f976745
RK
45322004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4533
4534 * c-decl.c (build_compound_literal): Use TYPE_READONLY.
4535 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
4536 * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
4537 * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
4538 PARM_DECL.
4539 * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
4540 for a type.
4541 * print-tree.c (print_node): Properly handle side-effects, readonly,
4542 and constant flags.
4543 * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
4544 and TREE_CONSTANT if not a type.
4545 * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
4546 (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
4547 (NON_TYPE_CHECK): New macro.
4548 (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
4549
5ffc4730
EB
45502004-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
4551
4552 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
4553 to DWARF2_DEBUG unconditionally.
4554 (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
4555
c38f02df
ILT
45562004-04-04 Ian Lance Taylor <ian@wasabisystems.com>
4557 Nathanael Nerode <neroden@gcc.gnu.org>
4558
4559 PR target/14548
4560 * config.host: Set the shell variable host_can_use_collect2.
4561 Set it to yes by default, and to no for alpha*-dec-*vms*,
4562 i[34567]86-*-mingw32*, and powerpc-*-beos*.
4563 * configure.ac: Set and substitute the shell variable collect2.
4564 Give an error if use_collect2 is yes and host_can_use_collect2 is
4565 no.
4566 * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all
4567 uses. Initialize to @collect2@.
4568 (STAGESTUFF): Remove $(USE_COLLECT2).
4569 * config/alpha/x-vms (USE_COLLECT2): Don't set.
4570 * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
4571 * config/rs6000/t-beos (USE_COLLECT2): Likewise.
4572 * config/pa/t-pa64: Remove commented out USE_COLLECT2.
4573 * configure: Regenerate.
4574
9d317251
RS
45752004-04-04 Roger Sayle <roger@eyesopen.com>
4576
4577 * simplify-rtx.c (simplify_binary_operation): Constant fold
4578 DIV, MOD, UDIV and UMOD using div_and_round_double.
4579
64480988
MM
45802004-04-04 Mark Mitchell <mark@codesourcery.com>
4581
4582 PR c++/14804
4583 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
4584 RECORD_TYPEs.
4585
aaf3c6d9
MM
45862004-04-04 Mark Mitchell <mark@codesourcery.com>
4587
4588 * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
4589 documentation.
cd3f11a6 4590
d8b7ec41
RS
45912004-04-04 Roger Sayle <roger@eyesopen.com>
4592
4593 * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
4594 updating the REG_EQUAL note on an insn's libcall_insn.
4595
4012b7db
RS
45962004-04-04 Roger Sayle <roger@eyesopen.com>
4597
4598 * df.h: Tidy up whitespace in the definitions of the DF_ flags.
4599
2f63a457
RS
46002004-04-03 Roger Sayle <roger@eyesopen.com>
4601
4602 * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
4603 with reorder_operands_p.
4604
ef1140a9
JH
46052004-04-03 Jan Hubicka <jh@suse.cz>
4606
4607 * md.texi (vec_set, vec_extract, vec_init): Document.
4608
f736cb3e
GL
46092004-04-02 Gabor Loki <loki@inf.u-szeged.hu>
4610
4611 * opts.c (decode_options): Do function inlining with very small
4612 max-inline-insns-* parameters when optimizing for size.
4613
89c43c0a
VM
46142004-04-02 Vladimir Makarov <vmakarov@redhat.com>
4615
4616 * config/i386/i386.h (TARGET_NOCONA): New macro.
4617 (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
4618 (processor_type): Add PROCESSOR_NOCONA.
7c3ac422 4619
89c43c0a
VM
4620 * config/i386/i386.md (cpu): Add nocona to the attribute values.
4621
4622 * config/i386/i386.c (nocona_cost): New variable.
4623 (m_NOCONA): New macro.
4624 (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
4625 x86_branch_hints, x86_use_sahf, x86_single_stringop,
4626 x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
4627 x86_integer_DFmode_moves, x86_partial_reg_dependency,
4628 x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
4629 x86_decompose_lea, x86_arch_always_fancy_math_387,
4630 x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
4631 x86_ext_80387_constants, x86_four_jump_limit):
4632 (override_options): Add nocona_cost to processor_target_table.
4633 Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
4634 (incdec_operand): Prevent inc/dec generation for Nocona too.
4635 (ix86_issue_rate): Add PROCESSOR_NOCONA.
7c3ac422 4636
cd798543
AP
46372004-04-01 Andrew Pinski <pinskia@physics.uc.edu>
4638
4639 * rtlanal.c (find_reg_note): Manually
4640 unswitch the loop.
4641
a406f566
MM
46422004-04-01 Mark Mitchell <mark@codesourcery.com>
4643
4644 * genemit.c (gen_split): Change prototype of generated code.
4645 * genrecog.c (write_action): Adjust prototype for and calls to
4646 gen_split_*.
4647 * gensupport.c (struct queue_elem): Add split field.
4648 (queue_pattern): Return a value. Clear the split field.
4649 (process_rtx): Maintain an association between an insn and the
4650 split generated from it for a define_insn_and_split.
4651 (process_one_cond_exec): Generate a new split for a
4652 define_insn_and_split.
4653 * config/arm/arm-protos.h (arm_split_constant): Add insn
4654 parameter.
4655 (emit_constant_insn): New function.
4656 (arm_gen_constant): Use it.
4657 * config/arm/arm.md: Adjust calls to arm_split_constant.
4658
18c6ada9
JH
46592004-04-02 Jan Hubicka <jh@suse.cz>
4660
4661 * cgraph.c: Add overall comment.
4662 (cgraph_inline_hash): New global variable.
4663 (cgraph_create_node): Break out from ...
4664 (cgraph_node): ... here.
4665 (cgraph_edge): New function.
4666 (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
4667 (cgraph_remove_edge): Accept edge, intead of source and destination.
4668 (cgraph_redirect_edge_callee): New.
4669 (cgraph_remove_node): Update all new datastructures.
4670 (cgraph_record_call, cgraph_remove_call): Kill.
4671 (dump_cgraph_node): Break out from ... ; dump new datastructures.
4672 (dump_cgraph): ... here.
4673 (cgraph_function_possibly_inlined_p): Use new hashtable.
4674 (cgraph_clone_edge, cgraph_clone_node): New.
4675 * cgraph.h: Include hashtab.h
4676 (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
4677 fields, add inlined_to pointer.
4678 (cgraph_node): Add pointer to next_clone.
4679 (cgraph_remove_edge, cgraph_create_edge): Update prototype.
4680 (cgraph_remove_call, cgraph_record_call): Kill.
4681 (cgraph_inline_hash): Declare.
4682 (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
4683 cgraph_redirect_edge_callee): Declare.
4684 (cgraph_create_edges, cgraph_inline_p): Update prorotype.
4685 (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
4686 cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
4687 * cgraphunit.c: Add overall comment.
4688 (cgraph_optimize_function): Kill.
4689 (cgraph_assemble_pending_functions): Do not assemble inline clones.
4690 (cgraph_finalize_function): Update call of cgraph_remove_node
4691 (record_call_1): Record call sites.
4692 (cgraph_create_edges): Accept node instead of decl argument.
4693 (error_found): New static variable.
4694 (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
4695 (cgraph_analyze_function): Update for new datastructures.
4696 (cgraph_finalize_compilation_unit): Plug memory leak.
4697 (cgraph_optimize_function): Kill.
4698 (cgraph_expand_function): Do not use cgraph_optimize_function.
4699 (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
4700 cgraph_inlined_callees): Kill.
4701 (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
4702 clones.
4703 (estimate_growth): Simplify.
4704 (cgraph_clone_inlined_nodes): New function.
4705 (cgraph_mark_inline_edge): Re-implement.
4706 (cgraph_mark_inline): Likewise.
4707 (cgraph_check_inline_limits): Simplify.
4708 (cgraph_recursive_inlining_p): New.
4709 (update_callee_keys): Break out from ...
4710 (cgraph_decide_inlining_of_small_functions): ... here; simplify.
4711 (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
4712 Likewise.
4713 (cgraph_expand_all_functions): Remove inline clones from the ordered
4714 list.
4715 (cgraph_preserve_function_body_p): New predicate.
4716 (cgraph_optimize): Verify cgraph.
4717 * function.h (struct function): Add fields saved_tree/saved_args.
4718 * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
4719 * toplev.c (rest_of_compilation): Do not free cfun.
4720 * tree-inline.c: Include function.h
4721 (struct inline_data): Add saving_p field; replace decl/current_decl by
4722 node/current_node.
4723 (insert_decl_map): New function.
4724 (copy_body_r): Handle saving; update cgraph datastructure.
4725 (copy_body): Handle recursive inlining.
4726 (initialize_inlined_parameters): Likewise.
4727 (expand_call_inline): Propagate node attributes; update cgraph.
4728 (optimize_inline_calls): Verify that datastructure still match.
4729 (save_body): New function.
4730 * tree-inline.h (save_body): New.
4731 * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
4732 * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
4733 * langhooks.c (lang_hooks): Add update_decl_after_saving.
4734
717415ad
SB
47352004-04-01 Serge Belyshev <1319@bot.ru>
4736
7c3ac422
ZW
4737 PR target/14702
4738 * config/i386/i386.md: fix source operand constraints in
4739 mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
717415ad 4740
af5bdf6a
WH
47412004-04-01 Waldek Hebisch <hebisch@math.uni.wroc.pl>
4742
4743 * fold-const.c (folda): Preserve types of comparisons.
4744
54fdc910
RH
47452004-04-01 Richard Henderson <rth@redhat.com>
4746
4747 * toplev.c (backend_init): Move init_optimization_passes call ...
4748 (lang_dependent_init): ... here.
4749
765f1bf9
AM
47502004-04-01 Alan Modra <amodra@bigpond.net.au>
4751 Jakub Jelinek <jakub@redhat.com>
4752
4753 * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
4754 -lgcc --as-needed -lgcc_s --no-as-needed by default.
4755 * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
4756 * configure: Rebuilt.
4757 * config.in: Rebuilt.
4758 * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
4759 (stage2-start, stage3-start, stage4-start): Likewise.
4760 (stageprofile-start, stagefeedback-start): Likewise.
4761
45dcc026
JJ
47622004-04-01 Jakub Jelinek <jakub@redhat.com>
4763
4764 * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
4765 * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
4766 * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
4767 * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
4768 (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
4769 * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
4770 with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
4771 * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
4772 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
4773 * config/sparc/t-linux: Removed.
4774
0b612185
JJ
47752004-04-01 Jakub Jelinek <jakub@redhat.com>
4776
4777 PR c++/14755
4778 * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
4779 "bitfld++ == const" to "++bitfld == const + incr" transformations.
4780
a150de29
RK
47812004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4782
4783 * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
4784 * stor-layout.c (layout_decl): Likewise.
4785 * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
4786 * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
4787 * print-tree.c (print_node): Handle various used of unsigned_flag.
4788 * tree.def (BIT_FIELD_REF): Update comment.
4789 * tree.h (TREE_UNSIGNED): Deleted.
4790 (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
4791
8df83eae
RK
47922004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4793
4794 * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
4795 Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
4796 * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
4797 * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
4798 * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
4799 * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
4800 * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
4801 * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
4802 * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
4803 * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
4804 REAL_TYPE, not INTEGER_TYPE.
4805 (layout_type, case VECTOR_TYPE): Simplify code.
4806 * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
4807 * tree.h: Update comments.
4808 (STRIP_NOPS): Use TYPE_UNSIGNED.
4809 (TYPE_UNSIGNED): New macro.
4810 (TYPE_TRAP_SIGNED): Remove now redundant check.
4811 (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
4812
8465edcc
RK
48132004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4814
4815 * function.c (put_var_into_stack): Properly set orig_reg for indirect.
4816
48172004-03-31 Andrew Pinski <pinskia@physics.uc.edu>
efdc5d91
AP
4818
4819 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
4820 Add darwin-fpsave.asm, darwin-vecsave.asm,
4821 and darwin-world.asm.
4822 (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
4823 as the asm files contain altivec instructions.
4824 * config/rs6000/darwin-fpsave.asm: New file.
4825 * config/rs6000/darwin-vecsave.asm: New file.
4826 * config/rs6000/darwin-world.asm: New file.
4827
5fece182
ZW
48282004-03-31 Zack Weinberg <zack@codesourcery.com>
4829
4830 * gengtype-yacc.y (option, stringseq): Add missing
4831 terminating semicolon.
4832
b150f4f3
DE
48332004-03-30 David Edelsohn <edelsohn@gnu.org>
4834
4835 * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
4836 tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
4837 tls_dtprel_ha_32, tls_dtprel_ha_64,
4838 tls_dtprel_lo_32, tls_dtprel_lo_64,
4839 tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
4840 tls_tprel_ha_32, tls_tprel_ha_64,
4841 tls_tprel_lo_32, tls_tprel_lo_64,
4842 tls_got_tprel_32, tls_got_tprel_64,
4843 tls_tls_32, tls_tls_64): Replace register_operand with
4844 gpc_reg_operand.
4845
48462004-03-30 Mostafa Hagog <mustafa@il.ibm.com>
4847
4848 * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
4849 *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
4850 *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
4851 *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
4852 *ctrdi_internal6): Replace register_operand with
4853 nonimmediate_operand.
4854
0af5da7f
FJ
48552004-03-29 Fariborz Jahanian <fjahanian@apple.com>
4856
5fece182
ZW
4857 * fold-const.c (fold): Reassociate multiply expression
4858 with an adjacent non-multiply expression to use
4859 architecture's multiply-add instruction.
0af5da7f 4860
1431042e
ZW
48612004-03-30 Zack Weinberg <zack@codesourcery.com>
4862
4863 * gengtype.c (create_option): New function.
4864 * gengtype.h: Prototype it.
4865 * gengtype-yacc.y (stringseq): New rule.
4866 (option): Use create_option. Add new bare ID production. Use
4867 stringseq, not STRING directly.
4868
4869 * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
4870 * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
4871 * varray.h, config/alpha/alpha.c:
4872 Use new shorter form of GTY markers.
4873
4874 * doc/gty.texi: Rewrite.
4875
9ffab06b
AP
48762004-03-30 Andrew Pinski <pinskia@physics.uc.edu>
4877
4878 * config/darwin.c (machopic_function_base_name):
4879 Remove current_name and getting the name of the
4880 current function.
4881
a2246edc
NC
48822004-03-30 Nick Clifton <nickc@redhat.com>
4883
4884 * config/arm/arm.md (thumb_jump): Reduce the backward branch
4885 range, and increase the forward branch range, to allow for
4886 the fact that the PC will be off by 4.
4887
547799a7
AM
48882004-03-30 Alan Modra <amodra@bigpond.net.au>
4889
4890 * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
4891
452a7d36
HP
48922004-03-30 Hartmut Penner <hpenner@de.ibm.com>
4893
1431042e
ZW
4894 * config/rs6000/rs6000.c (output_vec_const_move):
4895 Find all cases of EASY_VECTOR_15_ADD_SELF.
4896 (easy_vector_constant_add_self): Accept
4897 all vector constant loadable by vsplt* and vadd*.
452a7d36
HP
4898 (easy_vector_same): Use easy_vector_splat_const.
4899 (easy_vector_const): Use easy_vector_splat_const.
1431042e 4900 (easy_vector_splat_const): New function.
452a7d36 4901 (gen_easy_vector_constant_add_self): New function.
1431042e 4902
452a7d36
HP
4903 * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
4904 New prototype.
4905
1431042e 4906 * config/rs6000/altivec.md (movv4si splitter): Change to
452a7d36
HP
4907 emit move insn with halfed vector constant.
4908 (*movv8hi splitter): Likewise.
4909 (*movv16qi splitter): Likewise.
1431042e 4910
708d2456
HP
49112004-03-30 Hartmut Penner <hpenner@de.ibm.com>
4912
1431042e
ZW
4913 PR 11591
4914 * config/rs6000/rs6000.c (rs6000_legitimate_address):
708d2456
HP
4915 Allow any offset to argument pointer in no-strict case.
4916
6868bb1c
JH
49172004-03-30 Jan Hubicka <jh@suse.cz>
4918
4919 * toplev.c (backend_init): Add missing call to inint_optimization_passes.
4920 * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
4921 dump file in non-unit-at-a-time mode.
4922
43537bf6
HPN
49232004-03-29 Hans-Peter Nilsson <hp@axis.com>
4924
4925 * config/cris/cris.h: Correct #ifdef to test for
4926 HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
4927 HAVE_AS_MUL_BUG_ABORT_OPTION.
4928
97955d55
RK
49292004-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4930
4931 * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
4932 the address inside the old RTL.
4933
18d5f982
ZW
49342004-03-28 Zack Weinberg <zack@codesourcery.com>
4935
4936 * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
4937 (struct c_binding, struct c_scope): Add chain_next
4938 attributes to GTY markers.
4939 (struct lang_identifier, struct lang_tree_node): Define
4940 here...
4941 * c-tree.h: ... not here. No longer need to declare struct
4942 c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
4943 * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
4944 to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
4945
4946 PR 14734, 11944
4947 * c-decl.c (get_parm_info): If error_mark_node is encountered
4948 in the bindings chain, unbind and discard it; don't abort.
4949
e20f3dd1 49502004-03-28 Olga Golovonevsky <olga@il.ibm.com>
18d5f982 4951 Dorit Naishlos <dorit@il.ibm.com>
e20f3dd1 4952
18d5f982
ZW
4953 * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
4954 one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
e20f3dd1 4955
d5ebbf58
SC
49562004-03-28 Stephane Carrez <stcarrez@nerim.fr>
4957
4958 * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
4959
4960 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
4961 (m68hc11_attribute_table): New attribute "page0" to mark a global
4962 variable as being allocated from within page0 section.
4963 (m68hc11_encode_label): New function.
4964 (m68hc11_strip_name_encoding): New function.
4965 (m68hc11_page0_symbol_p): New function.
4966 (m68hc11_indirect_p): Accept global variables marked in page0.
4967 (m68hc11_encode_section_info): Lookup "page0" attribute.
4968
4969 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
4970 represents access to page0 variables.
4971
4972 * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
4973 ("*logicalsi3_silshl16_zext"): Likewise.
4974 ("*ashldi3_const32"): Likewise.
4975 (peephole2 ashift): Likewise.
4976
5baeaac0
JM
49772004-03-28 Joseph S. Myers <jsm@polyomino.org.uk>
4978
4979 * c-tree.h (C_DECL_REGISTER): New.
4980 * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
4981 finish_decl, grokdeclarator, get_parm_info), c-typeck.c
4982 (build_array_ref, c_mark_addressable): Set and use it.
4983 * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
4984 Allow structures with volatile fields to be declared register.
4985 Don't check TREE_ADDRESSABLE before warning about taking address
4986 of register.
4987 * c-decl.c (finish_decl): Don't allow structures with volatile
4988 fields to be placed in named register.
4989 * doc/trouble.texi: Remove reference to structures with volatile
4990 fields in registers.
4991
84c1fa24
UW
49922004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
4993
4994 * function.c (thread_prologue_and_epilogue): Move
4995 NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
4996 before the epilogue.
4997
053ee101
UW
49982004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
4999
5000 * expr.c (store_constructor): Use gen_int_mode to correctly
5001 sign-extend CONST_INT value.
5002
ca4944e1
KG
50032004-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5004
5005 * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
5006 * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins.
5007 * doc/extend.texi: Likewise.
5008
eb1a2c88
DN
50092004-03-26 Diego Novillo <dnovillo@redhat.com>
5010
5011 * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
5012 with TYPE_ORIG_SIZE_TYPE.
5013
eabe2b29 50142004-03-25 Aldy Hernandez <aldyh@redhat.com>
18d5f982
ZW
5015
5016 PR 14219
5017 * c-typeck.c (build_binary_op): Do not allow comparisons of
5018 vectors.
eabe2b29 5019
9e1395f1
JM
50202004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
5021
5022 * config.gcc: Remove sparc-tti-*.
5023 * config/sparc/pbd.h: Delete.
5024
5025 * config/sparc/sol2.h: Remove note about Sun OS 4.x.
5026 * config/sparc/aout.h: Likewise.
5027
5028 * config/sparc/sparc.h: Remove if 0'd code.
5029 * config/sparc/sparc.md (call): Remove if 0'd code.
5030 (call_value): Likewise.
5031 (nonlocal_goto): Likewise.
5032 (unimp_insn): Delete.
5033
22e63bd3
RS
50342004-03-25 Roger Sayle <roger@eyesopen.com>
5035
5036 * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
5037 BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
5038
0066ef9c
RH
50392004-03-25 Richard Henderson <rth@redhat.com>
5040
5041 PR 11527
18d5f982
ZW
5042 * c-typeck.c (pop_init_level): Emit pending init elements earlier
5043 rather than later.
0066ef9c 5044
3a048383
KG
50452004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5046
5047 * builtins.c (fold_builtin): Fix error in last change.
5048
0d63bf21
RS
50492004-03-25 Richard Sandiford <rsandifo@redhat.com>
5050
5051 * config/mips/mips.h: Formatting fix.
5052
740e5b6f
KG
50532004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5054
5055 * builtins.def: Add ctype builtins.
5056 * doc/extend.texi: Likewise.
5057
e19f6bde
KG
50582004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5059
5060 * builtins.c (fold_builtin): Add new builtin optimizations for
5061 sqrt and/or cbrt.
5062 * fold-const.c (fold): Likewise.
5063
ec507f2d
DE
50642004-03-25 David Edelsohn <edelsohn@gnu.org>
5065
5066 * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
5067 (rs6000_sched_groups): New variable.
5068 (processor_target_table): Add power5.
5069 (rs6000_override_options): Set rs6000_sched_insert_nops,
5070 rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
5071 from rs6000_sched_groups.
5072 (output_cbranch): Use rs6000_always_hint.
5073 (rs6000_variable_issue): Use rs6000_sched_groups.
5074 (rs6000_adjust_cost): Add CPU_POWER5.
5075 (is_microcoded_insn): Use rs6000_sched_groups.
5076 (is_dispatch_slot_restricted): Use rs6000_sched_groups.
5077 Return 2 for POWER5 cracked instructions.
5078 (is_cracked_insn): Use rs6000_sched_groups.
5079 (is_branch_slot_insn): Use rs6000_sched_groups.
5080 (rs6000_issue_rate): Add CPU_POWER5.
5081 (rs6000_sched_finish): Use rs6000_sched_groups.
5082 (rs6000_rtx_costs): Add PROCESSOR_POWER5.
5083 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
5084 (DEFAULT_SCHED_COSTLY_DEP): Delete.
5085 (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
5086 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
5087 * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
5088 * config/rs6000/power5.md: New file.
5089 * doc/invoke.texi: Add power5 option.
5090
666c27b9
KH
50912004-03-25 Kazu Hirata <kazu@cs.umass.edu>
5092
5093 * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
5094 config/arm/arm.c, objc/objc-act.c: Fix comment typos.
5095 * doc/invoke.texi: Fix a typo.
5096
43a21dfc
KH
50972004-03-25 Kazu Hirata <kazu@cs.umass.edu>
5098
5099 PR optimization/9707.
5100 * stmt.c (emit_case_nodes): Emit equality comparisons instead
5101 of recursing if both children are single-valued cases with no
5102 children.
5103
9728c9d1
PB
51042004-03-25 Paul Brook <paul@codesourcery.com>
5105
5106 * config/arm/arm.c (vfp_print_multi): Remove.
5107 (arm_output_fldmx): New function.
5108 (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
5109 (arm_expand_prologue): Update to match.
5110 (arm_get_vfp_saved_size): New Function.
5111 (arm_get_frame_offsets): Use it.
5112 (arm_output_epilogue): Use new functions.
5113
bb1acb3e
RH
51142004-03-24 Richard Henderson <rth@redhat.com>
5115
5116 * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
5117 (reg_known_value, reg_known_value_size): Likewise; make static.
5118 (reg_known_equiv_p): Make static.
5119 (clear_reg_alias_info): Update for new indexing.
5120 (get_reg_known_value, set_reg_known_value): New.
5121 (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
5122 (canon_rtx): Use them.
5123 (init_alias_analysis): Likewise. Allocate reg_known_value with gc.
5124 Don't play queer offsetting games with reg_known_value and
5125 reg_known_equiv_p.
5126 (end_alias_analysis): Free reg_known_value with gc.
5127 * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
5128 * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
5129 (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
5130 functions instead.
5131
ef335eb8
KH
51322004-03-24 Kazu Hirata <kazu@cs.umass.edu>
5133
5134 * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
5135 config/i386/mmintrin.h: Update copyright.
5136
09a9c095
NN
51372004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
5138
5139 * configure.ac: Add --enable-werror-always (for top level bootstrap
5140 support).
5141 * configure: Regenerate.
5142
f75963f5
ZL
51432004-03-24 Ziemowit Laski <zlaski@apple.com>
5144
5145 * objc/objc-act.c (objc_comptypes): Treat comparisons
5146 between 'Class' and '<class> *' as explicitly invalid.
5147
8d3b3fb7
DE
51482004-03-24 David Edelsohn <edelsohn@gnu.org>
5149
827c06b6 5150 * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8d3b3fb7
DE
5151 (-fprofile-values): Add enabled with profile-{generate,use}.
5152 (-fvpt): Same.
5153 (-ftracer): Add enabled with profile-use.
5154 (-funit-at-a-time): Add enabled at -O2,-O3.
5155 (-funroll-loops): Add enabled with profile-use.
5156 (-funswitch-loops): Add enabled with profile-use. Remove duplicates.
5157 (max-gcse-passes): Mention default.
5158 (max-cse-path-length): Mention default.
5159
643d3bd2
NN
51602004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
5161
5162 * Makefile.in (STRICT2_WARN): Reorder.
5163 * configure.ac: Check for -Wold-style-definition, and use it
5164 in strict1_warn if it's available.
5165 * configure: Regnerate.
5166
5848830f
PB
51672004-03-24 Paul Brook <paul@nowt.org>
5168
5169 * config.gcc <arm>: Add --with-abi=
5170 * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
5171 thumb_far_jump_used): Remove prototypes.
5172 (arm_needs_doubleword_align): Add prototype.
5173 (thumb_compute_initial_elimination_offset): Ditto.
5174 * config/arm/arm.c (arm_get_frame_offsets): New function.
5175 (use_return_insn, output_return_instruction, arm_output_epilogue,
5176 arm_output_function_epilogue, arm_compute_initial_elimination_offset,
5177 arm_expand_prologue, thumb_expand_epilogue): Use it.
5178 (arm_abi, target_abi_name, all_arm_abis): New variables.
5179 (arm_override_options): Set them. Set structure padding for AAPCS.
5180 (arm_return_in_memory): Update ABI check.
5181 (arm_init_cumulative_args): Initialize can_split.
5182 (arm_needs_doubleword_align): New function.
5183 (arm_function_arg): Don't split args after pushing to stack. Handle
5184 doubleword/even reg alignment.
5185 (arm_va_arg): Handle all doubleword aligned args.
5186 (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
5187 on ABI, not CPU.
5188 (arm_compute_save_reg0_reg12_mask): Fix comment.
5189 (thumb_get_frame_size, thumb_get_frame_size): Remove.
5190 (thumb_jump_far_used_p): Remove superfluous argument. Return save
5191 value for alignment.
5192 (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
5193 to match.
5194 (thumb_compute_initial_elimination_offset): New function.
5195 (thumb_expand_prologue): Use arm_get_frame_offsets. Remove
5196 unneccessary rounding.
5197 * config/arm/arm.h (target_abi_name): Declare.
5198 (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
5199 arm_abi_type, ARM_DEFAULT_ABI): Define.
5200 (ARM_FLAG_ATPCS): Remove.
5201 (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
5202 (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
5203 (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
5204 TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
5205 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
5206 Contitionalize on ABI, not CPU.
5207 (struct arm_stack_offsets): Define.
5208 (struct machine_function): Add stack_offsets. Remove frame_size.
5209 (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
5210 pushed.
5211 (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
5212 doubleword alignment.
5213 (THUMB_INITIAL_ELIMINATION_OFFSET,
5214 ARM_INITIAL_ELIMINATION_OFFSET): Remove.
5215 (INITIAL_ELIMINATION_OFFSET): Call functions directly.
5216 * config/arm/arm.md (align_8): Enable for all targets.
5217 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
5218 (ARM_DEFAULT_ABI): Define.
5219 * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
5220 -mstructure-size-boundary.
5221
b5472e1d
NN
52222004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
5223
5224 * configure.ac: Check for -Wno-variadic-macros; don't use
5225 -pedantic (in stage 1 or a simple 'make all') unless it's available,
5226 and if it's available, use it. Also, clean up check for
5227 -Wno-long-long.
5228 * configure: Regenerate.
5229
c1077e1e
RS
52302004-03-24 Richard Sandiford <rsandifo@redhat.com>
5231
5232 * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
5233 * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
5234 (MULTILIB_DEFAULTS): Use it.
5235 (MIPS_CPU_STRING_DEFAULT): Remove.
5236 (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
5237 (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
5238 EABI64 -mlong32 the default ABI. Enforce the default architecture.
5239 * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
398a9492 5240 march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
c1077e1e
RS
5241 (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
5242 (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
5243 accordingly.
5244
c235ddf2
DD
52452004-03-24 DJ Delorie <dj@redhat.com>
5246 Richard Sandiford <rsandifo@redhat.com>
5247
5248 * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
5249 (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
5250 (ASM_SPEC): Pass down -mfix-vr4122-bugs.
5251 * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
5252 in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
5253 (mips_init_libfuncs): Use special functions for divsi3 and modsi3
5254 if TARGET_FIX_VR4122.
5255 * config/mips/mips.md (define_attr length): Account for nops inserted
5256 after macc and dmult when using -mfix-vr4122-bugs.
5257 (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
5258 * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
5259 LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S.
5260 * config/mips/vr4122-div.S: New file.
5261 * doc/invoke.texi: Document -mfix-vr4122-bugs.
5262
cf768d70
RS
52632004-03-24 Richard Sandiford <rsandifo@redhat.com>
5264
5265 * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
5266 (TARGET_MIPS4130): New macro.
5267 (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
5268 * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
5269 (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
5270 with PROCESSOR_R4130.
5271 * config/mips/mips.md (define_attr cpu): Add r4130.
5272 * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
5273
5ef1a99d
MR
52742004-03-24 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
5275 Richard Sandiford <rsandifo@redhat.com>
5276
5277 * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
5278
ae87624f
AO
52792004-03-24 Alexandre Oliva <aoliva@redhat.com>
5280
5281 PR preprocessor/14438
5282 * cpplib.c (do_pragma): Remove line_change call after pragma
5283 handler.
5284
d63851eb
ILT
52852004-03-23 Ian Lance Taylor <ian@wasabisystems.com>
5286
5287 * doc/extend.texi (ARM Built-in Functions): Replace with correct
5288 declarations.
5289
0c5faf29
RS
52902004-03-23 Roger Sayle <roger@eyesopen.com>
5291
5292 * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
5293 if flag_unsafe_math_optimizations.
5294 * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
5295 and TARGET_80387 expand using truncdfsf2_noop pattern.
5296 (truncxfsf2): Likewise using truncxfsf2_noop.
5297 (truncxfdf2): Likewise using truncxfdf2_noop.
5298 (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
5299
f18eca82
ZL
53002004-03-23 Ziemowit Laski <zlaski@apple.com>
5301
5302 * hooks.c (hook_constcharptr_tree_null): New hook.
5303 * hooks.h (hook_constcharptr_tree_null): New prototype.
5304 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
5305 * target.h (mangle_fundamental_type): New target hook.
5306 * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
5307 target hook at rs6000_mangle_fundamental_type.
5308 (rs6000_mangle_fundamental_type): New function.
5309 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
5310
f75fbaf7
ZW
53112004-03-23 Zack Weinberg <zack@codesourcery.com>
5312
1b1d85bd 5313 PR 12267, 12391, 12560, 13129, 14114, 14133
f75fbaf7
ZW
5314 * c-tree.h: Forward declare struct c_binding. Declare
5315 c_override_bindings_to_false. Update prototypes.
5316 (struct lang_identifier): Update comments. Change fields to be
5317 struct c_binding *.
5318 (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
5319 (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
5320 (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
5321 (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
5322 * c-common.h: Update prototypes.
5323 * c-decl.c (struct c_scope): Update commentary. Remove names,
5324 names_last, parms, parms_last, tags, and shadowed fields. Add
5325 bindings and depth fields.
5326 (scope_freelist): Move to more appropriate location.
5327 (c_print_identifier): Update for changes to struct lang_identifier.
5328 (objc_mark_locals_volatile): Update for new bindings structures.
5329 (global_bindings_p): Honor c_override_global_bindings_to_false.
5330 (pushlevel): Rename to push_scope; take no arguments; use the
5331 scope_freelist; initialize scope->depth and check for overflow.
5332 (poplevel): Rename to pop_scope; totally rewritten for new bindings
5333 structures.
5334 (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
5335 C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
5336 Improve some commentary. Adjust handling of forward parm decls.
5337 (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
5338 Preserve C_DECL_IN_EXTERNAL_SCOPE.
5339 (warn_if_shadowing): Correct indentation. Improve diagnostics.
5340 (pushdecl): Remove unnecessary assertion. Short-circuit anonymous
5341 decls. Rewrite for new bindings structures. Improve commentary.
5342 Eliminate the copy_node call.
5343 (implicit_decl_warning): Use the "diag" idiom (as seen in
5344 locate_old_decl) to reduce code duplication; call locate_old_decl
5345 if appropriate. Relocate to remove need for forward declaration.
5346 (implicitly_declare): Adjust for new bindings structures. Kludge
5347 around Objective-C not-really-builtin functions.
5348 (undeclared_variable): Improve diagnostics. If current_function_decl
5349 is nonnull but current_function_scope is null, use current_scope.
5350 Use bind.
5351 (lookup_tag): Adjust for new bindings structures. Kludge around
5352 Objective-C's tag declarations that wind up in the external scope.
5353 (lookup_name): Adjust for new bindings structures. Kludge around
5354 c-common.c's pseudo-typedefs that wind up in the external scope.
5355 (lookup_name_current_level): Rename lookup_name_in_scope; take a
5356 second argument indicating the scope to examine; rewrite for
5357 new bindings structures.
5358 (c_init_decl_processing): Adjust for renamed functions. Do not
5359 initialize current_file_decl, first_builtin_decl, last_builtin_decl.
5360 First scope pushed is the external scope, not the global scope.
5361 (builtin_function): Use bind, not pushdecl. Adjust other bits
5362 for new data structures. Keep track of builtins that should be
5363 made visible automatically.
5364 (start_decl): Adjust diagnostics. Remove unnecessary call to
5365 expand_decl.
5366 (grokparms): Return 0 if arg_types is error_mark_node.
5367 (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
5368 reversed sense. Rewrite for new bindings structures. Do not
5369 leave any decls in the scope, to prevent pop_scope from doing
5370 contradictory things with them.
5371 (finish_struct, finish_enum): Remove redundant diagnostics.
5372 (build_enumerator): Don't cascade diagnostics for error_mark_node.
5373 Mark location where -pedantic changes the meaning of the program.
5374 (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
5375 parameter decls into the function's scope structure using bind.
5376 Warn here about function definitions in the wrong style.
5377 Adjust diagnostics.
5378 (store_parm_decls): Correct the determination of whether a
5379 function was defined with a prototype.
5380 (c_write_global_declarations): Operate on all file decls and on
5381 the external scope. Split body of the loop to...
5382 (c_write_global_declarations_1): ... this new function, to avoid
5383 code duplication.
5384 (truly_local_externals, first_builtin_decl, last_builtin_decl)
5385 (make_scope, pop_scope, in_parm_level_p, set_block)
5386 (any_external_decl, record_external_decl, bind_label, getdecls)
5387 (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
5388 (c_reset_state): Delete.
5389 (visible_builtins, c_override_global_bindings_to_false)
5390 (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
5391 (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
5392 (external_scope, binding_freelist, bind, free_binding_and_advance)
5393 (push_file_scope, pop_file_scope): New.
5394 (pushtag, pushdecl_top_level, lookup_label, declare_label)
5395 (define_label, c_make_fname_decl, finish_decl)
5396 (mark_forward_parm_decls, build_compound_literal)
5397 (grokdeclarator, start_function, check_for_loop_decls)
5398 (identifier_global_value, record_builtin_type): Minor adjustments
5399 for new bindings structures. Improve diagnostics and commentary.
5400 * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
5401 pushlevel/poplevel respectively.
5402 (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
5403 * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
5404 Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
5405 correct loop over multiple translation units; call fatal_error if
5406 requested to compile more than one file at once. (This disables
5407 IMA temporarily - an up-front error being preferable to a crash.)
5408 * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
5409 (all actions): Adjust calls to pushlevel/poplevel.
5410 (parsing_iso_function_signature): Delete.
5411 (extdef_1): Fold into extdef.
5412 (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
5413 warn here about function definitions in the wrong style.
5414 (after_tyle_declarator, parm_declarator_starttypename)
5415 (parm_declarator_nostarttypename, notype_declarator): Remove
5416 commented-out productions.
5417 (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
5418 an empty TREE_LIST node. Adjust calls to get_parm_info.
5419 (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
5420 to suppress -Wold-style-definition after this error.
5421 (c_parse_file): Don't clear the binding stack or call
5422 finish_fname_decls here. Correct comment.
5423 * c-typeck.c (same_translation_unit_p): Export.
5424 (common_type): Use c_override_global_bindings_to_false, not
5425 pushlevel/poplevel/declare_parm_level.
5426 * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
5427 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
5428 and LANG_HOOKS_GETDECLS with do-nothing stubs.
5429 * objc/objc-lang.c: Likewise.
5430 * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
5431 get_parm_info.
5432 (OBJC_VOID_AT_END): Delete; replace all uses
5433 with void_list_node.
5434 (generate_forward_declaration_to_string_table): Delete.
5435 * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
5436
5437 * coverage.c (create_coverage): Don't pushdecl anything.
5438 * langhooks.c (lhd_clear_binding_stack): Call
5439 lang_hooks.decls.poplevel, not poplevel.
5440 * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
5441 circular list rather than going into an infinite loop.
5442
0c0ab0f1
OH
54432004-03-23 Olivier Hainque <hainque@act-europe.fr>
5444
f75fbaf7
ZW
5445 * optabs.c (expand_binop): When synthesizing double word rotates
5446 from single word shifts, use a new register target if the provided
5447 target is not a REG already.
0c0ab0f1 5448
22421b79
RK
54492004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5450
5451 * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
5452 * c-common.c (handle_mode_attribute): Add extra arg to
5453 build_pointer_type_for_mode and build_reference_type_for_mode.
5454 * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
5455 for INTEGER_CST.
5456 * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
5457 Chain pointers via TYPE_NEXT_PTR_TO.
5458 (build_reference_type_for_mode): Similarly.
5459 (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
5460 and build_reference_type_for_mode.
5461 (tree_check4_failed): New function.
5462 * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
5463 (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
5464 (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
5465 Add check.
5466
b1500d00
RS
54672004-03-23 Roger Sayle <roger@eyesopen.com>
5468
5469 * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
5470 A is nonnegative or B is nonnegative. Similarly A|B is nonnegative
5471 when both A and B are nonnegative.
5472 (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
5473 nonzero.
5474
73b91357
KH
54752004-03-23 Kazu Hirata <kazu@cs.umass.edu>
5476
5477 * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
5478 VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
5479
bb3a37ac
RS
54802004-03-23 Kazu Hirata <kazu@cs.umass.edu>
5481
5482 PR optimization/14669
5483 * fold-const.c (fold): Only unwiden integer comparisons for equality
5484 and inequality operators, or when the signedness doesn't change.
5485
f2c79f80
JJ
54862004-03-23 Jakub Jelinek <jakub@redhat.com>
5487
5488 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
5489 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
5490 * config/sparc/t-linux: New file.
5491
1707bafa
RS
54922004-03-23 Richard Sandiford <rsandifo@redhat.com>
5493
5494 * gcse.c (can_assign_to_reg_p): New function, split out from...
5495 (want_to_gcse_p): ...here.
5496 (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
5497 the rhs of a store.
5498
63185fab
DN
54992004-03-22 Diego Novillo <dnovillo@redhat.com>
5500
5501 * c-typeck.c (same_translation_unit_p): Fix pasto.
5502
f72c6b56
DE
55032004-03-22 David Edelsohn <edelsohn@gnu.org>
5504
5505 * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
5506 (PARAM_MAX_SCHED_REGION_INSNS): New.
5507 * sched-rgn.c: Include params.h
5508 (MAX_RGN_BLOCKS): Delete.
5509 (MAX_RGN_INSNS): Delete.
5510 (too_large): Return bool. Convert to PARAM_VALUE.
0483ab6e 5511 * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
f72c6b56
DE
5512 * doc/invoke.texi (param): Document max-sched-region-blocks and
5513 max-sched-region-insns.
5514
d6672e91
JB
55152004-03-22 Joel Brobecker <brobecker@gnat.com>
5516
5517 * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
5518 for base types.
5519
886de2d4
JB
55202004-03-22 Joel Brobecker <brobecker@gnat.com>
5521
5522 * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
5523 change.
5524
d915eec0
JJ
55252004-03-22 Jakub Jelinek <jakub@redhat.com>
5526
5527 PR c/14069
5528 * c-decl.c (finish_struct): Change type of incorrect flexible array
5529 field into error_mark_node.
5530
aa6d25c9
AP
55312004-03-22 Andrew Pinski <pinskia@physics.uc.edu>
5532
19a03303 5533 PR target/14580
aa6d25c9
AP
5534 * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
5535 who are not local for Darwin PIC.
5536
ead61c1d
UW
55372004-03-22 Ulrich Weigand <uweigand@de.ibm.com>
5538
5539 * regrename.c (regrename_optimize): Set regs_ever_live for all
5540 registers introduced as replacement.
5541
1bbd65cd
EB
55422004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
5543
5544 PR middle-end/14470
5545 * expr.c (mark_queue): New function.
5546 (emit_insns_enqueued_after_mark): New function replacing
5547 emit_queue. Clear the body of emitted queued insns.
5548 (emit_queue): Call emit_insns_enqueued_after_mark.
5549 (store_expr): Mark the increment queue on entry. Emit
5550 only the incrementations queued when expanding the source.
5551
6dd297da
NN
55522004-03-22 Nathanael Nerode <neroden@gcc.gnu.org>
5553
5554 * configure.ac: Allow --disable-coverage-flags (for the future benefit
5555 of top level bootstrap, and consistency). Reindent.
5556 * configure: Regenerate.
5557
400e39e3
KH
55582004-03-21 Kazu Hirata <kazu@cs.umass.edu>
5559
5560 * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
5561 ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
5562 unnecessary casts.
5563
bd8ec6a7
DS
55642004-03-22 Danny Smith <dannysmith@users.sourceforge.net>
5565
5566 PR target/14291
5567 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
5568 __MINGW32__.
5569
bd446804
UW
55702004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
5571
5572 * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
5573 to nonimmediate_operand.
5574 ("*doloop_di"): Likewise.
5575
1e92bbb9
AO
55762004-03-21 Alexandre Oliva <aoliva@redhat.com>
5577
5578 * real.h (struct real_value): Use the same type for all
5579 bitfields. Rename exp to uexp.
5580 (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
5581 Adjust all uses of exp...
5582 * builtins.c: ... here, ...
5583 * emit-rtl.c: ... here, and ...
5584 * real.c: ... and here.
5585
b9b44fb9
GDR
55862004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
5587
5588 * pretty-print.c (pp_base_maybe_space): New function.
5589 * pretty-print.h (pp_base_maybe_space): Declare.
5590 (pp_maybe_space): New macro.
5591
1c7b1b7e
UW
55922004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
5593
5594 * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
5595
f258e38b
UW
55962004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
5597
5598 * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
5599 of using register multiplication cost.
5600 (expand_mult): Adapt choose_mult_variant call.
5601 (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
5602 of MODE; pass appropriate cost bound. Adjust result when
5603 performing signed multiplication by a negative constant.
5604 Don't use intermediate modes larger than word_mode.
5605
6fce44af
RK
56062004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5607
5608 * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
5609 * emit-rtl.c (component_ref_for_mem_expr): Likewise.
5610 (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
5611 * explow.c (expr_size): Likewise.
5612 * expr.h (placeholder_list, find_placeholder): Deleted.
5613 * expr.c (store_constructor): Likewise.
5614 (get_inner_reference): Likewise. Also don't call find_placeholder.
5615 (placeholder_list, find_placeholder): Deleted.
5616 (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
5617 (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
5618 (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
5619 * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
5620 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
5621 Likewise.
5622 * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
5623 (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
5624 * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
5625 (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
5626 Clean up by using first_rtl_op.
5627 (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
5628 (substitute_placeholder_in_expr): New function.
5629 * tree.def (WITH_RECORD_EXPR): Deleted.
5630 * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
5631 (substitute_placeholder_in_expr): New.
5632
0f005f33
AP
56332004-03-21 Andrew Pinski <pinskia@gcc.gnu.org>
5634
5635 * dojump.c (prefer_and_bit_test): Fix which part of
5636 the and_test is replaced.
5637
f80352b8
JM
56382004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
5639
5640 * frontends.texi: Add missing line.
5641
6ad79f18 56422004-03-21 Zack Weinberg <zack@codesourcery.com>
f75fbaf7
ZW
5643 Chris Devers <cdevers@pobox.com>
5644 Joseph S. Myers <jsm@polyomino.org.uk>
6ad79f18
JM
5645
5646 * doc/frontends.texi: Rewrite.
5647 * doc/gcc.texi: Update last modification date.
5648
eabd7d31
JZ
56492004-03-21 Josef Zlomek <zlomekj@suse.cz>
5650
5651 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
5652 message before redirecting the edge.
5653
f8ad8d7c
ZD
56542004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5655
5656 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
5657 flag.
5658 * explow.c (force_not_mem): Set REG_POINTER flag according to
5659 MEM_POINTER one.
5660 * rtl.h (MEM_POINTER): New macro.
5661 (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
5662 for MEM_POINTER.
5663
8cce3d04
RS
56642004-03-20 Roger Sayle <roger@eyesopen.com>
5665
5666 PR target/13889
5667 * cse.c (fold_rtx): Avoid substituting constants into unary
687c3ea5 5668 conversion operations.
8cce3d04 5669
05fe5c67
KH
56702004-03-20 Kazu Hirata <kazu@cs.umass.edu>
5671
5672 * fold-const.c (fold): Replace "expr" with "t".
5673
dea984dc
ILT
56742004-03-20 Ian Lance Taylor <ian@wasabisystems.com>
5675
5676 PR c/12373
5677 * c-typeck.c (tagged_types_tu_compatible_p): Don't use
5678 DECL_ORIGINAL_TYPE if there isn't one.
5679
079f946d
KH
56802004-03-20 Kazu Hirata <kazu@cs.umass.edu>
5681
5682 * fold-const.c (fold): Replace "final_type" with "type".
5683 Remove variable "final_type".
5684
8d3784af
KH
56852004-03-20 Kazu Hirata <kazu@cs.umass.edu>
5686
5687 * fold-const.c (fold): Constify "type".
5688 Replace "TREE_TYPE (t)" with "type".
5689
245f1bfa
KH
56902004-03-20 Kazu Hirata <kazu@cs.umass.edu>
5691
5692 * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
5693 dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
5694 via (*targetm.foo) () with targetm.foo ().
5695
802f6d4b
JM
56962004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
5697
5698 PR other/14630
5699 * doc/install.texi: Add info directory category and entry.
5700
ea993805
KH
57012004-03-20 Kazu Hirata <kazu@cs.umass.edu>
5702
5703 * fold-const.c (fold): Replace "t" with "tem" where it is used
5704 as a temporary variable. Remove "orig_t" and all of its uses.
5705
8e7b3a43
KH
57062004-03-20 Kazu Hirata <kazu@cs.umass.edu>
5707
5708 * fold-const.c (fold): Remove variable "invert".
5709 Move the handling of relational expressions that can be folded
5710 to a constant ...
5711 (fold_relational_const): ... here.
5712 (tree_expr_nonzero_p): New.
5713
b1c2d04a
JM
57142004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
5715
5716 PR c/14635
5717 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
5718 DEF_GCC_BUILTIN.
5719
dbf833ee
RS
57202004-03-20 Richard Sandiford <rsandifo@redhat.com>
5721
5722 * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
5723 (GTFILES): Add $(srcdir)/dojump.h.
5724 (gt-dojump.h): New dependency.
5725 * dojump.c (and_reg, and_test, shift_test): New static variables.
5726 (prefer_and_bit_test): New function.
5727 (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
5728
d1a6adeb
KH
57292004-03-20 Kazu Hirata <kazu@cs.umass.edu>
5730
5731 * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
5732 expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
5733 reorg.c, tree.h: Fix comment typos.
5734
5fd9b178
KH
57352004-03-19 Kazu Hirata <kazu@cs.umass.edu>
5736
5737 * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
5738 c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
5739 cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
5740 haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
5741 sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
5742 vmsdbgout.c: Replace calls via (*targetm.foo) () with
5743 targetm.foo ().
5744
86e7df90
ZL
57452004-03-19 Ziemowit Laski <zlaski@apple.com>
5746
5747 * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
5748 vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
5749 always_inline attribute.
5750 * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
5751 Treat expansion as completed even if literal argument is
5752 invalid (so that other expansions are not tried in vain).
5753
147d77b6
KH
57542004-03-19 Kazu Hirata <kazu@cs.umass.edu>
5755
5756 * loop-doloop.c (add_test): Replace GEN_INT (0) with
5757 const0_rtx.
5758
73c4ab99
KH
57592004-03-19 Kazu Hirata <kazu@cs.umass.edu>
5760
5761 * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
5762 ...
5763 (fold_abs_const): ... here.
5764
a6002f8d
RK
57652004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5766
5767 * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
5768
829bde68
DC
57692004-03-19 Denis Chertykov <denisc@overta.ru>
5770
d0aa5f10 5771 PR target/11520
829bde68
DC
5772 * config/avr/avr.md ("call_insn"): Handle explicit integer
5773 specially.
5774 (call_value_insn): Likewise.
5775
9d2a492d
RK
57762004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5777
5778 * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
5779
33d13fac
KH
57802004-03-19 Kazu Hirata <kazu@cs.umass.edu>
5781
5782 * fold-const.c (negate_expr): Move the handling of constants
5783 ...
5784 (fold_negate_const): ... here.
5785
7548281d
RK
57862004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5787
5788 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
5789 * langhooks.h (struct lang_hooks_for_types): New field hash_types.
5790 * tree.c (debug_no_type_hash): Deleted.
5791 (type_hash_canon): Abort if passed a variant.
5792 Check lang_hooks.types.hash_types.
5793 (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
5794 (build_array_type): Remove unnecessary allocation of pointer type.
5795 (build_complex_type): Properly qualify resulting type.
5796
7e463bda
PB
57972004-03-19 Paolo Bonzini <bonzini@gnu.org>
5798
5799 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
5800
8efc8980
RS
58012004-03-19 Richard Sandiford <rsandifo@redhat.com>
5802
5803 * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
5804 (expand_mult): ...here.
5805 (extract_high_half): New, split out from expand_mult_highpart.
5806 (expand_highpart_optab): Likewise. Don't clobber target prematurely.
5807 (expand_highpart): Evaluate the cost of a shift/add sequence,
5808 then see if any of the specialized optabs are cheaper.
5809
ff3fcb8a
ILT
58102004-03-18 Ian Lance Taylor <ian@wasabisystems.com>
5811
5812 * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
5813
1fb7e3af
KG
58142004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5815
5816 * convert.c (convert_to_real): Add more math builtins.
5817
b3810360
KG
58182004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5819
5820 * convert.c (convert_to_real): Reformat using switch stmt.
5821
9d363a56
MM
58222004-03-18 Mark Mitchell <mark@codesourcery.com>
5823
5824 * c-common.c (pointer_int_sum): Do not complain about using
5825 pointers to pointers-to-members.
5826
c3690d79
KH
58272004-03-18 Kazu Hirata <kazu@cs.umass.edu>
5828
5829 * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
5830 have moved to the target hooks structure".
5831
c3840092
JW
58322004-03-18 James E Wilson <wilson@specifixinc.com>
5833
5834 * config/mips/mips.md (type): Split move into arith and fmove. Split
5835 hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses.
5836 * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
5837 Likewise.
5838 * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
5839 Likewise.
5840 * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
5841 rm7_fp_quick): Likewise.
5842 * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
5843 rm9k_fquick): Likewise.
5844 * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
5845 Likewise.
5846 (ir_sr70_icmp): Delete.
5847
eb34af89 58482004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
f75fbaf7 5849
eb34af89
RK
5850 * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
5851 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
5852 (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
5853 (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
5854 (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
5855 Protect with proper check.
5856 (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
5857 (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
5858 * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
5859 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
5860 * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
5861 * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
5862 not TYPE_FIELDS.
d3b6a5fb 5863 * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
eb34af89 5864
2171cb85
MH
58652004-03-18 Mostafa Hagog <mustafa@il.ibm.com>
5866
5867 * gcse.c (eliminate_partially_redundant_loads): Reject change if
5868 dest is set between beginning and current insn.
5869
4ada538b
MM
58702004-03-18 Mark Mitchell <mark@codesourcery.com>
5871
5872 * c-decl.c (grokdeclarator): Do not complain about redeclaring
5873 visible "static" identifiers "extern" in a local scope.
5874 * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
5875 post-increments/decrements.
5876
79e9ebdc
BW
58772004-03-18 Bob Wilson <bob.wilson@acm.org>
5878
5879 * config/xtensa/xtensa.c (current_function_arg_words): Delete.
5880 (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
5881 (xtensa_va_start): Remove assignment to current_function_arg_words.
5882
5da6f168
RS
58832004-03-18 Richard Sandiford <rsandifo@redhat.com>
5884
5885 * alias.c (record_set): Detect the case where a register is assigned
5886 a new value that has the same base term as the old one.
5887
689ba89d
ZD
58882004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5889
5890 * doloop.c: Removed.
5891 * loop-doloop.c: New file.
5892 * Makefile.in (doloop.o): Remove.
5893 (loop-doloop.o): New.
5894 * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
5895 * cfgloopanal.c (get_loop_level): New function.
5896 * loop-iv.c (iv_number_of_iterations): Handle case when loop
5897 is leaved immediatelly.
5898 * loop.c (strength_reduce): Do not call doloop optimization.
5899 * loop.h (LOOP_BCT): Removed.
5900 * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
5901 (rest_of_handle_loop2): Call doloop_optimize_loops.
5902 (rest_of_compilation): Test for optimizations moved to
5903 rest_of_handle_loop2.
5904
327e5343
FJ
59052004-03-17 Fariborz Jahanian <fjahanian@apple.com>
5906
f75fbaf7
ZW
5907 * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
5908 for mixed mode.
5909 (rs6000_emit_prologue): Ditto.
5910 (rs6000_emit_epilogue): Ditto.
5911 * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
5912 macro for mixed mode.
327e5343 5913
214ee4a2
JH
59142004-03-18 Jan Hubicka <jh@suse.cz>
5915
5916 * predict.c (propagate_freq): Compute correctly frequency of
5917 EXIT_BLOCK.
5918
33521f7d
EC
59192004-03-17 Eric Christopher <echristo@redhat.com>
5920
5921 * builtins.c (apply_args_size): Use reg_raw_mode.
5922 (apply_result_size): Ditto.
5923
d3daf7bb
RC
59242004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5925
5926 PR target/14620
5927 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
5928
bb6df272
JJ
59292004-03-17 Jakub Jelinek <jakub@redhat.com>
5930
5931 * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
5932 32-bit builds when defaulting to 32-bit.
5933
7eca0767
JH
59342004-03-17 Jan Hubicka <jh@suse.cz>
5935
5936 * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
5937 array.
5938
3a3ae5e5
JW
59392004-03-17 James E Wilson <wilson@specifixinc.com>
5940
5941 * config/mips/mips.md (zero_extendsidi2): Add length attribute.
5942 (hazard_nop): Change type to nop.
5943 (type): Split arith into arith, shift, slt, clz. Delete darith.
5944 Fix all uses. Change arith to multi if more than one insn emitted.
5945 * config/mips/5400.md (ir_vr54_arith): Likewise.
5946 * config/mips/5500.md (ir_vr55_arith): Likewise.
5947 * config/mips/7000.md (rm7_int_other): Likewise.
5948 * config/mips/9000.md (rm9k_int): Likewise.
5949 * config/mips/sr71k.md (ir_sr70_arith): Likewise.
5950
6582c808
JB
59512004-03-17 Joel Brobecker <brobecker@gnat.com>
5952
5953 * dwarf2out.c (subrange_type_die): Define new variable "subtype"
5954 to hold the subtype tree instead of recomputing it several times.
5955
7ae4afcb
KH
59562004-03-17 Kazu Hirata <kazu@cs.umass.edu>
5957
5958 * config/mn10300/mn10300.c (notice_update_cc): Don't handle
5959 CC_INVERT.
5960 * config/mn10300/mn10300.md (cc): Remove "invert".
5961
b57051b2
KG
59622004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5963
d093738d
KG
5964 * builtins.c (integer_valued_real_p): Add builtin rint.
5965 (fold_builtin): Likewise.
5966 * convert.c (convert_to_real): Likewise.
5967
b57051b2
KG
5968 * convert.c (convert_to_real): Fix typos in `long double'
5969 builtins.
5970
88020bd8
MM
59712004-03-16 Mark Mitchell <mark@codesourcery.com>
5972
5973 PR c++/14481
5974 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
5975 generated COMPOUND_EXPRs.
5976
bf3864fe
RC
59772004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5978
5979 * config/h8300/t-rtems (h8300-*-rtems*): New.
5980
bc4c01b7
EC
59812004-03-16 Eric Christopher <echristo@redhat.com>
5982
5983 * doc/cppopts.texi(fwide-exec-charset): Fix typo.
5984
3c5cb3e4
KH
59852004-03-16 Kazu Hirata <kazu@cs.umass.edu>
5986
5987 * config/i386/i386-protos.h: Add a prototype for
5988 ix86_reverse_condition.
5989 * config/i386/i386.c (ix86_reverse_condition): New.
5990 * config/i386/i386.h (REVERSE_CONDITION): Use
5991 ix86_reverse_condition.
5992 * config/i386/i386.md: Use ix86_reverse_condition instead of
5993 REVERSE_CONDITION.
5994
fd5580cb
B
59952004-03-16 J. Brobecker <brobecker@gnat.com>
5996
5997 * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
5998
78fab00f
NN
59992004-03-16 Nathanael Nerode <neroden@gcc.gnu.org>
6000
6001 PR bootstrap/12974
6002 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
6003
4a5eab38
PB
60042004-03-16 Paolo Bonzini <bonzini@gnu.org>
6005
6006 * c-common.c (c_common_type_for_mode): Build vector types on
6007 demand.
6008 (handle_mode_attribute): Deprecate using the mode attribute
6009 to create vector types. Fix indentation.
6010 (vector_type_node_list): Remove.
6011 (handle_vector_size_attribute): Create vector types on demand.
6012 Strip a NON_LVALUE_EXPR from the attribute if there is one.
6013 * c-typeck.c (comptypes): Make vector types compatible if they
6014 have the same underlying mode.
6015 (convert_for_assignment): Use comptypes to convert between
6016 vector types.
6017 * tree.c (build_common_tree_nodes_2): Do not create vector types.
6018 * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
6019 vector types.
6020 * tree.h: Remove vector types.
6021 * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
6022 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
6023 (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
6024 V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
6025 * doc/extend.texi (Vector Types): Document how to use the
6026 vector_size attribute to create vectors, rather than mode.
6027
6028 * config/arm/mmintrin.h: Use vector_size attribute, not mode.
6029 * config/i386/emmintrin.h: Likewise.
6030 * config/i386/mmintrin.h: Likewise.
6031 * config/i386/xmmintrin.h: Likewise.
6032 * config/sh/ushmedia.h: Likewise.
6033
b862b3b3
KH
60342004-03-16 Kazu Hirata <kazu@cs.umass.edu>
6035
6036 * config/freebsd-spec.h, config/arc/arc-protos.h,
6037 config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
6038 config/arm/linux-gas.h, config/arm/semi.h,
6039 config/cris/cris-protos.h, config/i386/xm-djgpp.h,
6040 config/ia64/freebsd.h, config/mips/7000.md,
6041 config/mips/9000.md, config/ns32k/ns32k-protos.h,
6042 config/sparc/pbd.h: Update copyright.
6043
314733e2
RC
60442004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6045
6046 PR target/14577
6047 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff.
6048
6621d78e
PB
60492004-03-16 Paolo Bonzini <bonzini@gnu.org>
6050
6051 * combine.c (combine_simplify_rtx): Remove the "last"
6052 parameter and its documentation. Adjust recursive calls.
6053 (simplify_logical): Always perform the only simplification
6054 controlled by "last", if the simplified expression is
6055 actually different.
6056 (try_combine): Do not pass the "last" parameter to
6057 combine_simplify_rtx.
6058
4e7edcca
RS
60592004-03-16 Richard Sandiford <rsandifo@redhat.com>
6060
6061 PR target/14599
6062 * config/mips/mips.md (UNSPEC_GP): New constant.
6063 * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
6064 an UNSPEC instead of (reg $gp).
6065 (mips16_gp_pseudo_reg): Change accordingly.
6066 (print_operand): Print $gp directly when handling CONST_GP_P.
6067
60682004-03-16 Richard Zidlicky <rz@linux-m68k.org>
3704aae9
RZ
6069
6070 * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
6071 * longlong.h: Make code 68060 clean when compiling for m68060.
6072
4e7edcca 60732004-03-16 Richard Zidlicky <rz@linux-m68k.org>
8ac658b6
RZ
6074
6075 * config/m68k/m68k.md: Fix constraints for bitfield instructions.
6076 * doc/md.texi: Clarify description of "i" constraint.
6077
1a478672
JW
60782004-03-15 James E Wilson <wilson@specifixinc.com>
6079
6080 * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
6081 Split store into store, fpstore, fpidxstore. Fix all uses.
6082 * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
6083 Likewise.
6084 * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
6085 * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
6086 * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
6087 * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
6088 ir_sr70_fstore): Likewise.
6089
0977ab3a
RH
60902004-03-15 Richard Henderson <rth@redhat.com>
6091
6092 PR middle-end/14535
6093 * except.c (collect_one_action_chain): Record action for cleanup
6094 outer of exception spec.
6095
4e4083ad
ILT
60962004-03-15 Ian Lance Taylor <ian@wasabisystems.com>
6097
6098 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6099 Fix the check for abort and only do the mmap if we can.
6100
ed38d6fe
EB
61012004-03-15 Eric Botcazou <ebotcazou@act-europe.fr>
6102
6103 * config/sparc/sparc.h: Rework comments about the code model
6104 in 64-bit environment and the mode 'Pmode'.
6105 * doc/invoke.texi (SPARC options): Rework description of the
6106 different code models supported in 64-bit environment.
6107
1f8551b2
KH
61082004-03-15 Kazu Hirata <kazu@cs.umass.edu>
6109
6110 * defaults.h (REVERSIBLE_CC_MODE): Define.
6111 * jump.c (reversed_comparison_code_parts): Don't check if
6112 REVERSIBLE_CC_MODE is defined.
6113
ca2b05ba
KH
61142004-03-15 Kazu Hirata <kazu@cs.umass.edu>
6115
6116 * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
6117 et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
6118 hosthooks.h, params.h, ra-colorize.c, web.c,
6119 config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
6120 config/avr/avr-protos.h, config/avr/avr.md,
6121 config/fr30/fr30-protos.h, config/fr30/fr30.md,
6122 config/h8300/fixunssfsi.c, config/i386/darwin.h,
6123 config/i386/freebsd.h, config/i386/freebsd64.h,
6124 config/ia64/hpux.h, config/ia64/unwind-ia64.c,
6125 config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
6126 config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
6127 config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
6128 config/pa/pa64-regs.h, config/rs6000/aix41.h,
6129 config/rs6000/aix43.h, config/rs6000/host-darwin.c,
6130 config/sparc/aout.h, config/sparc/freebsd.h,
6131 config/sparc/litecoff.h, config/vax/vax-protos.h,
6132 doc/hostconfig.texi, doc/include/gcc-common.texi: Update
6133 copyright.
6134
983e6484
PB
61352004-03-15 Paul Brook <paul@codesourcery.com>
6136
6137 * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
6138
5c3c69f4
GDR
61392004-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
6140
6141 * c-pretty-print.c (pp_c_semicolon): Fix formatting.
6142 (pp_c_cv_qualifier): Document.
6143 (pp_c_space_for_pointer_operator): Likewise.
6144 (pp_c_integer_constant): Likewise.
6145 (pp_c_identifier): Likewise.
6146 (pp_c_init_declarator): Don't print function body.
6147
2dd76960
JM
61482004-03-14 Joseph S. Myers <jsm@polyomino.org.uk>
6149
6150 * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
6151 doc/install.texi, doc/invoke.texi, doc/makefile.texi,
6152 doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
6153 "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust
6154 wording and grammar.
6155
ae2bcd98
RS
61562004-03-14 Roger Sayle <roger@eyesopen.com>
6157
6158 * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
6159 with lang_hooks.foo ().
6160 * builtins.c (expand_builtin_va_arg): Likewise.
6161 * c-common.c (fname_as_string, c_common_truthvalue_conversion,
6162 c_common_type_for_mode, c_common_nodes_and_builtins,
6163 handle_mode_attribute, handle_vector_size_attribute): Likewise.
6164 * c-convert.c (convert): Likewise.
6165 * c-format.c (check_format_types): Likewise.
6166 * c-objc-common.c (c_tree_printer): Likewise.
6167 * c-typeck.c (build_unary_op, build_conditional_expr,
6168 build_binary_op): Likewise.
6169 * calls.c (try_to_integrate, expand_call,
6170 emit_library_call_value_1): Likewise.
6171 * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
6172 Likewise.
6173 * cgraphunit.c (record_call_1, cgraph_analyze_function,
6174 cgraph_expand_function): Likewise.
6175 * convert.c (convert_to_pointer, convert_to_integer): Likewise.
6176 * coverage.c (build_fn_info_type, build_ctr_info_type,
6177 build_gcov_info, create_coverage): Likewise.
6178 * dbxout.c (dbxout_init): Likewise.
6179 * diagnostic.c (diagnostic_report_current_function): Likewise.
6180 * dojump.c (do_jump): Likewise.
6181 * dwarf2out.c (dwarf2_name): Likewise.
6182 * except.c (init_eh): Likewise.
6183 * explow.c (expr_size, int_expr_size): Likewise.
6184 * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
6185 Likewise.
6186 * expr.c (store_expr, store_constructor, safe_from_p,
6187 expand_expr_real, do_store_flag, try_casesi): Likewise.
6188 * function.c (push_function_context_to, pop_function_context_from,
6189 free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
6190 put_var_into_stack, allocate_struct_function, current_function_name):
6191 Likewise.
6192 * integrate.c (copy_decl_for_inlining, expand_inline_function):
6193 Likewise.
6194 * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
6195 lhd_print_error_function): Likewise.
6196 * opts.c (handle_option, decode_options): Likewise.
6197 * passes.c (open_dump_file): Likewise.
6198 * print-tree.c (print_node): Likewise.
6199 * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
6200 expand_decl_cleanup, emit_case_nodes): Likewise.
6201 * stor-layout.c (variable_size): Likewise.
6202 * toplev.c (announce_function, wrapup_global_declarations,
6203 check_global_declarations, compile_file, default_tree_printer,
6204 process_options, lang_dependent_init, finalize): Likewise.
6205 * tree-dump.c (dequeue_and_dump): Likewise.
6206 * tree-inline.c (remap_decl, remap_block, copy_body_r,
6207 initialize_inlined_parameters, declare_return_variable,
6208 inlinable_function_p, expand_call_inline, optimize_inline_calls,
6209 walk_tree, copy_tree_r): Likewise.
6210 * tree-optimize.c (tree_rest_of_compilation): Likewise.
6211 * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
6212 unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
6213 variably_modified_type_p, dump_tree_statistics): Likewise.
6214 * varasm.c (assemble_variable, compare_constant, copy_constant,
6215 force_const_mem, compute_reloc_for_constant, output_constant,
6216 output_addressed_constants, initializer_constant_valid_p): Likewise.
6217
89acbae0
KC
62182004-03-14 Kelley Cook <kcook@gcc.gnu.org>
6219
6220 * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
6221
d01b30dc
AT
62222004-03-14 Andreas Tobler <a.tobler@schweiz.ch>
6223
6224 * doc/install.texi: Reflect autoconf and automake version for
6225 libffi. Update autoconf version to 2.59.
6226
5785c7de
RS
62272004-03-13 Roger Sayle <roger@eyesopen.com>
6228
6229 * fold-const.c (negate_expr, operand_equal_for_comparison_p,
6230 optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
6231 make_range, build_range_check, fold_range_test, unextend,
6232 constant_boolean_node, fold_binary_op_with_conditional_arg,
6233 fold_truthop, fold_mathfn_compare, fold_inf_compare,
6234 fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
6235 with lang_hooks.foo ().
6236
edc62122
RE
62372004-03-14 Richard Earnshaw <rearnsha@arm.com>
6238
6239 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
6240
7db956db
DH
62412004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
6242
6243 * doc/install.texi: Note status of -fnew-ra.
6244
e6d55fd7
EB
62452004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
6246
6247 PR middle-end/14470
6248 * expr.c (store_expr): Call emit_queue before generating the move
6249 from the temporary to the original target. Protect the temporary
6250 from emit_queue.
6251
cfbab41c
JJ
62522004-03-13 Jakub Jelinek <jakub@redhat.com>
6253
6254 PR target/14533
6255 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
6256 other than UNSPEC_GOTOFF.
6257
1e1ab407
RE
62582004-03-13 Richard Earnshaw <rearnsha@arm.com>
6259
6260 * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through
6261 to arm_legitimate_index_p. Update all callers with SET as default
6262 value.
6263 (arm_legitimate_index_p): New argument, OUTER. Restrict the index
6264 range if OUTER is a sign-extend operation on QImode. Correctly
6265 reject shift operations on sign-extended QImode addresses.
6266 (bad_signed_byte_operand): Delete.
6267 (arm_extendqisi_mem_op): New function.
6268 * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with...
6269 (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address
6270 constraints.
6271 (CONSTRAINT_LEN): New.
6272 (EXTRA_CONSTRAINT): Delete. Replace with...
6273 (EXTRA_CONSTRAINT_STR): ... this.
6274 (PREDICATE_CODES): Remove bad_signed_byte_operand.
6275 * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length
6276 is now always default.
6277 (define_splits for bad sign-extend loads): Delete.
6278 (arm_extendqisi, arm_extendqisi_v5): Likewise.
6279 * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
6280 Rework 'U' constraint to 'Uv'.
6281 * arm-protos.h: Remove bad_signed_byte_operand. Add
6282 arm_extendqisi_mem_op.
6283 * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
6284 Add Uq constraint.
6285
c53bdcf5
AM
62862004-03-13 Alan Modra <amodra@bigpond.net.au>
6287
fa78dbea
AM
6288 * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
6289 with targetm version.
6290
c53bdcf5
AM
6291 PR target/14567
6292 * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
6293 (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
6294 * config/rs6000/rs6000.c (rs6000_arg_size): New function.
6295 Update all users of RS6000_ARG_SIZE.
6296 (function_arg_advance): Count fregno using mode size.
6297 (function_arg): Handle long double split over regs and memory.
6298 (function_arg_partial_nregs): Likewise.
6299 (rs6000_va_arg): Repackage complex args.
6300
992ab122
DF
63012004-03-13 Dean Ferreyra <dferreyra@igc.org>
6302
6303 PR target/14047
6304 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
6305 (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
6306 * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
6307
c973d557
JJ
63082004-03-12 Jakub Jelinek <jakub@redhat.com>
6309
6310 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
6311 prototype.
6312 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
6313 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
6314
4319ac92
AP
63152003-03-12 Andrew Pinski <apinski@apple.com>
6316
6317 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6318 Use ret instead of result. Use addr instead of base.
6319
bb674cef
DE
63202004-03-12 David Edelsohn <edelsohn@gnu.org>
6321
6322 * doc/install.texi (*-ibm-aix*): Document assembler and achiver
6323 fixes required by libstdc++ and update installation instructions
6324 for libstdc++.a.
6325
b1f123c7
DS
63262004-03-12 Danny Smith <dannysmith@users.sourceforge.net>
6327
6328 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
6329 leading '@' on fastcall symbols before stripping suffix.
6330
67962db5
RS
63312004-03-12 Roger Sayle <roger@eyesopen.com>
6332
6333 * combine.c (unmentioned_reg_p): New function to check whether an
6334 expression is a "specialization" of another, i.e. that there are
6335 no registers or memory references mentioned in the first that don't
6336 appear in the second.
6337 (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
6338 (combine_instructions): Also try combining instructions using the
6339 REG_EQUAL note from a preceding log-linked instruction.
6340
8937b6a2
RS
63412004-03-12 Roger Sayle <roger@eyesopen.com>
6342
6343 * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
6344
4746cf84
MA
63452004-03-12 Matt Austern <austern@apple.com>
6346
6347 * target.h (struct gcc_target): New target hook, unwind_label.
6348 * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
6349 * output.h (default_emit_unwind_label): New function.
6350 * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
6351 (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
6352 (TARGET_SUPPORTS_HIDDEN): New target macro.
6353 * dwarf2out.c (struct dw_fde_struct): Add field for function decl
6354 that corresponds to this FDE.
6355 (FRAME_BEGIN_LABEL): Allow target to override default label.
6356 (output_call_frame_info): If FDEs are linknonce, then use extra
c53bdcf5 6357 indirection for FDE encoding, output a label for each FDE, and
4746cf84
MA
6358 output an empty label for each function without an FDE.
6359 (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
6360 * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
6361 decls with DECL_ONE_ONLY set, if that macro is defined.
6362 (make_decl_one_only): Don't use DECL_COMMON if we're compiling
6363 for a SUPPORTS_ONE_ONLY target.
6364 * config/darwin-protos.h (darwin_unique_section): Declare.
6365 (darwin_asm_named_section): Likewise.
6366 (darwin_section_type_flags): Likewise.
6367 (darwin_non_lazy_pcrel): Likewise.
6368 (darwin_emit_unwind_label): Likewise.
6369 (darwin_make_decl_one_only): Likewise.
6370 * config/darwin.c (machopic_finish): Get rid of tweak that
6371 eliminate stubs for symbols that are defined.
6372 (darwin_encode_section_info): Don't treat weak functions as defined.
6373 (darwin_make_decl_one_only): Define.
6374 (darwin_asm_named_section): Likewise.
6375 (darwin_section_type_flags): Likewise.
6376 (darwin_unique_section): Likewise.
6377 (darwin_emit_unwind_label): Likewise.
6378 (darwin_non_lazy_pcrel): Likewise.
6379 (darwin_asm_output_dwarf_delta): Difference between two labels is
6380 local only if both labels are local.
6381 * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
6382 (ASM_MAKE_LABEL_LINKONCE): Likewise.
6383 (TARGET_SUPPORTS_HIDDEN): Likewise.
6384 (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
6385 (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
6386 (FRAME_BEGIN_LABEL): Likewise.
6387 (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
6388 (ASM_DECLARE_FUNCTION_NAME): Likewise.
6389 (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
6390 (TARGET_ASM_UNIQUE_SECTION): Define.
6391 (EH_FRAME_SECTION_NAME): Define.
6392 (EH_FRAME_SECTION_ATTR): Likewise.
6393 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
6394 (TARGET_ASM_NAMED_SECTION): Likewise.
6395 (TARGET_SECTION_TYPE_FLAGS): Likewise.
6396 * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
6397 TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
6398 TARGET_ASM_EMIT_UNWIND_LABEL.
bc4c01b7 6399
fd0c8c8d
KG
64002004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6401
6402 * builtins.c (expand_builtin_mathfn): Add pow10* to the
6403 existing exp10* case.
6404 (expand_builtin): Likewise.
6405
ca0b6e3b
EB
64062004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
6407
6408 * doc/tm.texi (registers) <Values in Registers>: Add
6409 entry for REGMODE_NATURAL_SIZE.
6410
42ba5130
RH
64112004-03-12 Richard Henderson <rth@redhat.com>
6412
6413 PR target/14547
6414 * target.h (struct gcc_target): Move calls substructure before
6415 booleans. Add split_complex_arg.
6416 * function.c (assign_parms, split_complex_args): Use it.
c53bdcf5
AM
6417 * calls.c (expand_call): Likewise.
6418 (split_complex_values): Likewise. Check for splittable types
6419 before allocating memory.
6420 (split_complex_types): Likewise.
42ba5130
RH
6421 * system.h (SPLIT_COMPLEX_ARGS): Poison.
6422 * expr.h (SPLIT_COMPLEX_ARGS): Remove.
6423 * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
6424 * config/alpha/alpha.c (alpha_split_complex_arg): New.
6425 (TARGET_SPLIT_COMPLEX_ARG): New.
6426 * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
6427 * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
6428 (rs6000_override_options): Zap it for non-AIX.
6429 (rs6000_function_value): Use targetm.calls.split_complex_arg.
6430 * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
6431 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
6432 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
6433 * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
6434 SPLIT_COMPLEX_ARGS entry.
6435
75959f0a
RH
64362004-03-11 Richard Henderson <rth@redhat.com>
6437
6438 * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
6439 (alpha_lookup_xfloating_lib_func): Use them, return rtx.
6440 (alpha_emit_xfloating_arith): Update to match.
6441 (alpha_emit_xfloating_compare): Likewise.
6442 (alpha_emit_xfloating_cvt): Likewise.
6443 (alpha_emit_xfloating_libcall): Take already built symbol,
6444 mark call const.
6445 * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
6446 op1 in a register.
6447
e5e10fb4
RH
64482004-03-11 Richard Henderson <rth@redhat.com>
6449
6450 PR target/14539
6451 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
6452
55cf9d62
RH
6453 * simplify-rtx.c (simplify_relational_operation): Fix typo.
6454
9caad63a
RH
64552004-03-11 Richard Henderson <rth@redhat.com>
6456
6457 PR middle-end/14477
6458 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
6459
03ca1672
UW
64602004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
6461
6462 PR target/14262
6463 * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
6464 defined, pass small BLKmode values in registers in the low-order part.
6465
bbe708a3
UW
64662004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
6467
6468 * combine.c (if_then_else_cond): Check for NULL return value of
6469 simplify_gen_subreg.
6470
0e808055
RS
64712004-03-11 Richard Sandiford <rsandifo@redhat.com>
6472
6473 PR target/14496
6474 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
6475 TARGET_SINGLE_FLOAT.
6476
1f7aa7cd
SE
64772004-03-11 Steve Ellcey <sje@cup.hp.com>
6478
6479 * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
6480 * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
6481 * config/ia64/ia64.c (ia64_init_libfuncs): New.
6482 (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
6483
239a625e
RS
64842004-03-11 Roger Sayle <roger@eyesopen.com>
6485
6486 * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
6487 -((int)X>>C) where C is an integer constant one bit less than the
6488 size of X into (unsigned)X>>C. Similarly for unsigned->signed.
6489 (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
6490
6491 * simplify-rtx.c (simplify_unary_operation): Also implement the
6492 above transformations at the RTL level.
6493
40131a38
AM
64942004-03-11 Alan Modra <amodra@bigpond.net.au>
6495
6496 * real.c (encode_ibm_extended): Do round low word.
6497
df8e2ad0
BE
64982004-03-11 Ben Elliston <bje@wasabisystems.com>
6499
6500 * config/arm/arm.md (is_xscale): Comment this attribute and move
6501 it a bit further up in the file, closer to related attributes.
6502
d1704a35
EB
65032004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr>
6504
6505 * config/host-solaris.c (sol_gt_pch_use_address): Add
6506 missing terminating marker to comment.
6507
fc31c7ca
RS
65082004-03-11 Richard Sandiford <rsandifo@redhat.com>
6509
6510 * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
6511 (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
6512 (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
6513 (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
6514 move_operand as source predicate in all cases.
6515 (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
6516 Test reg_or_0_operand. Use move_operand as source predicate.
6517 (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
6518 (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
6519 (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
6520 (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
6521 (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
6522 Use move_operand as source predicate. Remove 'K' constraint.
6523 (*movqi_internal): Likewise movqi_internal.
6524 (*movsf_hardfloat): Renamed from movsf_internal1. Test
6525 reg_or_0_operand. Use move_operand as source predicate.
6526 (*movsf_softfloat): Likewise movsf_internal2.
6527 (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
6528 (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
6529 (*movdf_softfloat): Likewise movdf_internal2.
6530 * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
6531 for DImode if !TARGET_64BIT.
6532 (mips_legitimize_move): Simplify accordingly.
6533
81f2eadb
JZ
65342004-03-11 Josef Zlomek <zlomekj@suse.cz>
6535
6536 PR/14362
6537 * var-tracking.c (struct variable_def): Added field refcount.
6538 (variable_htab_free): Decrease the refcount and delete variable
6539 only if there are no more references.
6540 (unshare_variable): New function.
6541 (vars_copy_1): Increase refcount instead of copying the variable.
6542 (variable_union): Share the variables where possible, unshare
6543 the variables if needed.
6544 (variable_different_p): Return false if var1 and var2 are
6545 the same structure.
6546 (variable_was_changed): Init the refcount of new variable.
6547 (set_frame_base_location): Unshare variable if needed.
6548 (set_variable_part): Init the refcount of new variable.
6549 Unshare the variables if needed.
c53bdcf5 6550 (delete_variable_part): Unshare the variables if needed.
81f2eadb
JZ
6551 (emit_notes_for_differences_1): Init the refcount of new variable.
6552 (vt_add_function_parameters): Do not add function parameters to
6553 IN set of ENTRY_BLOCK_PTR because it is unused anyway.
6554 (vt_initialize): Do not add frame_base_decl to IN set of
6555 ENTRY_BLOCK_PTR because it is unused anyway.
6556
11599d14
JZ
65572004-03-11 Josef Zlomek <zlomekj@suse.cz>
6558
6559 * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
6560 (vars_copy): Likewise.
6561 (variable_union): Likewise.
6562 (set_variable_part): Likewise.
6563 (delete_variable_part): Likewise.
6564
71cc389b
KH
65652004-03-11 Kazu Hirata <kazu@cs.umass.edu>
6566
6567 * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
6568 ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
6569 config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
6570 config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
6571 config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
6572 config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
6573 config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
6574 config/pdp11/pdp11.h, config/rs6000/rs6000.c,
6575 config/stormy16/stormy16.c: Fix comment typos and formatting.
6576
f3c9f174
NN
65772004-03-11 Nathanael Nerode <neroden@gcc.gnu.org>
6578
6579 * configure: Regenerate, since I forgot to while committing Paolo's
6580 changes.
6581
e4c9c075
PB
65822004-03-08 Paolo Bonzini <bonzini@gnu.org>
6583
6584 PR ada/14131
6585 Move language detection to the top level.
6586 * configure.ac: Remove code to detect languages,
6587 it now lives exclusively in the top level.
6588 * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
6589 top level, renamed to ACX_PROG_GNAT.
6590
4d0c31e6
RH
65912004-03-10 Richard Henderson <rth@redhat.com>
6592
6593 * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
6594 extra arguments.
6595 * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
6596 and host_xmake_file fragments.
6597 * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
6598 (gt_pch_restore): Similarly for gt_pch_use_address.
6599 (default_gt_pch_get_address): New.
6600 (mmap_gt_pch_get_address): Split out of gt_pch_save.
6601 (default_gt_pch_use_address): Split out of gt_pch_restore.
6602 (mmap_gt_pch_use_address): Likewise.
6603 * hooks.c (hook_voidp_size_t_null): Remove.
6604 (hook_bool_voidp_size_t_false): Remove.
6605 * hooks.h: Likewise.
6606 * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
6607 default_ or mmap_ definitions.
6608 (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
6609 * hosthooks.h (struct host_hooks): Update gt_pch_get_address
6610 and gt_pch_use_address.
6611 * config/host-linux.c, config/host-solaris.c: New files.
6612 * config/x-linux, config/x-solaris: New files.
bc4c01b7 6613 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
4d0c31e6
RH
6614 Update for changed definition.
6615 (darwin_rs6000_gt_pch_use_address): Likewise.
6616 * doc/hostconfig.texi: Update docs.
6617
28fca7e4
RH
66182004-03-10 Richard Henderson <rth@redhat.com>
6619
6620 PR c/14517
6621 * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
6622 except for pedantic c90 mode.
6623
8ab705be
KC
66242004-03-10 Kelley Cook <kcook@gcc.gnu.org>
6625
6626 * configure.ac: Bump AC_PREREQ to 2.59.
6627 * configure: Regenerate.
6628
a251102e
UB
66292004-03-10 Uros Bizjak <uros@kss-loka.si>
6630
6631 * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
6632 (exp10_optab, exp2_optab): Define corresponding macros.
6633 * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
6634 * genopinit.c (optabs): Implement exp10_optab and exp2_optab
6635 using exp10?f2 and exp2?f2 patterns.
6636 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
6637 using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
6638 (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
6639 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6640
6641 * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
6642 exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
6643 exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
6644
11f01d37
AG
66452004-03-10 Anthony Green <green@redhat.com>
6646
6647 * doc/invoke.texi (ARM Options): Fix -mpfu typo.
6648
bb904c1a
DE
66492004-03-10 David Edelsohn <edelsohn@gnu.org>
6650
6651 * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
6652 (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define
6653 __LONGDOUBLE128.
6654 * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
6655 TARGET_OS_AIX_CPP_BUILTINS.
6656 * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
6657 * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
6658 * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
6659 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
6660 previous change.
6661
b45d3a36
KG
66622004-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6663
6664 * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
6665
35ae04ba
DE
66662004-03-10 David Edelsohn <edelsohn@gnu.org>
6667
6668 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
6669 __LONGDOUBLE128 on AIX.
6670
ffad84cd
AH
66712004-03-10 Andrew Haley <aph@redhat.com>
6672
f7b48371 6673 PR optimization/14381
ffad84cd
AH
6674 * function.c (expand_function_end): Emit a blockage insn before
6675 the epilogue when -fnon-call-exceptions is used.
6676
6677 * except.c (expand_start_all_catch): Make comment more accurate.
6678
65cd26a6
JS
66792004-03-08 Joel Sherrill <joel@oarcorp.com>
6680
6681 PR target/14480
6682 * config/rs6000/t-rtems: Add missing file on branch.
6683
452c159e
UW
66842004-03-10 Ulrich Weigand <uweigand@de.ibm.com>
6685
6686 * dbxout.c (dbxout_symbol_location): Do not output references
6687 to optimized-out constant pool symbols.
6688
5f1b2068
AS
66892004-03-10 Andreas Schwab <schwab@suse.de>
6690
6691 * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
6692 twon34_r.
6693
5399d643
JW
66942004-03-09 James E Wilson <wilson@specifixinc.com>
6695
6696 * alias.c (alias_sets_might_conflict_p): New.
6697 * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
6698 * common.opt (Wstrict-aliasing=): New.
6699 * flags.h (warn_strict_aliasing): Change type to int.
6700 * opts.c (warn_strict_aliasing): Change type to int.
6701 (common_handle_option): Handle OPT_Wstrict_aliasing_.
6702 * tree.h (alias_sets_might_conflict_p): Declare it.
6703 * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
6704
a4e9467d
RZ
67052004-03-10 Roman Zippel <zippel@linux-m68k.org>
6706
6707 PR bootstrap/12371
6708 * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
6709 (CALL_USED_REGISTERS): Likewise.
c53bdcf5 6710 (REG_CLASS_CONTENTS): Likewise.
a4e9467d
RZ
6711 (REG_ALLOC_ORDER): New.
6712 (REGNO_REG_CLASS): Use regno_reg_class.
6713 * config/m68k/m68k.c: Add regno_reg_class array.
6714
9aec7fb4
SE
67152004-03-09 Steve Ellcey <sje@cup.hp.com>
6716
6717 * config/ia64/ia64.md (divsi3): Fix algorithm.
6718 (udivsi3): Ditto.
6719 (setf_exp_xf): Remove '*' from name.
6720 * testsuite/gcc.dg/20040309-1.c: New test.
6721
9acd4a03
ILT
67222004-03-09 Ian Lance Taylor <ian@wasabisystems.com>
6723
6724 * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
6725 * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
6726 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
6727 * config/sparc/sparc.c (sparc_aout_select_section): Remove.
6728 (sparc_aout_select_rtx_section): Don't check
6729 SUNOS4_SHARED_LIBRARIES.
6730 * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
6731
a5249a21
HPN
67322004-03-10 Hans-Peter Nilsson <hp@axis.com>
6733
6734 PR other/14474
6735 * doc/md.texi (Pattern Ordering, Dependent Patterns)
6736 (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
6737 INTERNALS".
6738
e373cdb4
ZW
67392004-03-09 Zack Weinberg <zack@codesourcery.com>
6740
6741 * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
6742 (LIBGCC_SPEC): Update to match.
6743
77dbdb57
ZW
67442004-03-09 Zack Weinberg <zack@codesourcery.com>
6745
6746 * c-decl.c (last_function_parms, last_function_parm_tags)
6747 (last_function_parm_others, current_function_parms)
6748 (current_function_parm_tags, current_function_parm_others):
6749 Delete.
6750 (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
6751 New macros.
6752 (grokdeclarator): For function definitions, save the arg-info
6753 block from the declarator in DECL_ARGUMENTS.
6754 (grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
6755 macros to operate on arg-info block. Can assume ARG_INFO_PARMS
6756 contains only PARM_DECLs. Improve diagnostics.
6757 (get_parm_info): Use ARG_INFO_* macros. Improve comments and
6758 diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
6759 (store_parm_decls_newstyle): Take the function to operate on,
6760 and an arg-info block, as arguments; don't get anything from
6761 current_function_* globals.
6762 (store_parm_decls_oldstyle): Likewise.
6763 (store_parm_decls): Pass fndecl and its arg-info block down to
6764 store_parm_decls_newstyle/oldstyle. Send functions with empty
6765 argument lists through store_parm_decls_newstyle to reduce
6766 overhead.
6767 (pushdecl): Comment on the problems with the call to copy_node.
6768 Clear DECL_ARGUMENTS of the old node after copying it, if it
6769 is an arg-info block instead of a chain of decls.
6770 (start_function): Do not manipulate current_function_parm* or
6771 last_function_parm*.
6772
305eeaeb
RS
67732004-03-09 Roger Sayle <roger@eyesopen.com>
6774 Andrew Pinski <pinskia@physics.uc.edu>
6775
6776 * ifcvt.c (noce_try_sign_mask): New function to transform
6777 "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
6778 (noce_process_if_block): Call noce_try_sign_mask.
6779
f38f747d
AP
67802004-03-09 Andrew Pinski <apinski@apple.com>
6781
6782 * c-typeck.c (tagged_types_tu_compatible_p):
6783 Fix typo.
6784
7ce3e360
RS
67852004-03-09 Roger Sayle <roger@eyesopen.com>
6786
6787 * simplify-rtx.c (simplify_const_relational_operation): New function
6788 renamed from simplify_relational_operation.
6789 (simplify_relational_operation): Change prototype to accept an
6790 additional mode argument. Call simplify_const_relational_operation.
6791 (simplify_gen_relational): Update simplify_relational_operation call.
6792 (simplify_ternary_operation): Update simplify_relational_operation
6793 subroutine call to use simplify_const_relational_operation instead.
6794
6795 * rtl.h (simplify_const_relational_operation): Prototype here.
6796 (simplify_relational_operation): Add addtional mode argument.
6797
6798 * combine.c (combine_simplify_rtx): Update calls to
6799 simplify_relational_operation.
6800 (simplify_set): Likewise.
6801 (gen_binary): Likewise.
6802 * cse.c (fold_rtx): Likewise.
6803 * dojump.c (compare_from_rtx): Likewise.
6804 (do_compare_rtx_and_jump): Likewise.
6805 * integrate.c (subst_constants): Likewise.
6806 * unroll.c (simplify_cmp_and_jump_insns): Likewise.
6807
c0e63064
KH
68082004-03-09 Kazu Hirata <kazu@cs.umass.edu>
6809
6810 * config/m32r/m32r.md: Remove all define_peephole's.
6811
6ae08853
AM
68122004-03-09 Alan Modra <amodra@bigpond.net.au>
6813
6814 * config/rs6000/rs6000.md: Remove trailing whitespace.
6815
5340bbea
EC
68162004-03-08 Eric Christopher <echristo@redhat.com>
6817
6818 * Makefile.in (site.exp): Add libiconv variable definition.
6819
3beb1315
HPN
68202004-03-09 Hans-Peter Nilsson <hp@axis.com>
6821
6822 * configure: Regenerate for config/accross.m4 correction.
6823
c589970a
JS
68242004-03-08 Joel Sherrill <joel@oarcorp.com>
6825
6826 PR target/14480
6827 * config/rs6000/t-rtems: Add missing file on branch.
6828
e697b20f
RS
68292004-03-08 Roger Sayle <roger@eyesopen.com>
6830
6831 PR middle-end/14289
6832 * c-typeck.c (c_mark_addressable): A register variable should
6833 be considered global if its not automatic, i.e. TREE_PUBLIC,
6834 TREE_STATIC or DECL_EXTERNAL.
6835 * function.c (put_var_into_stack): Call abort when placing a
6836 hard register into the stack, if x_parm_reg_stack_loc is NULL.
6837
59f8a8be
UW
68382004-03-08 Ulrich Weigand <uweigand@de.ibm.com>
6839
6840 * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
6841 ("*extendqisi2_short_displ"): Likewise.
6842
23bd99da
KH
68432004-03-08 Kazu Hirata <kazu@cs.umass.edu>
6844
6845 * config/pdp11/pdp11.c (comparison_operator_index): Remove.
6846 (comp_operator): Likewise.
6847 * config/pdp11/pdp11-protos.h: Remove corresponding
6848 prototypes.
6849
d50a16c4
EB
68502004-03-08 Eric Botcazou <ebotcazou@act-europe.fr>
6851
6852 * expr.c (highest_pow2_factor_for_type): Rename into
6853 highest_pow2_factor_for_target. Use DECL_ALIGN instead of
6854 TYPE_ALIGN when the target is a COMPONENT_REF.
6855 (expand_assignment): Ajust call to highest_pow2_factor_for_type.
6856
957211c3
AM
68572004-03-08 Alan Modra <amodra@bigpond.net.au>
6858
b1917422
AM
6859 * config/rs6000/rs6000.c: Formatting fix.
6860 (legitimate_offset_address_p): Correct offset range check.
6861
957211c3
AM
6862 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
6863 -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE
6864 and MASK_STRING.
6865
97727e85 68662004-03-07 Aldy Hernandez <aldyh@redhat.com>
5340bbea 6867
77dbdb57
ZW
6868 * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
6869 for little endian.
6870 ("ashrdi3_no_power"): Disable for little endian.
97727e85
AH
6871 (ashrdi3): Same.
6872
280e63ec
KG
68732004-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6874
6875 * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
6876 builtins.
6877
86da66b5
HPN
68782004-03-08 Hans-Peter Nilsson <hp@axis.com>
6879
6880 PR target/14471
6881 * configure.ac (Target-specific assembler checks) <cris-*-*>: New
6882 case, checking for -no-mul-bug-abort option.
6883 * configure, config.in: Regenerate.
6884 * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
6885 and -mno-mul-bug-workaround.
6886 * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
6887 ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
6888 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
6889 Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
6890 * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
6891 sure mulu.d is not last on cache-line.
6892 * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
6893 into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
6894 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
6895 (TARGET_SWITCHES): New options -mmul-bug-workaround and
6896 -mno-mul-bug-workaround.
6897 (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
6898 (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
6899 * config/cris/cris.c (cris_operand_extend_operator): Clarify
6900 relation to MULT in head comment.
6901 (cris_op_str): Abort for MULT.
6902 (cris_print_operand) <case '!'>: New case.
6903
e7ee3914
AM
69042004-03-08 Alan Modra <amodra@bigpond.net.au>
6905
6906 PR debug/11983
6907 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
6908 dw_val_class_vec. Replace use throughout file.
6909 (dw_float_const): Delete.
6910 (dw_vec_const): New.
6911 (dw_val_struct_union): Rename val_float to val_vec. Replace use
6912 throughout file.
6913 (add_AT_vec): Rename from add_AT_float. Add elt_size param.
6914 (same_dw_val_p): Adjust vec comparison. Use memcmp.
6915 (size_of_die): Adjust dw_val_class_vec sizing.
6916 (output_die): Output dw_val_class_vec.
6917 (insert_int, extract_int, insert_float): New functions.
6918 (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
6919 Handle CONST_VECTOR.
6920 (add_location_or_const_value_attribute): Handle CONST_VECTOR.
5cc73f91
AH
6921
69222004-03-07 Aldy Hernandez <aldyh@redhat.com>
6923
6924 * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
6925 AltiVec abi cannot co-exist.
6926
6927 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
6928
a61bf177
JH
69292004-03-07 Jan Hubicka <jh@suse.cz>
6930
6931 * except.c (emit_to_new_bb_before): Break fallthru edges.
6932
17c60946
SC
69332004-03-07 Stephane Carrez <stcarrez@nerim.fr>
6934
6935 * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
6936 ("*lshrsi3"): Also accept an immediate for 68HC12.
6937 ("*ashrsi3_const"): Likewise.
6938 ("*ashrsi3"): Likewise.
6939 ("*ashlsi3_const"): Likewise.
6940 ("*ashlsi3"): Likewise.
6941 ("cmphi_1_hc12"): Compare two hard register by pushing them and
6942 comparing with a pop; don't use a split for that.
6943 ("cmphi split"): Disable compare split for 68HC12.
6944
6945 * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
6946 the status operands if they have side effects.
6947
3e759eda
KH
69482004-03-07 Kazu Hirata <kazu@cs.umass.edu>
6949
6950 * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
6951 definition.
6952 * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
6953 config/h8300/h8300.h, config/ia64/ia64.h,
6954 config/mcore/mcore.h, config/mmix/mmix.h,
6955 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
6956 config/stormy16/stormy16.h, config/v850/v850.h,
6957 config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
6958 * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
6959 definition.
6960
cd2f1c7a
RS
69612004-03-07 Roger Sayle <roger@eyesopen.com>
6962
6963 * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
6964 <XOR_EXPR>: Fold x ^ x as zero.
6965 <AND_EXPR>: Fold x & x as x.
6966
350f4ea8
RS
69672004-03-07 Roger Sayle <roger@eyesopen.com>
6968
6969 * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
6970 "foo++ == const" into "++foo == const+incr".
6971
91455597
RS
69722004-03-07 Richard Sandiford <rsandifo@redhat.com>
6973
6974 * config/mips/mips.c (mips_in_small_data_p): Return false if
6975 TARGET_ABICALLS.
6976
a75ea627
SC
69772004-03-06 Stephane Carrez <stcarrez@nerim.fr>
6978
6979 * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
6980 the stack register.
6981 (expand_prologue): Don't make an interrupt or a trap handler a far
6982 symbol.
6983 (m68hc11_initial_elimination_offset): Likewise.
6984
7179b6db
RH
69852004-03-06 Richard Henderson <rth@redhat.com>
6986
6987 * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
6988
eff3c926
KH
69892004-03-06 Kazu Hirata <kazu@cs.umass.edu>
6990
6991 * config/ns32k/ns32k-protos.h: Add a prototype for
6992 ns32k_notice_update_cc.
6993 * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
6994 * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
6995 ns32k_notice_update_cc.
6996
22ea6b4f
UW
69972004-03-06 Ulrich Weigand <uweigand@de.ibm.com>
6998
6999 * config/s390/s390.md ("load_multiple", "*load_multiple_di",
7000 "*load_multiple_si"): Allow only if reload_completed.
7001 ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
7002 Likewise.
7003
af0ec113
KH
70042004-03-06 Kazu Hirata <kazu@cs.umass.edu>
7005
7006 * config/vax/vax-protos.h: Add a prototype for
7007 vax_notice_update_cc.
7008 * config/vax/vax.c (vax_notice_update_cc): New.
7009 * config/vax/vax.h (NOTICE_UPDATE_CC): Call
7010 vax_notice_update_cc.
7011
aaef9b06
DE
70122004-03-06 David Edelsohn <edelsohn@gnu.org>
7013
7014 * collect2.c (main): Only export initfunc and finifunc if
7015 LD_INIT_SWITCH not defined.
7016 (scan_prog_file): Only export constructors and destructors if
7017 LD_INIT_SWITCH not defined. Only export symbols not found in
7018 shared objects.
7019
7a9a5a44
JDA
70202004-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7021
7022 * pa.md (icacheflush): Reorder operands to make match_scratch operand
7023 last.
7024 * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
7025 from calls to gen_icacheflush.
7026
0f15adbd
RH
70272004-03-06 Richard Henderson <rth@redhat.com>
7028
7029 * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
7030 (TARGET_LONG_DOUBLE_128): New.
7031 (TARGET_SWITCHES): Add long-double-{128,64}.
7032 (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
7033 (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
7034 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
7035 (WIDEST_HARDWARE_FP_SIZE): New.
7036 (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
7037 * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
7038 if TARGET_VAX_FLOAT.
7039 * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
7040 (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
7041
b9c685ae
RH
70422004-03-06 Richard Henderson <rth@redhat.com>
7043
7044 * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
7045 botched rtx class conversion.
7046
82b4201f
KG
70472004-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7048
7049 * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
7050 BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
7051
7052 * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
7053 macros.
7054 * fold-const.c (fold_mathfn_compare, fold): Likewise.
7055
84289c76
EB
70562004-03-06 Eric Botcazou <ebotcazou@libertysurf.fr>
7057
7058 PR target/14343
7059 * config/i386/i386.md (movv2di_internal): Conditionalize on
7060 TARGET_SSE, not TARGET_SSE2.
7061
3fdf09a1
CD
70622004-03-05 Chris Demetriou <cgd@broadcom.com>
7063
7064 * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
7065 duplicated line.
7066
f2f4e976
KG
70672004-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7068
7069 * builtins.c: Consistently use logN not log* in comments.
7070
2b3493c8
AK
70712004-03-05 Andreas Krebbel <krebbel1@de.ibm.com>
7072
7073 * rtl.h (mem_expr_equal_p): Function prototype added.
7074 * cfgcleanup.c (merge_memattrs): New function.
7075 (flow_find_cross_jump): Call merge_memattrs for matching insns.
7076 * emit-rtl.c (mem_expr_equal_p): New function.
7077
1a4a7065
ZL
70782004-03-05 Ziemowit Laski <zlaski@apple.com>
7079
7080 * objc/objc-act.c (synth_module_prologue): Const-qualify
7081 objc_selector type if using the GNU runtime; fix generated
7082 signatures for objc_msg_lookup and objc_msg_lookup_super
7083 to match what GNU ObjC headers provide; reformat and clean up.
7084 (synth_self_and_ucmd_args): Use previously constructed (and
7085 hence possibly const-qualified) objc_selector type.
7086
150c9fe8
KH
70872004-03-05 Kazu Hirata <kazu@cs.umass.edu>
7088
7089 * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
7090
fd917e0d
JM
70912004-03-05 Jason Merrill <jason@redhat.com>
7092
7093 * tree.h (TYPE_HASH): Use TYPE_UID.
7094 (TREE_HASH): New macro with old definition of TYPE_HASH.
7095 * tree.c (build_type_attribute_variant): Use iterative_hash_object.
7096 (build_array_type, build_function_type): Likewise.
7097 (build_method_type_directly): Likewise.
7098 (build_offset_type, build_complex_type): Likewise.
7099 (type_hash_list, attribute_hash_list): Likewise. Now static.
7100 * except.c: s/TYPE_HASH/TREE_HASH/.
7101
822e895c
BW
71022004-03-05 Bob Wilson <bob.wilson@acm.org>
7103
7104 * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
7105 (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust
7106 __va_ndx by 2 words when referencing an argument on the stack.
7107 (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2
7108 words when an arg on the stack is first seen.
7109
2eb83715
PB
71102004-03-05 Paul Brook <paul@codesourcery.com>
7111
7112 * arm.h (ARM_FLAG_VFP): Remove.
7113 (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
7114 * netbsd-elf.h (ARM_FLAG_VFP): Remove.
7115
ce407aa9
PB
71162004-03-05 Paul Brook <paul@codesourcery.com>
7117
7118 * function.c (assign_parms): Include pretend alignment offset.
7119
019dd4ec
RK
71202004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7121
7122 * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
7123 FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
7124
33e70558
ILT
71252004-03-05 Ian Lance Taylor <ian@wasabisystems.com>
7126
7127 * configure.ac: When passing --enable-languages to subdir
7128 configure when host != build, make sure we don't pass an empty
7129 value.
7130 * configure: Regenerate.
7131
ab786753
NS
71322004-03-05 Nathan Sidwell <nathan@codesourcery.com>
7133
7134 PR 13577
7135 * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
7136 options.
7137
d2782048
PB
71382004-03-05 Paolo Bonzini <bonzini@gnu.org>
7139
7140 * simplify-rtx.c (simplify_relational_operation): If
7141 flag_wrapv is set, do not move terms between the two
7142 side of a relational operator.
7143
f894b69b
PB
71442004-03-05 Paolo Bonzini <bonzini@gnu.org>
7145
7146 * rtlanal.c: Include target.h and output.h
7147 (rtx_cost, address_cost, default_address_cost): Move from...
7148 * cse.c (rtx_cost, address_cost, default_address_cost):
7149 ... this file.
7150 * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
7151 * Makefile.in: Adjust dependencies.
7152
86caf04d
PB
71532004-03-05 Paolo Bonzini <bonzini@gnu.org>
7154
7155 * cse.c (cse_end_of_basic_block): Make static.
7156 * local-alloc.c (function_invariant_p): Move to
7157 reload1.c.
7158 * loop.c (libcall_other_reg, record_excess_regs):
7159 Make static.
7160 * reload1.c (function_invariant_p): Moved here
7161 from local-alloc.c, made static.
7162 * rtl.h (cse_end_of_basic_block, function_invariant_p,
7163 libcall_other_reg, record_excess_regs): Remove
7164 declarations.
7165
d0fe265e
KH
71662004-03-05 Kazu Hirata <kazu@cs.umass.edu>
7167
7168 * config/m32r/m32r.c (signed_comparison_operator): Add a
7169 missing parenthesis.
7170
ee0d75ef
ILT
71712004-03-04 Ian Lance Taylor <ian@wasabisystems.com>
7172
7173 * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
7174 going to call mmap again. Read the file into the right place.
7175 Give a fatal error if we have to relocate.
7176
6e5ff6e7
BW
71772004-03-04 Bob Wilson <bob.wilson@acm.org>
7178
7179 * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
7180 (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
7181
fc7b80e4
HPN
71822004-03-05 Hans-Peter Nilsson <hp@axis.com>
7183
fd9361f7 7184 PR other/14354
fc7b80e4
HPN
7185 * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
7186 round the same. When rounding, clear bits that would cause a
7187 second rounding in pack_d.
7188 (_fpmul_parts): Ditto. Remove #if 0:d code.
7189
b9e4e5d1
ZL
71902004-03-04 Ziemowit Laski <zlaski@apple.com>
7191
7192 PR c++/14425, c++/14426
7193 * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
7194 vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
7195 Change C++ definitions to accept a 'const int' argument;
7196 the prototypes already do.
7197 * config/rs6000/rs6000.c (rs6000_common_init_builtins):
7198 Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
7199 v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
7200 v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
7201 v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
7202 v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
7203 end in ..._int; change them to accept an int instead of a char
7204 as the last parameter.
7205
8653fed7
PE
72062004-03-04 Phil Edwards <phil@codesourcery.com>
7207
7208 * genmultilib: Change '=' to '-' when translating option names
7209 to directory names.
7210
daae8185
RK
72112004-03-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7212
7213 * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
7214 stack slot for temp used for result of BLKmode but in integral mode.
7215
f345f21a
JH
72162004-03-04 Jan Hubicka <jh@suse.cz>
7217
7218 * reload.c (find_reloads): Reorganize if seqeunce to switch.
7219
7220 * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty.
7221 (cfglayout_redirect_edge_and_branch): Set the source BB as dirty.
7222
aa42f99d
SE
72232004-03-04 Steve Ellcey <sje@cup.hp.com>
7224
7225 * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
7226 * testsuite/gcc.dg/20040303-1.c: New test.
7227
56bab446
SB
72282004-03-04 Steven Bosscher <stevenb@suse.de>
7229
7230 * ppro.md: Rewrite as a DFA pipeline description.
7231 * i386.md: Remove all uses of the ppro_uops attribute.
7232 * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
7233 ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
7234 ix86_sched_reorder, ix86_variable_issue,
7235 struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
7236 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
7237 (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
7238 (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
7239 * athlon.md (athlon_ssecmp_load): Fix comment
7240
5a26b329 72412004-03-04 Stuart Hastings <stuart@apple.com>
56bab446 7242
5a26b329
SH
7243 * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
7244
2e5d2af9 72452004-03-04 Stuart Hastings <stuart@apple.com>
56bab446 7246
2e5d2af9
SH
7247 * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
7248 686, tell Darwin assembler to allow prefetch insns, non-empty def
7249 of SUBTARGET_OPTION_TRANSLATE_TABLE.
7250
58f206d6
DD
72512004-03-04 DJ Delorie <dj@redhat.com>
7252
7253 PR optimization/14282
7254 * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
7255 between a call and the assignment of its return value.
7256
e9eba255
KH
72572004-03-04 Kazu Hirata <kazu@cs.umass.edu>
7258
7259 * config/h8300/h8300.c: Put a comment for every function.
7260
d3c40837
KH
72612004-03-04 Kazu Hirata <kazu@cs.umass.edu>
7262
7263 * config/h8300/h8300.md: Add comments about peephole2's.
7264
eb3d7f9d
SB
72652004-03-04 Steven Bosscher <stevenb@suse.de>
7266
7267 * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
7268
463301c3
JH
72692004-03-04 Jan Hubicka <jh@suse.cz>
7270
7271 * cfgcleanup.c (thread_jump): Update call of cselib_init.
7272 * cselib.c (cselib_record_memory): New static variable.
7273 (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
7274 Give up on memories when asked for.
7275 (cselib_init): Accept new argument.
7276 * cselib.h (cselib_init): Update prototype.
7277 * gcse.c (local_cprop_pass): Update call of cselib_init.
7278 * loop.c (load_mems): Update call of cselib_init.
7279 * postreload.c (reload_cse_regs_1): Update call of cselib_init.
7280 * sched-deps.c (sched_analyze): Update call of cselib_init.
7281
3b6ce0af
DE
72822004-03-04 David Edelsohn <edelsohn@gnu.org>
7283 GP <gp@qnx.com>
7284
7285 * config/rs6000/rs6000.c (output_function_profiler): Append @plt
7286 when compiling PIC.
7287
af931390
JZ
72882004-03-04 Josef Zlomek <zlomekj@suse.cz>
7289
7290 PR/14362
7291 * var-tracking.c (track_expr_p): Do not track variables which
7292 should be ignored for debugging purposes.
7293
ddc68564
AM
72942004-03-04 Alan Modra <amodra@bigpond.net.au>
7295
7296 * real.c (encode_ibm_extended): Don't bother rounding low double.
7297 * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
7298 when fmt->pnan < fmt->p.
7299
ca87076c
EC
73002004-03-04 Eric Christopher <echristo@redhat.com>
7301
7302 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
7303 only range of valid arg registers and fixed_regs.
7304
1a402dc1
AM
73052004-03-04 Alan Modra <amodra@bigpond.net.au>
7306
7307 PR target/14406
7308 * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
7309 (abstf2, abstf2_internal): New define_expand.
7310
6a2d136b
EB
73112004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
7312
7313 PR optimization/14235
7314 * expr.c (convert_move): Copy the source to a new pseudo
7315 when converting from a sub-word source to a larger-than-word
7316 register which conflicts with the source.
7317
3205a71e
ZW
73182004-03-03 Zack Weinberg <zack@codesourcery.com>
7319
7320 PR 13728
7321 * c-decl.c (diagnose_mismatched_decls): Issue an error for two
7322 parameters with the same name, unless one is a forward decl.
7323 Do not issue a redundant-redeclaration warning for forward
7324 decls of parameters.
7325
e8d8a034
DE
73262004-03-04 David Edelsohn <edelsohn@gnu.org>
7327
7328 * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
7329 configuration.
7330
ebe29bbf
ILT
73312004-03-03 Ian Lance Taylor <ian@wasabisystems.com>
7332
7333 * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
7334
7cd60054
AM
73352004-03-04 Alan Modra <amodra@bigpond.net.au>
7336
7337 * target-def.h (TARGET_OPTF): Delete.
7338 * c-opts.c (TARGET_OPTF): Define.
7339
e654c19e
JH
73402004-03-04 Jan Hubicka <jh@suse.cz>
7341
7342 * cselib.c (cselib_finish): Fix another miss-application of my previous
7343 patch.
7344
94d1613b
MS
73452004-03-03 Mike Stump <mrs@apple.com>
7346
7347 Add framework support for darwin.
7348
7349 * c-incpath.c: Include target.h and machmode.h.
7350 (add_path): Use a consistent style for cpp_dir. Initialize
7351 p->construct to 0.
7352 (add_cpp_dir_path): New.
7353 (register_include_chains): Add use of extra_includes callback.
7354 (hook_void_int): Add.
7355 (target_c_incpath): Add.
7356 * c-incpath.h (add_cpp_dir_path): New.
7357 (target_c_incpath_s): Add.
7358 (target_c_incpath): Add.
7359 (C_INCPATH_INIT): Add.
7360 * c-opts.c (c_common_missing_argument,
7361 c_common_handle_option): Add -F argument processing.
7362 * c.opt: Add -F argument processing.
7363 * gcc.c (trad_capable_cpp): Add -F argument processing.
7364 * cppfiles.c (find_file_in_dir): Update to use construct
7365 callback.
7366 (search_path_exhausted, cpp_get_path, cpp_get_buffer,
7367 cpp_get_prev): New.
7368 (_cpp_find_file): Use search_path_exhausted.
7369 (make_cpp_dir): Initialize construct to 0.
7370 * cpplib.h (missing_header_cb
7371 cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
7372 (cpp_callbacks): Add missing_header
7373 (cpp_dir): Add construct.
7374 * target-def.h: (TARGET_OPTF): New.
7375 * hooks.c (hook_void_int, hook_void_charptr): Add.
7376 * hooks.h (hook_void_int, hook_void_charptr): Add.
7377 * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
7378 $(MACHMODE_H) dependencies.
7379 * doc/invoke.texi (Darwin Options): Document -F.
7380 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
7381 (TARGET_OPTF): Add.
7382 * fix-header.c (target_c_incpath): Add.
7383
7384 * config/darwin-c.c: Add c-incpath.h include.
7385 (using_frameworks, find_subframework_file,
7386 find_subframework_header, add_system_framework_path,
7387 frameworks_in_use, num_frameworks, max_frameworks,
7388 add_framework, find_framework, struct framework_header,
7389 framework_header_dirs, framework_construct_pathname,
7390 find_subframework_file, add_system_framework_path,
7391 add_framework_path, framework_defaults,
7392 darwin_register_frameworks, find_subframework_header): Add.
7393 * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
7394 (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
7395 (CPP_SPEC): Add __APPLE_CC__ support.
7396 * t-darwin (darwin-c.o): Add c-incpath.h dependency.
7397
0fc0c4c9
JH
73982004-03-04 Jan Hubicka <jh@suse.cz>
7399
7400 * cselib.c (cselib_finish): Fix miss-application of my previous
7401 patch.
7402
67dfe110
KH
74032004-03-03 Kazu Hirata <kazu@cs.umass.edu>
7404
7405 * hooks.c (hook_tree_tree_identity): New.
7406 * hooks.h: Add a prototype for hook_tree_tree_identity.
7407 * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
7408 instead of MD_ASM_CLOBBERS.
7409 * system.h (MD_ASM_CLOBBERS): Poison.
7410 * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
7411 (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
7412 * target.h (gcc_target): Add md_asm_clobbers.
7413 * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
7414 (ix86_md_asm_clobbers): New.
7415 * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
7416 * doc/tm.texi (MD_ASM_CLOBBERS): Change to
7417 TARGET_MD_ASM_CLOBBERS.
7418
d79944f4 74192004-03-03 Stuart Hastings <stuart@apple.com>
67dfe110 7420
d79944f4 7421 * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
3205a71e 7422
fc9232c9
EB
74232004-03-03 Eric Botcazou <ebotcazou@libertysurf.fr>
7424
7425 * config/sparc/sparc.c (noov_compare64_op): Fix typo.
7426
7427 * config/sparc/sparc.h (ASM_FLOAT): Delete.
7428 (ASM_DOUBLE): Likewise.
7429 (ASM_LONGDOUBLE): Likewise.
7430 * config/sparc/pbd.h (ASM_INT_OP): Delete.
7431
b7048ab7
RH
74322003-03-03 Richard Henderson <rth@redhat.com>
7433
7434 PR opt/13862
7435 * cselib.c (cselib_record_sets): Don't record multiple sets in
7436 asm insns.
7437
f9957958
MH
74382004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
7439
7440 * common.opt: Add description of the new -fgcse-after-reload flag.
7441
7442 * flags.h (flag_gcse_after_reload): Declaration of global variable.
7443
7444 * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
7445 reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
7446 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
7447 get_bb_avail_insn, hash_scan_set_after_reload,
7448 compute_hash_table_after_reload, eliminate_partially_redundant_loads,
7449 gcse_after_reload, get_bb_avail_insn): New functions to implement
7450 gcse-after-reload.
7451 (gcse_after_reload_main): New function, the main entry point to
7452 gcse-after-reload.
7453
7454 * rtl.h (gcse_after_reload_main): Declaration of the new function.
7455
7456 * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
7457
7458 * toplev.c (flag_gcse_after_reload): Initialization.
7459
7460 * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
7461
7462 * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7463 PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
7464 the gcse after reload optimization.
7465
7466 * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7467 GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
7468 parameters.
7469
7470 * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
7471
6f6dedf5
NP
74722004-03-03 Nicolas Pitre <nico@cam.org>
7473
7474 * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
7475 small negative values.
7476
6790d1ab
JH
74772004-03-03 Jan Hubicka <jh@suse.cz>
7478
7479 * cselib.c (hash_table): Remove GTY marker.
7480 (reg_values): Turn into array.
7481 (used_regs): Likewise.
7482 (n_used_regs): New static variable.
7483 (reg_values_old): Kill.
7484 (clear_table): Update uses of arrays.
7485 (cselib_lookup): Likewise.
7486 (cselib_record_set): Likewise.
7487 (cselib_init): Likewise.
7488 (cselib_finish): Likewise.
7489 (cselib_udpate_varray_sizes): Kill.
7490 * cselib.h (cselib_update_varray_sizes): Kill.
7491
33e6a97a
PB
74922004-03-03 Paul Brook <paul@codesourcery.com>
7493
7494 * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
7495
b9dcdee4
JH
74962004-03-03 Jan Hubicka <jh@suse.cz>
7497
7498 * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
7499 Rename from ...; make statistics transparent.
7500 (ggc_alloc_cleared, ggc_realloc_stat): ... these.
7501 (loc_descriptor): New structure.
7502 (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
7503 add_statistics):
7504 New static function.
7505 (ggc_record_overhead, dump_statistics): New global function.
7506 * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
7507 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
7508 from ...; accept locations
7509 (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
7510 ggc_realloc, ggc_alloc_typed): ... this one.
7511 from ...; accept locations
7512 * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
7513 ggc_alloc_stat): Rename from ... ; pass locations
7514 * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
7515 ... this one.
7516 (ggc_alloc_stat): Record overehead.
7517 * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
7518 ggc_realloc, ggc_alloc_typed): Turn to macros
7519 (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
7520 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
7521 (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
7522 * langhooks.h (lhd_make_node): Declare.
7523 (LANG_HOOKS_MAKE_TYPE): Default to new function,
7524 * langhooks.c (lhd_make_node): New.
7525 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
7526 locations.
7527 (rtx_alloc, swallow_copy_rtx): ... this one.
7528 * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
7529 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
7530 * toplpev.c (finalize): Dump stats.
7531 * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
7532 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
7533 Rename from ... ; pass locators.
7534 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
7535 build?, build_decl): Declare.
7536 * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
7537 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
7538 Declare.
7539 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
7540 build?, build_decl): New macros.
7541 * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
7542 * statistics.h: New file.
7543
6ba7b547
MR
75442004-03-03 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
7545 Richard Sandiford <rsandifo@redhat.com>
7546
7547 * config/mips/mips.h (MASK_FIX_SB1): Bump.
7548 (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
7549 (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
7550 * config/mips/mips.c (mips_output_division): Fill the branch delay
7551 slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to
7552 TARGET_FIX_R4400.
7553 (mips_output_division): Adjust accordingly.
7554 (override_options): Make -march=r4400 imply -mfix-r4400 by default.
7555 * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
7556
ec8e098d
PB
75572004-03-03 Paolo Bonzini <bonzini@gnu.org>
7558
7559 * alias.c (rtx_equal_for_memref_p): Use predicates
7560 to test rtx classes and new rtx class codes, possibly
7561 splitting conditionals that tested against '<' and 'o'.
7562 * caller-save.c (save_call_clobbered_regs): Likewise.
7563 * combine.c (contains_muldiv, find_split_point, subst,
7564 combine_simplify_rtx, simplify_if_then_else,
7565 simplify_set, simplify_logical, expand_compound_operation,
7566 make_compound_operation, if_then_else_cond, known_cond,
7567 apply_distributive_law, cached_nonzero_bits,
7568 cached_num_sign_bit_copies, simplify_shift_const,
7569 gen_binary, simplify_comparison, update_table_tick,
7570 record_value_for_reg, get_lsat_value_validate): Likewise.
7571 * cse.c (mention_regs, find_best_addr, find_comparison_args,
7572 fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
7573 Likewise.
7574 * emit-rtl.c (copy_insn_1): Likewise.
7575 * expr.c (force_operand): Likewise.
7576 * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
7577 * flow.c (notice_stack_pointer_modification_1,
7578 invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
7579 and_reg_cond, elim_reg_cond): Likewise.
7580 * function.c (update_epilogue_consts): Likewise.
7581 * genattrtab.c (attr_rtx_1): Likewise.
7582 * genopinit.c (gen_insn): Likewise.
7583 * integrate.c (subst_constants): Likewise.
7584 * jump.c (reversed_comparison_code_parts,
7585 reversed_comparison_code, delete_related_insns,
7586 rtx_renumbered_equal_p): Likewise.
7587 * local-alloc.c (block_alloc): Likewise.
7588 * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
7589 canonicalize_condition): Likewise.
7590 * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
7591 Likewise.
7592 * optabs.c (add_equal_node, expand_binop): Likewise.
7593 * predict.c (estimate_probability): Likewise.
7594 * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
7595 * recog.c (validate_replace_rtx_1, comparison_operator,
7596 offsettable_address_p, constrain_operands): Likewise.
7597 * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
7598 Likewise.
7599 * regclass.c (scan_one_insn): Likewise.
7600 * regmove.c (stable_and_no_regs_but_for_p): Likewise.
7601 * regrename.c (kill_autoinc_value): Likewise.
7602 * reload.c (find_reusable_reload, find_reloads,
7603 reg_overlap_mentioned_for_reload_p): Likewise.
7604 * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
7605 * rtl.c (copy_rtx): Likewise.
7606 * rtl.h (CONSTANT_P, INSN_P): Likewise.
7607 * rtlanal.c (commutative_operand_precedence): Likewise.
7608 * sched-deps.c (conditions_mutex_p): Likewise.
7609 * sched-rgn.c (is_cfg_nonregular): Likewise.
7610 * simplify-rtx.c (simplify_gen_binary,
7611 simplify_gen_relational, simplify_replace_rtx,
7612 simplify_unary_operation, simplify_binary_operation,
7613 simplify_ternary_operation, simplify_rtx): Likewise.
7614 * unroll.c (reg_dead_after_loop): Likewise.
7615 * config/alpha/alpha.c (alpha_swapped_comparison_operator,
7616 print_operand): Likewise.
7617 * config/arc/arc.c (proper_comparison_operator): Likewise.
7618 * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
7619 Likewise.
7620 * config/avr/avr.c (_reg_unused_after): Likewise.
7621 * config/frv/frv.c (frv_ifcvt_modify_tests,
7622 frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
7623 * config/i386/i386.c (ix86_comparison_operator,
7624 ix86_carry_flag_operator, fcmov_comparison_operator,
7625 arith_or_logical_operator, print_operand,
7626 ix86_expand_binary_operator, ix86_binary_operator_ok):
7627 Likewise.
7628 * config/i386/i386.md: Likewise.
7629 * config/ia64/ia64.c (not_postinc_memory_operand,
7630 ia64_print_operand, update_set_flags, errata_emit_nops):
7631 Likewise.
7632 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
7633 CONSTRAINT_OK_FOR_S): Likewise.
7634 * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
7635 mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
7636 ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
7637 ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
7638 Likewise.
7639 * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
7640 eqne_comparison_operator, signed_comparison_operator):
7641 Likewise.
7642 * config/mips/mips.c (cmp_op, symbolic_expression_p):
7643 Likewise.
7644 * config/mmix/mmix (mmix_foldable_comparison_operator,
7645 mmix_comparison_operator): Likewise.
7646 * config/pa/pa.c (hppa_legitimize_address): Likewise.
7647 * config/rs6000/rs6000.c (stmw_operation,
7648 branch_comparison_operator, trap_comparison_operator,
7649 ccr_bit): Likewise.
7650 * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
7651 * config/s390/s390.c (s390_alc_comparison,
7652 s390_slb_comparison):L Likewise.
7653 * config/sh/sh.c (gen_block_redirect, reg_unused_after):
7654 Likewise.
7655 * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
7656 noov_compare_op, noov_compare64_op, v9_regcmp_op,
7657 emit_hard_tfmode_operation, reg_unused_after)
7658 * doc/md.texi, doc/rtl.texi: Likewise.
7659
7660 * ra-debug.c: Add 2004 to list of copyright years.
7661 * unroll.c: Likewise.
7662
7663 * combine.c (simplify_logical): Remove dummy test,
7664 (apply_distributive_law): Fix typo in comment.
7665 GET_CODE (x) == AND so x is a commutative binary op.
7666 * jump.c (delete_related_insns): simplify loop
7667 condition, move testing of RTX codes inside the loop.
7668 (rtx_renumbered_equal_p): do not use RTX_CODE.
7669 * rtl.c (rtx_class): Declare as enum rtx_class.
7670 * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
7671 Move to RTX_COMM_COMPARE class.
7672 (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
7673 Move to RTX_CONST_OBJ class.
7674 * rtl.h (enum rtx_class): New declaration,
7675 (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
7676 RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
7677 RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
7678 RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
7679 RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
7680 ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
7681 SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
7682 OBJECT_P): New macros.
7683 * config/sparc/sparc.c (noov_compare_op): Remove register
7684 from parameter.
7685
a841ab8b
KH
76862004-03-03 Kazu Hirata <kazu@cs.umass.edu>
7687
7688 * target.h: Remove texi jargons in comments.
7689
cb36ddba
KH
76902004-03-02 Kazu Hirata <kazu@cs.umass.edu>
7691
7692 * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
7693 threshold to 0x4f.
7694
7695 Revert:
7696 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
7697 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
7698 as well.
7699 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
7700 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
7701
66c87bae
KH
77022004-03-02 Kazu Hirata <kazu@cs.umass.edu>
7703
7704 * doc/md.texi (cbranchmode4): New.
7705
91e01231
EC
77062004-03-02 Eric Christopher <echristo@redhat.com>
7707
7708 * config/mips/mips16.S: Change fixsfsi and fixdfsi to
7709 fix_trunc.
7710 * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
7711 * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
7712 * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
7713 * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
7714
27ab3e91
RH
77152004-03-02 Richard Henderson <rth@redhat.com>
7716
3205a71e
ZW
7717 PR middle-end/11767
7718 * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
7719 * optabs.c (prepare_cmp_insn): Force trapping memories to registers
7720 before the compare, if flag_non_call_exceptions.
27ab3e91 7721
0eadce52
RH
77222004-03-02 Richard Henderson <rth@redhat.com>
7723
7724 PR middle-end/14327
7725 * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
7726 emitting the label, not after.
7727
de70723b
SC
77282004-03-02 Stephane Carrez <stcarrez@nerim.fr>
7729
7730 * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
7731 (m68hc11_mov_addr_mode): Likewise.
7732 (m68hc11_override_options): Initialize them based on target.
7733 (register_indirect_p): Allow a MEM for indirect addressing modes and
7734 use flags to control what is allowed.
7735 (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
7736 supported addressing modes.
7737 (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
7738 (go_if_legitimate_address_internal): Likewise.
7739 (m68hc11_indirect_p): Likewise and check the mode.
7740 (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
7741
d6da68b9
KH
77422004-03-02 Kazu Hirata <kazu@cs.umass.edu>
7743
7744 * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
7745 (expand_builtin_setjmp_setup): Use
7746 targetm.builtin_setjmp_frame_value instead of
7747 BUILTIN_SETJMP_FRAME_VALUE.
7748 * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
7749 * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
7750 (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
7751 * target.h (gcc_target): Add builtin_setjmp_frame_value.
7752 * targhooks.c (default_builtin_setjmp_frame_value): New.
7753 * targhooks.h: Add a prototype for
7754 default_builtin_setjmp_frame_value.
7755 * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
7756 TARGET_BUILTIN_SETJMP_FRAME_VALUE.
7757
d87e83b9
SC
77582004-03-02 Stephane Carrez <stcarrez@nerim.fr>
7759
7760 * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
7761 sequences of moves.
7762 (add peepholes): New peepholes to optimize sequences adding small
7763 constants.
7764 (bset peepholes): New peepholes to transform an OR in a bset form
7765 (bclr peepholes): Likewise for bclr form.
7766 (cmp peepholes): New peepholes to avoid register copies when comparing.
7767
d5111c9c
SC
77682004-03-02 Stephane Carrez <stcarrez@nerim.fr>
7769
7770 * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
7771 to separate push from moves.
7772 ("*pushdf_internal"): Likewise.
7773 ("*pushsf_internal"): Likewise.
7774 ("*pushsi_internal"): Likewise.
7775 ("movdi_internal"): Use define_insn_and_split; non push operand.
7776 ("movdf_internal"): Likewise.
7777 ("movsf_internal"): Likewise.
7778 ("movsi_internal"): Likewise.
7779 ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
7780 ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
7781 ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
7782
9449502d
SC
77832004-03-02 Stephane Carrez <stcarrez@nerim.fr>
7784
7785 * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
7786 ("cmphi_z_used", "cmpqi_z_used"): Likewise.
7787 ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
7788 ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
7789 ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
7790 ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
7791 ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
7792 ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
7793 ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
7794 ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
7795 ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
7796
b90f3299
SC
77972004-03-02 Stephane Carrez <stcarrez@nerim.fr>
7798
7799 * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
7800 (SOFT_XY_REGNUM): Define.
7801 (cmp split): Use the above instead of hard coded numbers.
7802 (8-bit op split): No need to check the mode; allow Q_REG.
7803 (ashift split): Adjust the first operand if it uses the SP and we
7804 are pushing the shifted value.
7805 (plus shift split): Fix when a source is in register D+X.
7806 ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
7807
77d2a36d
SC
78082004-03-02 Stephane Carrez <stcarrez@nerim.fr>
7809
7810 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
7811 comparing with Z register.
7812
f2dca510
ZD
78132004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7814
7815 * cfgloop.h (struct loop_desc): Removed.
7816 (struct loop): Fields simple, desc and has_desc removed.
7817 (simple_loop_p, count_loop_iterations): Declaration removed.
7818 * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
7819 (unmark_altered, blocks_invariant_registers, unmark_altered_insn
7820 blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
7821 invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
7822 simple_loop_exit_p, variable_initial_value, variable_initial_values,
7823 simple_condition_p, simple_increment, count_strange_loop_iterations,
7824 inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
7825 Removed.
7826 * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
7827
87ca8b8c
KH
78282004-03-02 Kazu Hirata <kazu@cs.umass.edu>
7829
7830 * genattrtab.c: Don't handle MATCH_INSN.
7831 * genrecog.c: Likewise.
7832 * gensupport.c: Likewise.
7833 * rtl.def (match_insn): Remove.
7834 * doc/md.texi (match_insn, match_insn2): Remove.
7835
bdc2893c
MM
78362004-03-02 Mark Mitchell <mark@codesourcery.com>
7837
7838 * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
7839 macro results in memory allocation.
7840
2de2f846
DB
78412004-03-02 David O'Brien <obrien@FreeBSD.org>
7842
7843 * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
7844 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
7845 %(fbsd_dynamic_linker),
7846 (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
7847 config/i386/freebsd.h
7848 * config/arm/freebsd.h: Ditto.
7849 * config/i386/freebsd.h: Ditto.
7850 * config/i386/freebsd64.h: Ditto.
7851 * config/ia64/freebsd.h: Ditto.
7852 * config/rs6000/sysv4.h: Ditto.
7853 * config/sparc/freebsd.h: Ditto.
7854
f08dc6c1
LR
78552004-03-02 Loren James Rittle <ljrittle@acm.org>
7856
7857 * gcc/doc/install.texi (*-*-freebsd*): Update target information.
7858
c24938d4
KH
78592004-03-02 Kazu Hirata <kazu@cs.umass.edu>
7860
7861 * rtl.def (define_combine): Remove.
7862
ba29f5de
KH
78632004-03-02 Kazu Hirata <kazu@cs.umass.edu>
7864
7865 * config/h8300/h8300.md: Tweak formatting.
7866
a5a0ab45
KH
78672004-03-02 Kazu Hirata <kazu@cs.umass.edu>
7868
7869 * config/h8300/h8300.md (*cmphi_h8300): Rename to
7870 *cmphi_h8300_znvc.
7871 (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
7872
e451301f
MM
78732004-03-01 Mark Mitchell <mark@codesourcery.com>
7874
7875 PR bootstrap/14356
7876 * gcc.c (process_command): Remove const-qualification from argv.
7877 (main): Likewise.
7878
b698e58b
KH
78792004-03-02 Kazu Hirata <kazu@cs.umass.edu>
7880
7881 * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
7882 pushqi1_h8300hs_advanced. Adjust its caller.
7883 (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
7884 Adjust its caller.
7885
a5c40cfb 78862004-03-02 Nicolas Roche <roche@act-europe.fr>
3a41db81
NR
7887
7888 * Makefile.in (install-libgcc, install-multilib): Pass
7889 mkinstalldirs var to libgcc.mk.
7890
fdf89bf5
KH
78912004-03-01 Kazu Hirata <kazu@cs.umass.edu>
7892
7893 * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
7894 * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
7895
0e26895c
KH
78962004-03-01 Kazu Hirata <kazu@cs.umass.edu>
7897
7898 * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
7899 * config/h8300/h8300.md: Split several peephole2's, each into
7900 two.
7901
738ed977
ZD
79022004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7903
7904 * dominance.c (recount_dominator): Handle postdominators.
7905
e245bd81
RS
79062004-03-01 Richard Sandiford <rsandifo@redhat.com>
7907
7908 * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
7909 (NUM_SYMBOL_TYPES): Likewise.
7910 (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
7911 (mips_unspec_address): Declare.
7912 (mips_gotoff_page, mips_gotoff_global): Delete.
7913 * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
7914 * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
7915 (mips_symbolic_constant_p, mips_symbolic_address_p)
7916 (mips_symbol_insns): Handle new symbol types.
7917 (general_symbolic_operand): New predicate.
7918 (mips_unspec_address): Make extern.
7919 (mips_gotoff_page, mips_gotoff_global): Delete.
7920 (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
7921 Handle new symbol types.
7922 * config/mips/mips.md (*lea_high64, *lea64): New patterns.
7923 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
7924 mips_unspec_address directly.
7925 * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
7926 the documentation of -mexplicit-relocs.
7927
9bf793f9
JL
79282004-03-01 Jeff Law <law@redhat.com>
7929
7930 * fold-const.c (fold): An equality comparison of a non-weak object
7931 against zero has a known result. Similarly an equality comparison
7932 of the address of two non-weak, unaliased symbols has a known result.
91e01231 7933
9bf793f9
JL
7934 * ggc-page.c (struct page_entry): New field PREV.
7935 (ggc_alloc): Update PREV field appropriately.
7936 (sweep_pages): Likewise.
7937 (ggc_free): Likewise. Use PREV field rather than loop to
7938 improve ggc_free performance.
91e01231 7939
c9e0ce37
RS
79402004-03-01 Richard Sandiford <rsandifo@redhat.com>
7941
7942 * config/mips/mips.c (mips_output_division): Use the division
7943 instruction to fill the delay slot of a zero check.
7944 (mips_idiv_insns): Adjust accordingly.
7945
65d151a7
NN
79462004-03-01 Nathanael Nerode <neroden@gcc.gnu.org>
7947
7948 * config.gcc: Create a default tmake_file for linux, and use
7949 it in all but two linux clauses. Comment those two.
7950
9a5a17f3
PB
79512004-03-01 Paolo Bonzini <bonzini@gnu.org>
7952
7953 * combine.c (try_combine): Do not refer to is_replaced.
7954 (gen_lowpart_for_combine): Perverse subregs now have a
7955 more politically correct name.
7956 * cse.c (cse_insn): Likewise.
7957 * jump.c: Fix bogus reference to delete_insn.
7958
c5b6f18e
MM
79592004-02-29 Mark Mitchell <mark@codesourcery.com>
7960
5bb2ed2c
MM
7961 PR debug/14328
7962 * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
7963 constants as signed values.
7964
c5b6f18e
MM
7965 PR middle-end/13448
7966 * c-tree.h (readonly_warning): Rename to ...
7967 (readonly_error): ... this.
7968 * c-typeck.c (build_unary_op): Adjust accordingly.
7969 (readonly_warning): Rename to ...
7970 (readonly_error): ... this and issue errors, not warnings.
7971 (build_modify_expr): Call readonly_error, not readonly_warning.
7972 (c_expand_asm_operands): Likewise.
7973 * tree-inline.c (optimize_inline_calls): Do not inline functions
7974 after errors have occurred.
7975
8bb915b6
NN
79762004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
7977
7978 * configure.ac: Rearrange some threading code for clarity;
7979 add section comment.
7980 * configure: Regenerate.
7981
4ee31f1e
KH
79822004-02-29 Kazu Hirata <kazu@cs.umass.edu>
7983
7984 * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
7985 typos.
7986 * doc/cppopts.texi: Fix a typo.
7987
15ec19b9
KH
79882004-02-29 Kazu Hirata <kazu@cs.umass.edu>
7989
7990 * config/i386/i386.md: Fix formatting.
7991
cbff2c1c
NN
79922004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
7993
630327c3
NN
7994 * configure.ac: Add some comments delineating sections of code.
7995
38fe9090
NN
7996 * doc/install.texi: Note that libada uses autoconf 2.57 also.
7997
42fce956
NN
7998 * doc/install.texi: Fix idiot typo in previous commit.
7999
cbff2c1c
NN
8000 * doc/install.texi: Update for conversion of intl to autoconf 2.57.
8001
c8574b54
KH
80022004-02-29 Kazu Hirata <kazu@cs.umass.edu>
8003
8004 * config/h8300/h8300.md: Add comments about peephole2's.
8005
2f537af9
KH
80062004-02-29 Kazu Hirata <kazu@cs.umass.edu>
8007
8008 * config/h8300/h8300.md: Tweak operand numbers of some
8009 peephole2's.
8010
a207f649
KH
80112004-02-29 Kazu Hirata <kazu@cs.umass.edu>
8012
8013 * config/h8300/h8300.md: Tweak comments about peephole2's.
8014
bc41842b
RS
80152004-02-29 Waldek Hebisch <hebisch@math.uni.wroc.pl>
8016
8017 PR middle-end/14203
8018 * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
8019 instead of testing whether DECL_RTL is not NULL.
8020
832a3292
KH
80212004-02-28 Kazu Hirata <kazu@cs.umass.edu>
8022
8023 * config/sh/sh.c: Fix formatting.
8024
508ea1c5
KH
80252004-02-28 Kazu Hirata <kazu@cs.umass.edu>
8026
8027 * config/sh/sh.c: Convert to ISO-C.
8028
dd833c7b 80292004-02-28 Andrew Pinski <pinskia@physics.uc.edu>
91e01231 8030
8cd6bdd1
AP
8031 * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
8032 my previous patch.
dd833c7b
AP
8033
8034 * config/darwin.h (machopic_finish): Output stub even if the
8035 symbol is already defined.
8036
5f190838
JDA
80372004-02-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8038
8039 * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
8040
c1a41c2f
KH
80412004-02-28 Kazu Hirata <kazu@cs.umass.edu>
8042
8043 * genattr.c (main): Don't define
8044 TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
8045 * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
8046 (DFA_PIPELINE_INTERFACE): Likewise.
8047 * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
8048 (DFA_PIPELINE_INTERFACE): Likewise.
8049
757f9053
RS
80502004-02-28 Richard Sandiford <rsandifo@redhat.com>
8051
8052 * config/mips/mips.md (tstsi, tstdi): Delete.
8053
23cf6987
MR
80542004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
8055
91e01231 8056 * config/mips/mips.c (override_options): Remove an obsolete
23cf6987
MR
8057 duplicate definition of the "e" constraint.
8058 * config/mips/mips.h: Update a comment accordingly.
8059
bddbfe5f
MR
80602004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
8061
8062 * config/mips/mips.md: Complete the unfinished R4000
8063 multiply/shift errata workaround. Improve documentation.
8064 (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
8065 has a hilo hazard.
8066 (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
8067 (muldi3, muldi3_internal): Likewise.
8068 (muldi3_internal2): Remove, replacing with...
8069 (muldi3_mult3, muldi3_r4000): ...these new patterns.
8070 (mulsidi3): Take the errata into account.
8071 (mulsidi3_32bit): Remove, replacing with...
8072 (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
8073 (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
8074 (umulsidi3): Take the errata into account.
8075 (umulsidi3_32bit): Remove, replacing with..
8076 (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
8077 (umulsi3_highpart, umulsi3_highpart_internal): Disable if
8078 TARGET_FIX_R4000.
8079 (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
8080 (smuldi3_highpart, umuldi3_highpart): Likewise.
8081 * doc/invoke.texi: Document the errata workaround.
8082
46490403
MR
80832004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
8084
8085 * config/mips/mips-protos.h (mips_idiv_insns): Declare.
8086 * config/mips/mips.h (MASK_FIX_SB1): Bump.
8087 (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
8088 (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
8089 * config/mips/mips.c (mips_idiv_insns): New function.
8090 (override_options): Make -march=r4000 imply -mfix-r4000 by default.
8091 (mips_output_division): Add a workaround for the R4000 divide/shift
8092 errata.
8093 * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
8094 the length of an "idiv" instruction.
8095 * doc/invoke.texi: Document the new switches.
8096
1b2c3767
KH
80972004-02-28 Kazu Hirata <kazu@cs.umass.edu>
8098
8099 * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
8100 TARGET_SCHED_IS_COSTLY_DEPENDENCE.
8101
79771cc4
ZD
81022004-02-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
8103
8104 PR optimization/14229
8105 * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
8106
68a1a5da
EB
81072004-02-28 Eric Botcazou <ebotcazou@act-europe.fr>
8108
8109 * fold-const.c (fold): Strip NOPs that change the signedness
8110 for RSHIFT too. Expand comment.
8111
a10016d3
ILT
81122004-02-27 Ian Lance Taylor <ian@wasabisystems.com>
8113
8114 PR optimization/7871
8115 * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
68a1a5da 8116 from or to call insns.
a10016d3
ILT
8117
81182004-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
8119
8120 PR optimization/7871
8121 * flow.c (propagate_one_insn): Interpret calls as setting global
8122 registers, not merely clobbering them.
8123
b30e1617 81242004-02-27 Dale Johannesen <dalej@apple.com>
a10016d3 8125
b30e1617
DJ
8126 * config/darwin.c (machopic_output_possible_stub_label): Remove.
8127 config/darwin-protos.h: Ditto.
8128 config/darwin.h: Remove call to it.
8129 * combine.c (distribute_notes): Do not place a REG_DEAD note
8130 when value is both set and used.
8131
bbc51dc2
KH
81322004-02-27 Kazu Hirata <kazu@cs.umass.edu>
8133
8134 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8135 as well.
8136 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8137 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8138
dedbabed
AP
81392004-02-27 Andrew Pinski <apinski@apple.com>
8140
8141 * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
8142 Speedup common case of the type values being in the same order.
8143
b6b979d4
SE
81442004-02-27 Steve Ellcey <sje@cup.hp.com>
8145
8146 * config/ia64/ia64.h (no-inline-float-divide): New option.
8147 * config/ia64/ia64.h (no-inline-int-divide): New option.
8148 * config/ia64/ia64.h (no-inline-sqrt): New option.
8149 (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
8150 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
8151 * config/ia64/ia64.c (ia64_override_options): Modify error
8152 checking for inlined division/sqrt.
8153
88462c42
KH
81542004-02-27 Kazu Hirata <kazu@cs.umass.edu>
8155
8156 * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
8157 ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
8158 value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
8159 config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
8160 copyright.
8161
53c428d0
PB
81622004-02-27 Paul Brook <paul@codesourcery.com>
8163
8164 * function.c (assign_parms): Don't count pretend args for alignment.
8165
f6db1481
RH
81662004-02-27 Richard Henderson <rth@redhat.com>
8167
8168 * passes.c: New file.
8169 * Makefile.in (OBJS-common): Add it.
8170 * diagnostic.c (rtl_dump_and_exit): Move decl ...
8171 * flags.h (rtl_dump_and_exit): ... here.
91e01231 8172 * output.h (size_directive_output, last_assemble_variable_decl):
f6db1481
RH
8173 Move from toplev.c.
8174 * rtl.h (reg_alloc): Move from toplev.c.
8175 * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
8176 struct dump_file_info, enum dump_file_index, dump_file_tbl,
8177 open_dump_file, close_dump_file, rest_of_decl_compilation,
8178 rest_of_type_compilation, rest_of_handle_final,
91e01231 8179 rest_of_handle_delay_slots, rest_of_handle_stack_regs,
f6db1481
RH
8180 rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
8181 rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
8182 rest_of_handle_regrename, rest_of_handle_reorder_blocks,
8183 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
91e01231 8184 rest_of_handle_tracer, rest_of_handle_if_conversion,
f6db1481
RH
8185 rest_of_handle_if_after_combine, rest_of_handle_web,
8186 rest_of_handle_branch_prob,
8187 rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
91e01231 8188 rest_of_handle_addressof, rest_of_handle_sibling_calls,
f6db1481
RH
8189 rest_of_handle_jump_bypass, rest_of_handle_inlining,
8190 rest_of_handle_null_pointer, rest_of_handle_combine,
8191 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
91e01231 8192 rest_of_handle_gcse, rest_of_handle_loop_optimize,
f6db1481
RH
8193 rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
8194 (decode_d_option): Use enable_rtl_dump_file.
8195 (compile_file, finalize, do_compile): Move profile+combine+graph
8196 cleanup to finish_optimization_passes.
8197 * toplev.h (init_optimization_passes, finish_optimization_passes,
8198 enable_rtl_dump_file): Declare.
8199
288dc1ea 82002004-02-27 Eric Botcazou <ebotcazou@act-europe.fr>
3205a71e 8201 Roger Sayle <roger@eyesopen.com>
288dc1ea
EB
8202
8203 * fold-const.c (fold): Revert 2004-02-25 change. Use the original
8204 operands to build a tree with swapped operands.
8205 * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
8206 'unsignedp' predicate to specify the signedness.
8207
a1105617
KH
82082004-02-27 Kazu Hirata <kazu@cs.umass.edu>
8209
8210 * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
8211 expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
8212 params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
8213 comment typos and formatting. Follow spelling conventions.
8214
d095928f
AH
82152004-02-26 Aldy Hernandez <aldyh@redhat.com>
8216
8217 * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
8218 fix_truncsfsi2.
8219
8220 * config/rs6000/spe.md: Delete spe_efsctuiz.
8221 Add spe_fixuns_truncsfsi2.
8222 Add spe_fix_truncsfsi2.
91e01231 8223
21526606
EC
82242004-02-26 Eric Christopher <echristo@redhat.com>
8225
8226 * c-lex.c (c_lex_string_translate): New variable.
8227 (lex_string): Use to determine string translation.
8228 * c-pragma.h: Prototype.
8229 * c-parse.in (start_string_translation): New. Set above.
8230 (stop_string_translation): Ditto.
8231 (attribute, attribute_list, asm_def, asm_stmt,
8232 asm_operand): Use above functions.
8233 * cp/parser.c (cp_parser_declaration): Translate strings
8234 unless token is RID_EXTERN. Set c_lex_string_translate
8235 for recursive use.
8236 (cp_parser_asm_definition): Only translate argument strings
8237 to asms.
8238 (cp_parser_asm_operand_list): Ditto.
8239 (cp_parser_attribute_list): Do not translate attribute strings.
8240
e8eebd31
KH
82412004-02-26 Kazu Hirata <kazu@cs.umass.edu>
8242
8243 * stmt.c (expand_start_case_dummy): Remove.
8244 * tree.h: Remove the corresponding prototype.
8245
8f2de5f1
KH
82462004-02-26 Kazu Hirata <kazu@cs.umass.edu>
8247
8248 * builtins.c (apply_args_register_offset): Remove.
8249 * tree.h: Remove the corresponding prototype.
8250
c7924937
KH
82512004-02-26 Kazu Hirata <kazu@cs.umass.edu>
8252
8253 * stor-layout.c (is_pending_size): Remove.
8254 * tree.h: Remove the corresponding prototype.
8255
ca0afc29
KH
82562004-02-26 Kazu Hirata <kazu@cs.umass.edu>
8257
8258 * recog.c (validate_replace_src): Remove.
8259 * recog.h: Remove the corresponding prototype.
8260
6c5caf00
KH
82612004-02-26 Kazu Hirata <kazu@cs.umass.edu>
8262
8263 * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
8264 MAYBE_REG_PARM_STACK_SPACE.
8265 * function.c: Likewise.
8266 * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
8267 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8268 * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
8269 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8270
17fd9cb9
KH
82712004-02-26 Kazu Hirata <kazu@cs.umass.edu>
8272
8273 * c-decl.c (c_expand_deferred_function): Remove.
8274 * c-tree.h: Remove the corresponding prototype.
8275
ec5de8d8
KH
82762004-02-26 Kazu Hirata <kazu@cs.umass.edu>
8277
8278 * postreload.c (reload_cse_move2add): Generate just a PLUS
8279 instead of an entire SET.
8280
5bbeea44
JH
82812004-02-26 Jan Hubicka <jh@suse.cz>
8282
8283 * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
8284 /pentium4m.
8285 * i386.c (override_options): Add support for new CPUs.
8286 * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
8287 (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
8288 constants.
8289 * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
8290
48c0150c
BW
82912004-02-26 Bob Wilson <bob.wilson@acm.org>
8292
8293 * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
8294
b178305d
EB
82952004-02-26 Eric Botcazou <ebotcazou@act-europe.fr>
8296
8297 * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
8298 (sparc_emit_fixunsdi): New prototype.
8299 * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
8300 (sparc_emit_fixunsdi): New function.
8301 * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
8302 operand 1. Pass SFmode to sparc_emit_floatunsdi.
8303 (floatunsdidf2): Use 'general_operand' for operand 1. Pass DFmode
8304 to sparc_emit_floatunsdi.
8305 (fixuns_truncsfdi2): New expander.
8306 (fixuns_truncdfdi2): Likewise.
8307
fb643f64
AM
83082004-02-26 Alan Modra <amodra@bigpond.net.au>
8309
8310 * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
8311 unless HAVE_cc0.
8312
4a4f95d9
RH
83132004-02-25 Richard Henderson <rth@redhat.com>
8314
8315 * explow.c (force_reg): Call mark_reg_pointer as appropriate.
8316 * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
8317 use (op0-op1) == 0 if op0 is a pointer.
8318 * config/alpha/alpha.md (cmpdi): Use some_operand.
8319 (three comparison combine splits): Remove.
8320
f6a76b9f
RH
83212004-02-25 Richard Henderson <rth@redhat.com>
8322
0d593f31 8323 PR c/12794
f6a76b9f
RH
8324 * c-common.c (handle_alias_attribute): Reject the attribute if
8325 current_function_decl is set.
8326
30500d84
KC
83272004-02-25 Kelley Cook <kcook@gcc.gnu.org>
8328
8329 * config.gcc: Add comment describing extra_gcc_objs.
8330 i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
8331 * configure.ac (extra_gcc_objs): New substitution variable.
8332 (host_extra_gcc_objs): Don't substitute.
8333 * configure: Regenerate.
8334 * Makefile.in: Use extra_gcc_objs.
8335
ed80fa2e
KC
83362004-02-25 Kelley Cook <kcook@gcc.gnu.org>
8337
8338 * doc/contrib.texi: Add an entry for myself.
8339
12c3874e
JH
83402004-02-25 Jan Hubicka <jh@suse.cz>
8341
8342 * basic-block.h (make_eh_edge, break_superblocks): Declare.
8343 * cfgbuild.c (make_eh_edge): Make global.
8344 * cfglayout.c (break_superblocks): Likewise; fix memory leak.
8345 * except.c (build_post_landing_pads, connect_post_landing_pads,
8346 dw2_build_landing_pads, sjlj_emit_function_enter,
21526606 8347 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
12c3874e
JH
8348 sjlj_build_landing_pads): Update CFG.
8349 (emit_to_new_bb_before): New function.
8350 (finish_eh_generation): Do not rebuild the CFG.
8351
7b79fe71
JDA
83522004-02-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8353
8354 * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
8355 target_cpu_default defines.
8356 * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
8357 * pa.h (TARGET_DEFAULT): Likewise.
8358
81fbecac
EB
83592004-02-25 Eric Botcazou <ebotcazou@act-europe.fr>
8360
8361 * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
8362 comparisons with regard to signedness.
8363
6f5b4f3e
RE
83642004-02-25 Richard Earnshaw <rearnsha@arm.com>
8365
8366 * arm.c (thumb_legitimize_address): New function.
8367 * arm-protos.h: Prototype it.
8368 * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
8369 (LEGITIMIZE_ADDRESS): Use it.
8370
4ab51fb5
R
83712004-02-25 J"orn Rennecke <joern.rennecke@superh.com>
8372
8373 * reload1.c (reload): Only spill eliminable register with multiple
8374 adjacent elimination alternatives if all alternatives fail.
8375
e1471c91
RE
83762004-02-25 Richard Earnshaw <rearnsha@arm.com>
8377
8378 * arm.c (arm_legitimate_index_p): For QImode the range of an offset
8379 is -4095...+4095 inclusive.
8380
94b18ec1
EB
83812004-02-25 Eric Botcazou <ebotcazou@libertysurf.fr>
8382
8383 * doc/install.texi (sparc-sun-solaris2* specific notes): Document
8384 the bootstrap failure with Sun CC 5.4 and 5.5.
8385
2e802a6f
KH
83862004-02-24 Kazu Hirata <kazu@cs.umass.edu>
8387
8388 * cse.c (cse_change_cc_mode_insns): Stop at any instruction
8389 which modifies NEWREG.
8390 (cse_condition_code_reg): Update the mode of CC_REG in
8391 CC_SRC_INSN on our own.
8392
89ab2b79
MM
83932004-02-24 Michael Matz <matz@suse.de>
8394
8395 * config/i386/i386.c (ix86_comp_type_attributes): Check for
8396 regparm attributes.
8397
c263766c
RH
83982004-02-24 Richard Henderson <rth@redhat.com>
8399
8400 * toplev.c (dump_file_tbl): Rename from dump_file.
8401 * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
c53bdcf5 8402 cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
c263766c
RH
8403 config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
8404 config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
8405 loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
8406 ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
8407 toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
8408 s/rtl_dump_file/dump_file/g.
8409
dba2921d
AH
84102004-02-24 Aldy Hernandez <aldyh@redhat.com>
8411
3205a71e
ZW
8412 * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
8413 (spe_fixuns_truncsfsi2): Delete.
dba2921d 8414
3205a71e
ZW
8415 * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
8416 (fixuns_truncsfsi2): Delete.
dba2921d 8417
173cd571
JZ
84182004-02-24 Josef Zlomek <zlomekj@suse.cz>
8419
8420 PR/14240
8421 * rtlanal.c (replace_label): Fix replacing labels in constant pool.
8422
8db4d7a1
GK
84232004-02-24 Geoffrey Keating <geoffk@apple.com>
8424
8425 * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
8426
896c3aa3
JM
84272004-02-24 Jason Merrill <jason@redhat.com>
8428
8429 * tree.c (check_qualified_type): New fn.
8430 (get_qualified_type): Use it. If type already has the desired
8431 quals, just return it.
8432 * tree.h: Declare it.
896c3aa3 8433
58565a33
SKG
84342003-02-24 Sanjiv Kumar Gupta <sanjivg@noida.hcltech.com>
8435
8436 * target-def.h (TARGET_SCHED_INIT_GLOBAL,
8437 TARGET_SCHED_FINISH_GLOBAL): New macros.
8438
8439 * target.h (md_init_global, md_finish_global): Function
8440 declarations corresponding to new target macros.
8441
8442 * haifa-sched.c (sched_init, sched_finish): Allow target to
8443 call the new schedular hooks.
8444
8445 * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
8446 call to update_life_info.
8447
8448 * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
8449 flag_schedule_insns for SH4.
8450
8451 * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
8452 find_set_regmode_weight, find_insn_regmode_weight,
8453 find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
8454 sh_variable_issue, high_pressure, ready_reorder,
8455 rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
8456 functions used to throttle the insn movement in first
8457 scheduling pass for SH.
8458
8459 * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
8460 TARGET_SCHED_FINISH_GLOBAL.
8461
34208acf
AO
84622004-02-24 Alexandre Oliva <aoliva@redhat.com>
8463
8464 Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
8465 2004-02-05 Alexandre Oliva <aoliva@redhat.com>
8466 * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
8467 symbols in sections named by the user.
8468 2004-01-30 Alexandre Oliva <aoliva@redhat.com>
8469 * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
8470 2004-01-27 Alexandre Oliva <aoliva@redhat.com>
8471 * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
8472 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
8473 the above.
8474 2004-01-20 Alexandre Oliva <aoliva@redhat.com>
8475 * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
8476 one more pseudo to further improve code generation.
8477 2004-01-19 Alexandre Oliva <aoliva@redhat.com>
8478 * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
8479 inside UNSPEC.
8480 2004-01-16 Alexandre Oliva <aoliva@redhat.com>
8481 * config/frv/frv.c (frv_legitimate_address_p): Added
8482 allow_double_reg_p argument. Adjust all callers. Use it to
8483 decide whether to enable double-register indirect addressing.
8484 (frv_funcdesc_alias_set): Remove.
8485 (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
8486 register. Emit movdi_ldd.
8487 (ldd_address_operand): New.
8488 * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
8489 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
8490 (PREDICATE_CODES): Add ldd_address_operand.
8491 * config/frv/frv.md (movdi_ldd): New.
8492 (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
8493 intermediate computations if possible.
8494 (symGOTOFF2reg_i): Fix harmless typo.
8495 2003-12-18 Alexandre Oliva <aoliva@redhat.com>
8496 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
8497 relocated p_vaddr to vaddr type.
8498 * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
8499 * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
8500 (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
8501 MEM, or use a funcdesc alias set. Use regular move instead of
8502 ldd.
8503 (dbl_memory_one_insn_operand): Recognize function descriptors by
8504 type or by alias set, and don't split them.
8505 * config/frv/frv.md (call, call_value): Never use call_internal
8506 for fdpic.
8507 (call_internal, call_value_internal): Never match for FDPIC.
8508 (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
8509 call_value_fdpicsi): Require FDPIC.
8510 (ldd): Removed.
8511 2003-12-17 Alexandre Oliva <aoliva@redhat.com>
8512 * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
8513 * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
8514 (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
8515 FDPIC. Compute data base address.
8516 * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
8517 before the other self-specs are processed.
8518 * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
8519 Build with -fPIC.
8520 2003-12-15 Alexandre Oliva <aoliva@redhat.com>
8521 * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
8522 inhibit_libc is defined.
8523 2003-12-12 Alexandre Oliva <aoliva@redhat.com>
8524 * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
8525 __FRV_FDPIC__.
8526 (__RELOC_POINTER): Define.
8527 (_Unwind_IteratePhdrCallback): Use it.
8528 * config/frv/frv.h (Twrite): Define.
8529 (TRANSFER_FROM_TRAMPOLINE): Use it.
8530 * config/frv/linux.h (INVOKE__main): Undefine.
8531 (Twrite): Override.
8532 2003-12-05 Richard Sandiford <rsandifo@redhat.com>
8533 * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
8534 (-mlibrary-pic): Emphasize that this option generates EABI code.
8535 (-mcpu): Add fr550.
8536 (-mpack): Remove.
8537 2003-11-30 Alexandre Oliva <aoliva@redhat.com>
8538 * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
8539 and CONSTs in FDPIC mode.
8540 * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
8541 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
8542 * config/frv/frv.c (move_source_operand): Don't accept symbolic
8543 constants.
8544 * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
8545 rather than 'i' constraint for the 2-instruction alternative.
8546 (*movsi_2word): New, incorporating existing int_2word_operand splitter.
8547 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
8548 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
8549 EXTRA_CONSTRAINT_FOR_Y.
8550 (EXTRA_CONSTRAINT): Remove handling of 'Y'.
8551 * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
8552 (addsi3): Change 'Y' constraint to 'Q'.
8553 2003-11-27 Richard Sandiford <rsandifo@redhat.com>
8554 * reload.c (CONST_POOL_OK_P): New macro.
8555 (find_reloads): Use it to decide whether a constant can be forced
8556 into memory.
8557 * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
8558 constant satisfies got12_operand.
8559 (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
8560 (frv_legitimate_address_p): Check for valid unspec offsets using
8561 got12_operand rather than frv_legitimate_fdpic_operand_p.
8562 (frv_legitimate_fdpic_operand_p): Delete.
8563 (frv_emit_movsi): Abort if we try to use the FDPIC register during
8564 or after reload.
8565 (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
8566 TARGET_FDPIC.
8567 * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
8568 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
8569 * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
8570 (frv_fdpic_fptr_operand): Don't declare here.
8571 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
8572 rather than fdpic_got12_operand.
8573 (PREDICATE_CODES): Remove symbolic_operand entry. Add entries for
8574 got12_operand and const_unspec_operand.
8575 * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
8576 (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
8577 (symbolic_operand): Remove.
8578 (const_unspec_operand): New predicate.
8579 * config/frv/frv.md (*movsi_got): Use got12_operand.
8580 (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
8581 2003-11-18 Richard Sandiford <rsandifo@redhat.com>
8582 * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
8583 * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
8584 * config/frv/frv.c (frv_unspec): New structure.
8585 (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
8586 (frv_print_operand_memory_reference): Use frv_const_unspec_p to
8587 validate CONST indices. Use frv_output_const_unspec to print them.
8588 (frv_print_operand): Update call to unspec_got_name. Use
8589 frv_output_const_unspec to print constant unspecs.
8590 (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
8591 Reject UNSPECs otherwise.
8592 (unspec_got_name): Take the relocation number as argument, not an
8593 rtx containing it.
8594 (frv_output_addr_const_extra): Remove, replacing with...
8595 (frv_output_const_unspec): ...this new function.
8596 (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
8597 (gpr_or_int12_operand): Use fdpic_got12_operand.
8598 (dbl_memory_one_insn_operand): Likewise.
8599 (fdpic_got12_operand): Use frv_const_unspec_p.
8600 (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
8601 are already legitimate. Use frv_small_data_reloc_p when deciding
8602 whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
8603 2003-11-18 Alexandre Oliva <aoliva@redhat.com>
8604 * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
8605 * config/frv/libgcc-frv.ver: ... frv-specific symbols. New file.
8606 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
8607 label, for real this time.
8608 * config/frv/frv.c (frv_local_funcdesc_p): Update to new
8609 representation of visibility.
8610 (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
8611 such.
8612 2003-11-17 Richard Sandiford <rsandifo@redhat.com>
8613 * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
8614 (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
8615 * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
8616 it was explicitly disabled.
8617 (frv_stack_info): There is no need to save the link register in every
8618 frame unless TARGET_LINKED_FP is true.
8619 (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
8620 frame pointer if the stack pointer might change value.
8621 (frv_return_addr_rtx): Check and process "count" argument.
8622 2003-11-14 Richard Sandiford <rsandifo@redhat.com>
8623 * config/frv/frv-protos.h (frv_legitimize_address): Remove.
8624 (frv_find_base_term): Declare.
8625 * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
8626 (FIND_BASE_TERM): Define.
8627 (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
8628 small_data_register_operand, small_data_symbolic_operand. Add
8629 symbolic_operand.
8630 * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
8631 (frv_print_operand_memory_reference, output_move_single): Remove
8632 special handling for unlegitimized sdata addresses.
8633 (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
8634 and symbolic addresses.
8635 (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
8636 (frv_find_base_term): New function.
8637 (int_2word_operand): Check specifically for symbolic address constants.
8638 (pic_register_operand, pic_symbolic_operand): Delete.
8639 (small_data_register_operand, small_data_symbolic_operand): Delete.
8640 (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
8641 Allow UNSPEC_GOT constants if !TARGET_FDPIC.
8642 (move_source_operand): Only accept CONSTs if they're a two-insn
8643 symbolic constant.
8644 (fdpic_got12_operand): Don't require TARGET_FDPIC.
8645 (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
8646 using gen_symGOTOFF2reg*.
8647 (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
8648 (frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs
8649 themselves a cost of 3 insns.
8650 * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
8651 Change predicate to symbolic_operand.
8652 (*movsi_high_got, *movsi_lo_sum_got): Likewise.
8653 (*movsi_lda_sdata): Delete.
8654 (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
8655 2003-11-05 Alexandre Oliva <aoliva@redhat.com>
8656 * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
8657 frv-*-*linux*.
8658 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
8659 label.
8660 * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
8661 -multilib-library-pic.
8662 (LINK_SPEC): Add -z text for -mfdpic.
8663 * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
8664 * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
8665 * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
8666 Override.
8667 (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
8668 FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
8669 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
8670 crtstuff-generated files.
8671 2003-10-31 Alexandre Oliva <aoliva@redhat.com>
8672 * config.gcc: Add frv-*-*linux*.
8673 * config/frv/linux.h, config/frv/t-linux: New.
8674 2003-10-06 Alexandre Oliva <aoliva@redhat.com>
8675 * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
8676 when -mfdpic even if a linker script is explicitly listed.
8677 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
8678 * config/frv/frv.c (frv_override_options): Clear asm_out
8679 unaligned_op for SImode on FDPIC.
8680 (frv_emit_movsi): Use compute_reloc_for_constant to compute the
8681 argument passed to decl_readonly_section.
8682 (frv_assemble_integer): Revert 2003-09-30's change, but make the
8683 whole block run with FDPIC even with -fno-PIC.
8684 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
8685 * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
8686 symbol or label plus offset to memory.
8687 (frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit
8688 GOTOFF and GPREL for LABEL_REF.
8689 * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
8690 -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
8691 (MASK_GPREL_RO, TARGET_GPREL_RO): New.
8692 (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
8693 * doc/invoke.texi: Document them.
8694 2003-09-30 Alexandre Oliva <aoliva@redhat.com>
8695 * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
8696 (frv_splittable_got_operand): Removed.
8697 * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
8698 LO_SUM. Add comments.
8699 (frv_override_options): Moved enabling of FDPIC to
8700 DRIVER_SELF_SPECS. Don't enable MASK_DWORD.
8701 (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
8702 (frv_legitimize_fdpic_address): Don't duplicate logic in
8703 frv_emit_movsi.
8704 (frv_gen_GPsym2reg): New.
8705 (unspec_got_name): Added gprel.
8706 (frv_expand_fdpic_call): Add support for inlining PLTs.
8707 (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
8708 (gpr_or_int12_operand): Added GPREL12.
8709 (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
8710 (small_data_symbolic_operand): Fail if FDPIC.
8711 (fdpic_splittable_got_operand): Removed.
8712 (fdpic_got12_operand): Added GPREL12.
8713 (frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL
8714 when appropriate. Fix sdata GOTOFF.
8715 (frv_legitimate_constant_p): Require legitimate PIC operand for
8716 FDPIC with pic, but only a legitimate fdpic operand for non-pic.
8717 (frv_assemble_integer): Move FDPIC funcdesc handling out of
8718 flag_pic case.
8719 (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
8720 frv_assemble_integer fails.
8721 * config/frv/frv.h (DRIVER_SELF_SPECS): New.
8722 (SUBTARGET_DRIVER_SELF_SPECS): New.
8723 (ASM_SPEC): Don't pass -mno-fdpic.
8724 (LINK_SPEC): Pass -melf32frvfd for FDPIC.
8725 (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
8726 (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
8727 -multilib-library-pic.
8728 (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
8729 condexec_si_media_operator, condexec_sf_add_operator and
8730 condexec_sf_conv_operator. Removed condexec_sf_binary_operator
8731 and condexec_sf_unary_operator.
8732 * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
8733 New.
8734 (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
8735 movsi_internal. Give them internal names. movsi_got has type
8736 int.
8737 (fdpic got splitters): Remove.
8738 (symGPREL2reg, symGPREL2reg_hilo): New.
8739 * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
8740 to -mlibrary-pic. Map -multilib-library-pic to it.
8741 * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
8742 Document.
8743 2003-09-28 Alexandre Oliva <aoliva@redhat.com>
8744 * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
8745 (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
8746 (frv_cannot_force_const_mem): New function.
8747 (const_small_data_p, plus_small_data_p): Update comments on sdata
8748 on FDPIC.
8749 (frv_override_options): Set flag_pie for FDPIC too.
8750 (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
8751 call-saved registers on FDPIC.
8752 (frv_stack_info): Don't preserve the PIC register on FDPIC, and
8753 don't force LR to be preserved.
8754 (frv_expand_prologue): Likewise.
8755 (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
8756 (frv_frame_pointer_required): Don't force it just because the
8757 FDPIC register is used.
8758 (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
8759 operand only if !condexec_p.
8760 (frv_legitimize_address): Return the FDPIC-legitimized address.
8761 Don't match small data here on FDPIC.
8762 (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
8763 symbols. Use TRUE/FALSE instead of 1/0.
8764 (frv_local_funcdesc_p): New.
8765 (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
8766 immediates when possible.
8767 (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
8768 (dbl_memory_one_insn_operand): Accept addresses that add a REG and
8769 an UNSPEC_GOT.
8770 (frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and
8771 12-bit immediates when possible.
8772 (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
8773 are not legitimate pic operands.
8774 (frv_in_small_data_p): Re-enable for FDPIC.
8775 * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
8776 (FRV_GLOBAL_P): Removed.
8777 * config/frv/frv.md: Add modes to CONSTs.
8778 (movsi_got): New.
8779 (movsi_lo_sum_got): Use separate matches instead of match_dup.
8780 (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
8781 (fdpic splittable operations): Match on flag_pic != 1.
8782 2003-09-22 Alexandre Oliva <aoliva@redhat.com>
8783 * config/frv/frv.c (frv_asm_out_constructor,
8784 frv_asm_out_destructor): Pass to frv_assemble_integer the size in
8785 bytes, not bits.
8786 2003-09-19 Alexandre Oliva <aoliva@redhat.com>
8787 * config/frv/frv.c (frv_assemble_integer): Reject complex
8788 expressions referencing function SYMBOL_REFs.
8789 * config/frv/frv.c (frv_function_symbol_referenced_p): New.
8790 (move_source_operand): Reject CONSTs that reference function
8791 SYMBOL_REFs on FDPIC.
8792 (frv_emit_movsi): If we get such a CONST, break it up.
8793 * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
8794 (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
8795 * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
8796 MEM.
8797 (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
8798 (frv_trampoline_size): Increase for FDPIC.
8799 * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
8800 (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
8801 * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
8802 Disable use of GOTOFF for now.
8803 (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
8804 Disable use of small data in FDPIC for now.
8805 (frv_asm_output_mi_thunk): Implement for FDPIC.
8806 * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
8807 * config/frv/frv.c (frv_asm_out_constructor): Use
8808 frv_assemble_integer for FDPIC pointers.
8809 (frv_asm_out_destructor): Likewise.
8810 * config/frv/frv.md (ldd): Fix order of operands. Use
8811 address_operand for input.
8812 2003-09-18 DJ Delorie <dj@redhat.com>
8813 * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
8814 (unspec_got_name): Correct typo.
8815 (frv_emit_movsi): Pre-expand splittable GOTs.
8816 (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
8817 * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
8818 (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
8819 * config/frv/t-frv: Add -mfdpic multilibs.
8820 * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
8821 (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
8822 * config/frv/frv.c (frv_override_options): -mfdpic assumes
8823 flag_pic, default to 32-bit pics, require DWORD ops.
8824 (frv_override_options): Add W and Z constraints.
8825 (frv_expand_prologue): No pic prologue for -mfdpic.
8826 (frv_asm_output_mi_thunk): Support -mfdpic (soon).
8827 (frv_print_operand_memory_reference): Handle GOT constants.
8828 (frv_legitimate_address_p): Allow GOT constants.
8829 (frv_legitimize_address): Handle GOT addresses too.
8830 (frv_legitimate_fdpic_operand_p): New.
8831 (frv_legitimize_fdpic_address): New.
8832 (unspec_got_name): New.
8833 (frv_output_addr_const_extra): New.
8834 (frv_expand_fdpic_call): New.
8835 (frv_fdpic_fptr_operand): New.
8836 (gpr_or_int12_operand): Handle GOT operands.
8837 (int_2word_operand): Handle GOT operands.
8838 (fdpic_operand): New.
8839 (fdpic_splittable_got_operand): New.
8840 (fdpic_got12_operand): New.
8841 (frv_emit_movsi): Handle GOT operands.
8842 (frv_assemble_integer): -mfdpic doesn't use rofixups.
8843 (frv_print_operand): Support 'g' code for GOT operands.
8844 * config/frv/frv-protos.h: Add prototypes as needed.
8845 * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
8846 R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
8847 R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
8848 R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
8849 R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
8850 R_FRV_GOTOFFLO): New.
8851 (movsi_high_got, movsi_lo_sum_got): New.
8852 (*movsi_pic): Don't use this splitter for -mfdpic.
8853 (addsi3): Allow GOT references also.
8854 (call, call_value): Handle -mfdpic separately.
8855 (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
8856 call_value_fdpicsi): New.
8857 (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
8858 symGOTOFF2reg_i): New.
8859 * config/frv/frv.h (MASK_FDPIC): New.
8860 (TARGET_FDPIC): New.
8861 (TARGET_SWITCHES): Add -mfdpic.
8862 (FDPIC_FPTR_REGNO): New.
8863 (FDPIC_REGNO): New.
8864 (OUR_FDPIC_REG): New.
8865 (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
8866 FDPIC_CALL_REGS.
8867 (REG_CLASS_NAMES): Likewise.
8868 (REG_CLASS_CONTENTS): Likewise.
8869 (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
8870 (EXTRA_CONSTRAINT): Add it here.
8871 (FRV_GLOBAL_P): New.
8872 (OUTPUT_ADDR_CONST_EXTRA): New.
8873
7e26b0e3
KH
88742004-02-24 Kazu Hirata <kazu@cs.umass.edu>
8875
8876 * config/sparc/sparc.h: Remove commented-out definitions of
8877 TARGET_EDOM and GEN_ERRNO_RTX.
8878
b57f2e10
KH
88792004-02-24 Kazu Hirata <kazu@cs.umass.edu>
8880
8881 * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
8882 df_analyse with df_analyze.
8883
cb7c3c3f
AM
88842004-02-24 Alan Modra <amodra@bigpond.net.au>
8885
8886 * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
8887 beginning of block.
8888
3638733b
JW
88892004-02-23 James E Wilson <wilson@specifixinc.com>
8890
238470bd 8891 * calls.c (precompute_arguments): Update comment.
3638733b 8892
fa0ac78a
KH
88932004-02-23 Kazu Hirata <kazu@cs.umass.edu>
8894
8895 * et-forest.c: Replace et_occurences with et_occurrences.
8896
6d4e0ecc
KH
88972004-02-23 Kazu Hirata <kazu@cs.umass.edu>
8898
8899 * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
8900 with iv_analyze.
8901
9e200aaf
KC
89022004-02-23 Kelley Cook <kcook@gcc.gnu.org>
8903
8904 * config/i386/i386.c: Rename pni to sse3.
8905 * config/i386/i386.h: Likewise.
3205a71e 8906 * config/i386/i386.md: Likewise.
9e200aaf
KC
8907 * config/i386/pmmintrin.h: Likewise.
8908 * doc/extend.texi: Likewise.
8909 * doc/invoke.texi: Likewise.
8910
3521b33c
ZW
89112004-02-23 Zack Weinberg <zack@codesourcery.com>
8912 Kazu Hirata <kazu@cs.umass.edu>
8913
8914 Remove -fwritable-strings.
8915 * c-common.c (fix_string_type): Don't check
8916 flag_writable_strings.
8917 (fix_string_type): Likewise.
8918 * c-opts.c (set_std_c89): Don't initialize
8919 flag_writable_strings.
8920 (set_std_c99): Likewise.
8921 * common.opt (fwritable-strings): Remove.
8922 * flags.h: Remove the external declaration of
8923 flag_writable_strings.
8924 * opts.c (common_handle_option) <OPT_fwritable_strings>:
8925 Remove.
8926 * toplev.c (flag_writable_strings): Remove.
8927 (f_options): Remove an entry for writable-strings.
8928 * varasm.c (const_hash_1) <STRING_CST>: Don't check
8929 flag_writable_strings.
8930 (compare_constant) <STRING_CST>: Likewise.
8931 (build_constant_desc): Likewise.
8932 * config/darwin.c (machopic_select_section): Likewise.
8933 * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
8934 * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
8935 * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
8936 * config/mips/mips.c (mips_select_section): Likewise.
8937 (mips_encode_section_info): Likewise.
8938 * config/pa/pa.c (pa_select_section): Likewise.
8939 * config/pa/pa.h (TEXT_SPACE_P): Likewise.
8940 * config/v850/v850.c (v850_select_section): Likewise.
8941 * doc/invoke.texi (-fwritable-strings): Remove.
8942 (-fno-const-strings): Don't mention -fwritable-strings.
8943 * doc/trouble.texi: Don't mention -fwritable-strings.
8944
eb6bddf6
NN
89452003-02-23 Nathanael Nerode <neroden@gcc.gnu.org>
8946
8947 * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
8948
e0740893
DJ
89492004-02-23 Dale Johannesen <dalej@apple.com>
8950
8951 * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
8952 (movdf_hardfloat64): Ditto.
8953 (movdf_softfloat64): Ditto.
8954
e91fa876 89552004-02-23 Fariborz Jahanian <fjahanian@apple.com>
3205a71e 8956 * config/rs6000/rs6000.c (function_arg): call to
e91fa876 8957 rs6000_mixed_function_arg for DFmode moved to allow
21526606 8958 normal DFmode incoming register assignment.
e91fa876 8959
ae6669e7
DJ
89602004-02-23 Dale Johannesen <dalej@apple.com>
8961
8962 * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
8963 (movdf_hardfloat64): Ditto.
8964
2a9f2ad3
KH
89652004-02-23 Kazu Hirata <kazu@cs.umass.edu>
8966
8967 * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
8968 config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
8969 copyright.
8970
aa5fa0fc
AP
89712004-02-23 Andrew Pinski <pinskia@physics.uc.edu>
8972
a2f1f4c3
AP
8973 PR c/14156
8974 * c-typeck.c (c_expand_return): Change check for VAR_DECL
8975 to use DECL_P instead.
8976
aa5fa0fc
AP
8977 * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
8978 * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
8979
221ee7c9
KH
89802004-02-23 Kazu Hirata <kazu@cs.umass.edu>
8981
8982 * Makefile.in (opts.o): Depend on target.h.
8983 * opts.c (decode_options): Use targetm.default_short_enums
8984 instead of DEFAULT_SHORT_ENUMS.
8985 * system.h (DEFAULT_SHORT_ENUMS): Poison.
8986 * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
8987 (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
8988 * target.h (gcc_target): Add default_short_enums.
8989 * config/cris/cris.h: Remove a comment about
8990 DEFAULT_SHORT_ENUMS.
8991 * config/ip2k/ip2k.h: Likewise.
8992 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
8993 TARGET_DEFAULT_SHORT_ENUMS. Update the description.
8994
bba745c1 89952004-02-23 Eric Botcazou <ebotcazou@libertysurf.fr>
3205a71e 8996 Falk Hueffner <falk@debian.org>
bba745c1
EB
8997
8998 PR c/14188
8999 * builtins.c (expand_builtin_va_arg): Emit an informative message
9000 if a trap is generated.
9001 * c-typeck.c (build_function_call): Likewise.
9002
c2cd64b5
JJ
90032004-02-22 Jakub Jelinek <jakub@redhat.com>
9004
9005 * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
9006 fopen.
9007 * libgcov.c: Include sys/stat.h.
9008 * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
9009 * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
9010 * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
9011 * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
9012
fcfcb20e
KH
90132004-02-22 Kazu Hirata <kazu@cs.umass.edu>
9014
9015 * reorg.c: Remove comments about dead ports.
9016
56d03a40
CF
90172004-02-22 Christopher Faylor <cgf@redhat.com>
9018
9019 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
9020 extra host object file when targetting cygwin rather than generic
9021 object files.
9022
5e20bdd7
JZ
90232004-02-22 Josef Zlomek <zlomekj@suse.cz>
9024
9025 Merge from tree-ssa:
9026 2003-11-20 Richard Henderson <rth@redhat.com>
9027
9028 * tree-inline.c (insert_decl_map): New.
9029 (remap_decl, remap_type, remap_block, copy_body_r,
9030 initialize_inlined_parameters, declare_return_variable,
9031 remap_save_expr): Use it.
9032
9033 * function.c (copy_body_r): Add mapping from id->ret_label to
9034 id->ret_label. Revert test for ret_label.
9035
4112be4a
JJ
90362004-02-22 Jakub Jelinek <jakub@redhat.com>
9037
9038 * genoutput.c (process_template): Strip trailing whitespace in @
9039 templates and issue a warning if there was any.
9040
3a6efa98 90412004-02-21 Christopher Faylor <cgf@redhat.com>
dc4a2f32
CF
9042
9043 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
9044 object file when targetting cygwin.
9045 * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
9046 overridden by top-level Makefile.
9047
22cc69c4
RS
90482004-02-21 Roger Sayle <roger@eyesopen.com>
9049
9050 * config/i386/i386.c (standard_80387_constant_p): Also prefer
9051 the x87's load constant instructions when optimizing for size.
9052
bee07d3f
KH
90532004-02-21 Kazu Hirata <kazu@cs.umass.edu>
9054
9055 * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
9056 * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
9057 * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
9058 * fold-const.c: Likewise.
9059 * simplify-rtx.c: Likewise.
9060
da6fdad3
AM
90612004-02-21 Alan Modra <amodra@bigpond.net.au>
9062
9063 * combine.c (can_combine_p): Don't ignore SETs marked with
9064 REG_EH_REGION notes.
9065 (try_combine): When attemting to fix unrecognized insns, don't
9066 split a PARALLEL that contains the original i2.
9067
8bb418a3
ZL
90682004-02-21 Ziemowit Laski <zlaski@apple.com>
9069
9070 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
9071 SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
9072 * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
9073 * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
9074 (vector, pixel, bool): #define to __vector, __pixel and __bool.
9075 (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
9076 portion of header.
9077 (__altivec_link_error_invalid_argument): Remove prototype; will use
9078 __builtin_altivec_compiletime_error("vec_*") instead.
9079 (vec_*): Fix/complete set of available operation overloads given the
9080 existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
9081 cv-correctness of pointer arguments; in C, always check for correct
9082 argument types before macro expansion.
9083 * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
9084 defining Darwin/PowerPC-specific '-f[no-]altivec' and
9085 '-W[no-]altivec-long-deprecated' switches.
9086 * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
9087 '__vector', '__pixel' and '__bool' macros using
9088 '__attribute__((altivec(...)))' types.
9089 * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
9090 bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
9091 bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
9092 New type nodes.
9093 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
9094 handling '-W[no-]altivec-long-deprecated'.
9095 (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
9096 (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
9097 altivec_expand_dst_builtin): Remove casts from integer literals.
9098 (altivec_expand_builtin): Likewise; handle expansion of new
9099 '__builtin_altivec_compiletime_error' function.
9100 (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
9101 types, and make them distinct from other vector types; register
9102 '__builtin_altivec_compiletime_error' function.
9103 (print_operand): For 'P', print a full target register name instead of
9104 merely its number.
9105 (rs6000_attribute_table): Add "altivec" attribute.
9106 (rs6000_handle_altivec_attribute): New function.
21526606 9107 * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
8bb418a3
ZL
9108 '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
9109 maps to).
9110 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
9111 declare.
9112 (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
9113
06a419ff
JW
91142004-02-20 James E Wilson <wilson@specifixinc.com>
9115
9116 * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
9117 check.
9118 (shift_mix4left+2): Delete redundant pattern.
9119
d220de0e
KH
91202004-02-20 Kazu Hirata <kazu@cs.umass.edu>
9121
9122 * alias.c (OUTGOING_REGNO): Don't define the default.
9123 * builtins.c (OUTGOING_REGNO): Likewise.
9124 (INCOMING_REGNO): Likewise.
9125 (apply_args_register_offset): Always use OUTGOING_REGNO.
9126 * combine.c (OUTGOING_REGNO): Likewise.
9127 * sibcall.c (OUTGOING_REGNO): Likewise.
9128 * defaults.h (INCOMING_REGNO): Provide the default.
9129 (OUTGOING_REGNO): Likewise.
9130
701ad47e
JH
91312004-02-21 Jan Hubicka <jh@suse.cz>
9132
9133 * params.def (max-peeled-insns, max-completely-peeled-insns,
9134 max-once-peeled-insns): Set to 400.
9135
7a3e01c4
JDA
91362004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9137
3205a71e 9138 PR c++/12007
7a3e01c4
JDA
9139 * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
9140 are set for parameters before outputing debugging information.
9141
f4d9988b
FH
91422004-02-20 Falk Hueffner <falk@debian.org>
9143
9144 PR target/14201
9145 * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
9146 numbers.
9147
2ae5c785
PB
91482004-02-20 Per Bothner <per@bothner.com>
9149
9150 * input.h: Don't #include line-map.h. It may cause link problems
9151 with undefined linemap_line_start when line-map.h is included but
9152 line-map.o is not linked, as currently happens with gengtype on
9153 compilers that don't support inline.
9154 * toplev.c: So we do have to explicitly #include line-map.h here.
9155
7c4d376d
RH
91562004-02-20 Richard Henderson <rth@redhat.com>
9157
9158 * doc/invoke.texi: Add -Wvariadic-macros.
9159
2c598860
KH
91602004-02-20 Kazu Hirata <kazu@cs.umass.edu>
9161
9162 * haifa-sched.c (sched_emit_insn): Remove.
9163 * sched-int.h: Remove the corresponding prototype.
9164
35afa569
KH
91652004-02-20 Kazu Hirata <kazu@cs.umass.edu>
9166
9167 Revert:
9168 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
9169 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9170 * system.h (DEFAULT_SHORT_ENUMS): Poison.
9171 * config/cris/cris.h: Remove a comment about
9172 DEFAULT_SHORT_ENUMS.
9173 * config/ip2k/ip2k.h: Likewise.
9174 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9175
c1c3bb0c
ME
91762004-02-20 Mohan Embar <gnustuff@thisiscool.com>
9177 Tom Tromey <tromey@redhat.com>
9178
9179 * doc/install.texi: Moved --disable-libgcj and
9180 --with-system-zlib documentation to new section for
9181 Java-specific options.
9182 Added explicit Cross-Compiler-Specific Options subheading.
9183 Added section for Java-specific options.
9184
ee095310
MK
91852004-02-20 Matt Kraai <kraai@alumni.cmu.edu>
9186
9187 * doc/install.texi (Building the Ada compiler): Remove
3205a71e 9188 example.
ee095310 9189
15316a6f
JW
91902004-02-20 James E Wilson <wilson@specifixinc.com>
9191
9192 * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
9193
9f76f909
KH
91942004-02-20 Kazu Hirata <kazu@cs.umass.edu>
9195
9196 * gcc.c (process_command): Allow translation of the copyright
9197 symbol but not the rest of the copyright message.
9198 * gcov.c (print_version): Likewise. Allow translation of the
9199 message about warranty.
9200
f38a62ff
HPN
92012004-02-20 Hans-Peter Nilsson <hp@axis.com>
9202
9203 * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
9204 predicate.
9205 ("*andsi_clear"): Tweak constraints to not match postincrement.
9206 Adjust the predicate to exclude a volatile memory reference.
9207 ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed".
9208 ("*andhi_clear_unsigned"): Remove, non-matching pattern.
9209
88e3a2a3
MK
92102004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
9211
9212 * move-if-change: Remove.
9213 * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
9214 (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
9215 (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
9216 (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
9217 (s-gtyp-gen, s-iov): Use the top level move-if-change.
9218 * objc/Make-lang.in (objc/objc-parse.y): Likewise.
9219
e0c34369
JW
92202004-02-19 James E Wilson <wilson@specifixinc.com>
9221
9222 * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
9223 for operand2. Add condition that requires register_operand operand2
9224 before reload.
9225
656f37ee 92262004-02-19 Richard Sandiford <rsandifo@redhat.com>
2b5f287b 9227 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
656f37ee
RS
9228
9229 * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
9230 * config/mips/mips.md: Expand comment above unaligned loads and stores.
9231
4221057e
RH
92322004-02-19 Richard Henderson <rth@redhat.com>
9233
9234 * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
9235 * tree.c (build0, build1, build2, build3, build4): Split out from...
9236 (build): ... here. Call them.
9237 * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
9238
9239 * convert.c (convert_to_integer): Remove extra build argument.
9240 * tree-inline.c (expand_call_inline): Likewise.
9241
e5b79219
RH
92422004-02-19 Richard Henderson <rth@redhat.com>
9243
9244 * c-opts.c (warn_variadic_macros): New.
9245 (c_common_handle_option): Set it.
9246 (sanitize_cpp_opts): Copy it to cpp_opts.
9247 * c.opt (Wvariadic-macros): New.
9248 * cpplib.h (struct cpp_options): Add warn_variadic_macros.
9249 * cppinit.c (cpp_create_reader): Initialize it.
9250 * cppmacro.c (parse_params): Check it.
9251
18586cb7
DD
92522004-02-19 David Daney <ddaney@avtrex.com>
9253
9254 PR preprocessor/14198
9255 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
9256 builtin_assert ("machine=mips")
9257
37a46828
KH
92582004-02-19 Kazu Hirata <kazu@cs.umass.edu>
9259
9260 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9261 * system.h (DEFAULT_SHORT_ENUMS): Poison.
9262 * config/cris/cris.h: Remove a comment about
9263 DEFAULT_SHORT_ENUMS.
9264 * config/ip2k/ip2k.h: Likewise.
9265 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9266
f9c887ac
ZW
92672004-02-19 Zack Weinberg <zack@codesourcery.com>
9268
9269 * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
9270 when passing single SFmode quantities in general registers,
9271 put them in the high half.
9272
0e1d7f32 92732004-02-19 Aldy Hernandez <aldyh@redhat.com>
f9c887ac
ZW
9274
9275 * doc/md.texi (Standard Names): Document additional dependency on
9276 fix pattern.
9277
9278 * optabs.c (ftruncify): Remove.
9279 (expand_fix): Manually inline ftruncify above.
9280 (can_fix_p): Add FIXME note.
0e1d7f32 9281
c6e9f0eb 92822004-02-19 Aldy Hernandez <aldyh@redhat.com>
f9c887ac
ZW
9283
9284 * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
9285 spe_fixuns_truncsfsi2.
9286
9287 * config/rs6000/rs6000.md (fixunssfsi2): Rename to
9288 fixuns_truncsfsi2.
c6e9f0eb 9289
919b531d
SE
92902004-02-19 Steve Ellcey <sje@cup.hp.com>
9291
9292 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
9293 * testsuite/gcc.dg/20040219-1.c: New test.
9294
4dbb5970
UW
92952004-02-19 Ulrich Weigand <uweigand@de.ibm.com>
9296
9297 * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
9298 "*subsf3_cconly"): Subtraction is not commutative.
9299
16edbbf0
ZW
93002004-02-19 Zack Weinberg <zack@codesourcery.com>
9301
9302 * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
9303 (sdbout_symbol): If called before sdbout_init, queue DECL for
9304 later and return.
9305 (sdbout_init): Set sdbout_initialized true, process decls
9306 queued earlier by sdbout_symbol.
9307 (sdbout_finish): Use size_t for index variable.
9308
f46e5baa 93092004-02-19 Jeff Law <law@redhat.com>
16edbbf0 9310
f46e5baa
JL
9311 * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
9312 for unordered comparison codes.
9313
d754127f
ILT
93142004-02-19 Ian Lance Taylor <ian@wasabisystems.com>
9315
9316 * reload1.c (reload): Correct comment.
9317 (scan_paradoxical_subregs): Remove #if 0 and old comment.
9318 * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
9319 register variables are not used by reload.
9320
428eae94
HPN
93212004-02-19 Hans-Peter Nilsson <hp@axis.com>
9322
9323 PR target/14209
9324 * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
9325 constraints to not match postincrement. Adjust the predicate to
9326 exclude a volatile memory reference.
9327
a5ee8d80
KH
93282004-02-19 Kazu Hirata <kazu@cs.umass.edu>
9329
9330 * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
9331
45ea6431
KH
93322004-02-19 Kazu Hirata <kazu@cs.umass.edu>
9333
9334 * hooks.c (hook_void_tree_int): Remove.
9335 (hook_void_constcharptr): Likewise.
9336 (hook_int_void_0): Likewise.
9337 * hooks.h: Remove the prototypes for the above three
9338 functions.
9339 * targhooks.c (hook_bool_machine_mode_true): Remove.
9340 * targhooks.h: Remove the prototype for
9341 hook_bool_machine_mode_true.
9342
c59102b4
KH
93432004-02-19 Kazu Hirata <kazu@cs.umass.edu>
9344
9345 * emit-rtl.c (subreg_realpart_p): Remove.
9346 (reorder_insns_with_line_notes): Likewise.
9347 (end_full_sequence): Likewise.
9348 * rtl.h: Remove the prototype for the above functions.
9349
3ad17f7b
KH
93502004-02-19 Kazu Hirata <kazu@cs.umass.edu>
9351
9352 * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
9353 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
9354 config/iq2000/iq2000.h, config/m32r/m32r.h,
9355 config/pdp11/pdp11.h, config/sparc/sparc.h,
9356 config/xtensa/xtensa.h: Remove commented-out or useless
9357 definitions of CASE_VECTOR_PC_RELATIVE.
9358
a3b182a7
KH
93592004-02-19 Kazu Hirata <kazu@cs.umass.edu>
9360
9361 * loop.c (all_sets_invariant_p): Remove.
9362
1b5963f7
EB
93632004-02-19 Eric Botcazou <ebotcazou@libertysurf.fr>
9364
9365 PR target/12916
9366 * config/sparc/sparc.h (NPARM_REGS): Delete.
9367 (BASE_RETURN_VALUE_REG): Likewise.
9368 (BASE_OUTGOING_VALUE_REG): Likewise.
9369 (BASE_PASSING_ARG_REG): Likewise.
9370 (BASE_INCOMING_ARG_REG): Likewise.
9371 * config/sparc/sparc.c (sparc_strict_argument_naming): Test
9372 TARGET_ARCH64, not TARGET_V9.
9373 (function_arg_slotno): Dispatch based on the mode class.
9374 Handle vector modes like floating-point modes.
9375 (function_arg_record_value_1): Handle vector types like
9376 floating-point types.
9377 (function_arg_record_value_2): Likewise.
9378 Calculate regno after mode transformation.
9379 (function_arg): Handle vector modes like floating-point modes.
9380 (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
9381 If ARCH64, do not recheck alignment.
9382 (function_arg_pass_by_reference): Reorder the conditions.
9383 (sparc_return_in_memory): Move after function_arg_padding.
9384 Implement calling conventions for vector modes.
9385 (sparc_struct_value_rtx): Move after sparc_return_in_memory.
9386 (function_value): Move scope of 'regbase'.
9387 Implement calling conventions for vector modes.
9388 (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
9389 and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
9390 (sparc_va_arg): Use function_arg_pass_by_reference to test whether
9391 the argument is passed by reference.
9392 (sparc_type_code): Handle vector types.
9393
196c42cd
AM
93942004-02-19 Alan Modra <amodra@bigpond.net.au>
9395
9396 * function.c (assign_parms): When building decl_rtl for
9397 SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
9398
c0cfc691
OH
93992004-02-19 Olivier Hainque <hainque@act-europe.fr>
9400
9401 * expr.c (is_aligning_offset): Check if we are aligning the
9402 expressions's address over BIGGEST_ALIGNMENT in bytes, not
9403 in bits.
9404
328163dc
MA
94052003-02-18 Matt Austern <austern@apple.com>
9406
9407 * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
9408 LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
9409 (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
9410 defined. Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
9411 spec string.
9412 * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
16edbbf0 9413
57d4f65c
ZW
94142004-02-18 Zack Weinberg <zack@codesourcery.com>
9415
9416 * dwarf2out.c (loclabel_num): Move outside #ifdef
9417 DWARF2_DEBUGGING_INFO and mark with GTY(()).
9418 * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
9419 Mark with GTY(()).
9420 (ia64_hpux_add_extern_decl): Save the decl, not the name string.
9421 Allocate memory with ggc_alloc. No need to copy anything.
9422 (ia64_hpux_file_end): Update to match.
9423
3fec9fa9
JJ
94242004-02-18 Jakub Jelinek <jakub@redhat.com>
9425
9426 * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
9427 by default.
9428
5665e398
UW
94292004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
9430
9431 * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
9432 ("divmodtisi3"): Likewise.
9433 ("udivmoddi4", "udivmodtidi3"): Likewise.
9434 ("divmodsi4", "divmoddisi3"): Likewise.
9435 ("udivmodsi4", "udivmoddisi3"): Likewise.
9436 ("udivsi3", "umodsi3"): Likewise.
9437
d76e8439
UW
94382004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
9439
9440 * config/s390/s390.c (s390_mainpool_start): Delete the main pool
9441 placeholder insn when chunkifying the pool.
9442
3cf7104e
JDA
94432004-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9444
9445 * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
9446 generating PIC code.
9447
8981ecd3
KH
94482004-02-18 Kazu Hirata <kazu@cs.umass.edu>
9449
9450 * config/h8300/h8300-protos.h: Add a prototype for
9451 h8300_expand_branch.
9452 * config/h8300/h8300.c (h8300_expand_branch): New.
9453 * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
9454 bgtu, beq, bne): Call h8300_expand_branch().
9455
07ee3b58
KH
94562004-02-18 Kazu Hirata <kazu@cs.umass.edu>
9457
9458 * config/h8300/h8300-protos.h: Add prototypes for
9459 h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
9460 * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
9461 (h8300_hard_regno_mode_ok): Likewise.
9462 * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
9463 h8300_hard_regno_nregs().
9464 (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
9465
22234f56
PB
94662004-02-18 Per Bothner <per@bothner.com>
9467
9468 * cpphash.h (struct cpp_buffer): Restore return_at_eof field. This
9469 partly reverts my 2003-10-01 change, because we're back to logically
9470 including <command line> inside the main line.
9471 * cpplex.c (_cpp_get_fresh_line): Check return_at_eof field.
9472 * cppmacro.c (cpp_scan_nooutput): Set return_at_eof of current buffer.
9473 Fixes PR preprocessor/14103.
9474
9475 * cppfiles.c (_cpp_stack_include): When appropriate decrement
9476 line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
9477 (cpp_push_include): Don't need to increment pfile's line field.
9478 * line-map.h (LAST_SOURCE_LINE_LOCATION): Only decrement by 1.
9479
9480 * c-ppoutput.c (print struct): New first_time field.
9481 (init_pp_output): Set print.first_time.
9482 (pp_file_change): Use print.first_time, rather than MAIN_FILE_P,
9483 which is set also for (say) <command line>. Clear print.first_time.
9484
9485 * cppfiles.c (struct _cpp_file): Comment and type for pch field
9486 does not match the code, so fix both.
9487 (should_stack_file): Inline include_pch_p function.
9488 (include_pch_p): Remove pointless function.
9489
9490 * cpphash.h (struct cpp_buffer): Remove unused search_cached field.
9491
5a6d9a81
KH
94922004-02-18 Kazu Hirata <kazu@cs.umass.edu>
9493
9494 * config/h8300/h8300.md (four define_peephole2's): Use
9495 h8300_regs_ok_for_stm().
9496
3d2e90d6
KH
94972004-02-18 Kazu Hirata <kazu@cs.umass.edu>
9498
9499 * config/h8300/h8300-protos.h: Update the prototype for
9500 expand_a_rotate().
9501 * config/h8300/h8300.c (expand_a_rotate): Remove the first
9502 argument.
9503 * config/h8300/h8300.md: Update all callers.
9504
79ae63b1
JH
95052004-02-18 Jan Hubicka <jh@suse.cz>
9506
9507 * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
9508 floats.
9509 (simplify_binary_operation): Deal with logicals on floats.
9510
9511 * i386.md (SSE fabs splitters): Emit new patterns.
9512 (SSE cmov splitters): Likewise.
9513 (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
9514 (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
9515 subregs.
9516 (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
9517 (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
9518
01ab5574
KH
95192004-02-18 Kazu Hirata <kazu@cs.umass.edu>
9520
9521 * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
9522 by hand.
9523 (output_a_rotate): Tweak a comment.
9524 * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
9525 (*rotlhi3_1): Change to rotlhi3_1.
9526 (*rotlsi3_1): Change to rotlsi3_1.
9527
d5f7d2d0
RE
95282004-02-18 Richard Earnshaw <rearnsha@arm.com>
9529
9530 PR target/13866
9531 * arm.c (load_multiple_operation): Don't insist that the source reg
9532 of a post-increment component is the same as the destination.
9533 (store_multiple_operation): Likewise.
9534
b0c8a821
KH
95352004-02-18 Kazu Hirata <kazu@cs.umass.edu>
9536
9537 * config/h8300/h8300.md: Move movsf patterns into one section
9538 of the file.
9539
aa335b76
KH
95402004-02-18 Kazu Hirata <kazu@cs.umass.edu>
9541
9542 * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
9543 loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
9544 xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
9545 config/mips/linux64.h, config/pa/pa-64.h,
9546 config/rs6000/aix51.h, config/rs6000/aix52.h,
9547 config/rs6000/spe.md, config/sparc/linux.h,
9548 config/sparc/linux64.h: Update copyright.
9549
5a64541a
KH
95502004-02-18 Kazu Hirata <kazu@cs.umass.edu>
9551
9552 * config/h8300/h8300.md: Move push patterns into one
9553 section of the file.
9554
8d04e6db
MM
95552004-02-18 Mark Mitchell <mark@codesourcery.com>
9556
9557 PR c++/11326
9558 * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
9559 fntype.
9560
e978d62e
PB
95612004-02-18 Paul Brook <paul@codesourcery.com>
9562
9563 * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
9564
cdbafce1
PB
95652004-02-18 Paul Brook <paul@codesourcery.com>
9566
c5fe5036 9567 PR debug/12934
cdbafce1
PB
9568 * dwarf2out.c (loc_descriptor_from_tree): Handle
9569 EXPR_WITH_FILE_LOCATION.
9570
5a0855a0
JJ
95712004-02-18 Jakub Jelinek <jakub@redhat.com>
9572
9573 * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
9574 testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
9575 trailing whitespace from instructions.
9576
9c56033f
GK
95772004-02-17 Geoffrey Keating <geoffk@apple.com>
9578
9579 * configure.ac: When generating auto-build.h, pass
9580 --enable-languages to the sub-configure.
9581 Put quotes around ${program_transform_name} when generating
9582 name of as, ld, nm, objdump.
9583 * configure: Regenerate.
9584
80bcb4d2
MK
95852004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
9586
9587 * Makefile.in (s-check, s-config, s-conditions, s-flags)
9588 (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
9589 (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
9590 (s-preds, s-iov): Do not depend on move-if-change.
9591
ce7b36a4
JW
95922004-02-17 James E Wilson <wilson@specifixinc.com>
9593
9594 * caller-save.c (insert_restore): Pass mem through copy_rtx.
9595 (insert_save): Likewise.
9596
f8b58e56
KH
95972004-02-17 Kazu Hirata <kazu@cs.umass.edu>
9598
9599 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
9600 warning.
9601
8d82e1d8
KH
96022004-02-17 Kazu Hirata <kazu@cs.umass.edu>
9603
9604 * config/h8300/h8300.md (*one_complsi2_h8300): Change to
9605 *one_cmplsi2_h8300.
9606 (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
9607
4093985c
KH
96082004-02-17 Kazu Hirata <kazu@cs.umass.edu>
9609
9610 * config/h8300/h8300-protos.h: Update the prototype of
9611 fix_bit_operand().
9612 * config/h8300/h8300.c (fix_bit_operand): Remove the second
9613 argument "what".
9614 * config/h8300/h8300.md: Update all callers.
9615
fd57a6e4
KH
96162004-02-17 Kazu Hirata <kazu@cs.umass.edu>
9617
9618 * config/h8300/h8300.c (fix_bit_operand): Change the name of
9619 the last argument to "code" from "type".
9620
6a415867
KH
96212004-02-17 Kazu Hirata <kazu@cs.umass.edu>
9622
9623 * config/h8300/h8300.c: Remove an extern declaration of
9624 rtx_equal_function_value_matters.
9625
a3579575
KH
96262004-02-17 Kazu Hirata <kazu@cs.umass.edu>
9627
9628 * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
9629 by hand.
9630 * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
9631 (*iorqi3_1): Change to iorqi3_1.
9632 (*xorqi3_1): Change to xorqi3_1.
9633
321440fd
KH
96342004-02-17 Kazu Hirata <kazu@cs.umass.edu>
9635
9636 * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
9637 typos.
9638
7b50a809
JH
96392004-02-17 Jan Hubicka <jh@suse.cz>
9640
9641 * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
9642
8051c2eb
AM
96432004-02-18 Alan Modra <amodra@bigpond.net.au>
9644
9645 PR optimization/14119
9646 * combine.c (try_combine): When attemting to fix unrecognized insns,
9647 don't delete SETs marked with REG_EH_REGION notes.
9648
db33236e
UW
96492004-02-17 Ulrich Weigand <uweigand@de.ibm.com>
9650
57d4f65c 9651 * combine.c (simplify_if_then_else): Do not replace
db33236e
UW
9652 (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
9653 modes differ.
9654
1da326c3
SB
96552004-02017 Steven Bosscher <stevenb@suse.de>
9656
9657 * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
9658 function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
9659 tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
9660 * ada/utils.c: Likewise.
9661 * cp/decl.c: Likewise.
9662 * f/com.c: Likewise.
9663 * java/class.c: Likewise.
9664
65c07641
KH
96652004-02-17 Kazu Hirata <kazu@cs.umass.edu>
9666
9667 * config/h8300/h8300.md: Fix comment typos.
9668
3e35cb0c
RO
96692004-02-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9670
9671 * config/mips/t-iris6gld: Renamed to ...
9672 * config/mips/t-irix-gld: ... this.
9673 * config.gcc (mips-sgi-irix6*): Reflect this
9674 (mips-sgi-irix5*): Use it with GNU ld.
57d4f65c 9675
3e35cb0c
RO
9676 * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
9677 to ...
9678 * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
9679 * config/mips/t-irix-gld: Reflect this.
9680 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
57d4f65c 9681
3e35cb0c
RO
9682 * config/mips/iris5gld.h: New file.
9683 * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
9684 Only use collect2 without gas.
57d4f65c 9685
3e35cb0c
RO
9686 * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
9687 Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
9688 (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
9689 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
57d4f65c 9690
3e35cb0c
RO
9691 * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
9692 * config/mips/iris5.h: ... here.
9693
9694 * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
57d4f65c 9695 IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
3e35cb0c 9696 (STARTFILE_SPEC, ENDFILE_SPEC): Define.
57d4f65c 9697
3e35cb0c
RO
9698 * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
9699 using irix_startfile_spec, irix_endfile_spec.
9700
1f0282cb
GN
97012004-02-16 Gunther Nikl <gni@gecko.de>
9702
9703 * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
9704
6552458a
KH
97052004-02-17 Kazu Hirata <kazu@cs.umass.edu>
9706
9707 * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
9708 insns by hand.
9709
017b3258
ZD
97102004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9711
9712 * cfghooks.c (split_edge): Speed up updating of dominators.
9713
57782ad8
MM
97142004-02-17 Mark Mitchell <mark@codesourcery.com>
9715
9716 PR c++/11326
9717 * c-common.c (flag_abi_version): Remove.
9718 * c-common.h (flag_abi_version): Likewise.
9719 * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
9720 * c.opt (fabi-version): Remove.
9721 * calls.c (expand_call): Always pass a function type to
9722 struct_value_rtx. Use convert_memory_address.
9723 * common.opt (fabi-version): Add it.
9724 * flags.h (flag_abi_version): Likewise.
9725 (abi_version_at_least): New macro.
9726 * opts.c (common_handle_option): Add OPT_fabi_version.
9727 * toplev.c (flag_abi_version): Define it.
9728 * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
9729 New function.
9730 (ia64_output_mi_thunk): Use it.
9731 (ia64_struct_value_rtx): Likewise.
57d4f65c 9732
72b1de44
KH
97332004-02-17 Kazu Hirata <kazu@cs.umass.edu>
9734
9735 * config/h8300/h8300.c (h8300_emit_stack_adjustment):
9736 Don't generate insns by hand.
9737
d150ccef
AP
97382004-02-17 Andrew Pinski <pinskia@physics.uc.edu>
9739
9740 PR c++/14178
9741 * doc/invoke.texi (fabi-version): The default is 2 now.
9742
50654f6c
ZD
97432004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9744
9745 * loop-iv.c: New file.
9746 * Makefile.in (loop-iv.o): New.
9747 * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
9748 * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
9749 num_loop_branches): New functions.
9750 * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
9751 iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
9752 find_simple_exit, iv_number_of_iterations, iv_analysis_done,
9753 get_simple_loop_desc, free_simple_loop_desc): Declare.
9754 (simple_loop_desc): New inline function.
9755 (struct rtx_iv, struct niter_desc): New.
9756 * cfgloopmanip.c (loopify): Specify semantics more precisely.
9757 * expr.c (force_operand): Handle subregs of expressions created by
9758 loop unroller.
9759 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
9760 parts of the initialization to toplev.c
9761 * loop-unroll.c (loop_exit_at_end_p): New.
9762 (unroll_and_peel_loops): Call iv_analysis_done.
9763 (decide_peel_once_rolling, decide_peel_completely,
9764 decide_unroll_stupid, decide_unroll_constant_iterations,
9765 decide_unroll_runtime_iterations, decide_peel_simple,
9766 peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
9767 unroll_loop_runtime_iterations): Use new simple loop analysis.
9768 * loop-unswitch.c (compare_and_jump_seq): New.
9769 (may_unswitch_on_p): Renamed to ...
9770 (may_unswitch_on): Use new iv analysis.
9771 (reversed_condition): Export.
9772 (unswitch_single_loop, unswitch_loop): Use new iv analysis.
9773 * predict.c (estimate_probability): Use new simple loop analysis.
9774 * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
9775 canon_condition, simplify_using_condition): Declare.
9776 * stor-layout.c (get_mode_bounds): New.
9777 * toplev.c (rest_of_handle_loop2): Some parts of
9778 initialization/finalization moved here from loop-init.c.
9779
ef3f573f
KH
97802004-02-17 Kazu Hirata <kazu@cs.umass.edu>
9781
9782 * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
9783 pointer.
9784 (CALL_USED_REGISTERS): Likewise.
9785 (REG_ALLOC_ORDER): Likewise.
9786 (REG_CLASS) <GENERAL_REGS>: Likewise.
9787
e3d6e740
GK
97882004-02-16 Geoffrey Keating <geoffk@apple.com>
9789
9790 * doc/md.texi (Insn Canonicalizations): Document left-chaining
9791 in associative operators.
9792 * rtlanal.c (commutative_operand_precedence): Create some new
9793 variables. Prefer a commutative operand on the left, then
9794 binary expressions, then NEG and NOT.
9795
8c958ed2
MK
97962004-02-16 Matthias Klose <doko@debian.org>
9797
57d4f65c
ZW
9798 * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
9799 in terms of SHLIB_SOVERSION.
9800 * config/m68k/t-slibgcc-elf-ver: New file.
9801 * config/pa/t-slibgcc-elf-ver: New file.
9802 * config.gcc (m68k-linux, parisc-linux): Use them when not
8c958ed2
MK
9803 sjlj exceptions are not configured.
9804
42a5f3c0
EB
98052004-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
9806
9807 * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
9808
1729e46c
ZW
98092004-02-16 Zack Weinberg <zack@codesourcery.com>
9810
9811 * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
9812
0acdc221
JM
98132004-02-16 Joseph S. Myers <jsm@polyomino.org.uk>
9814
9815 * doc/sourcebuild.texi: Mention backends.html.
9816
9ac97460
KH
98172004-02-16 Kazu Hirata <kazu@cs.umass.edu>
9818
9819 * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
9820 line-map.c, line-map.h, var-tracking.c: Fix comment
9821 formatting.
9822
9dcb4381
RH
98232004-02-16 Richard Henderson <rth@redhat.com>
9824
9825 * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
9826
1729e46c 9827 * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
875427f0 9828
1472042a
KH
98292004-02-15 Kazu Hirata <kazu@cs.umass.edu>
9830
9831 * config/h8300/h8300.md: Remove unnecessary parallels from
9832 all define_insn and define_split patterns.
9833
24f29b06
KH
98342004-02-15 Kazu Hirata <kazu@cs.umass.edu>
9835
9836 * config/h8300/h8300.md: Remove explicit (set_attr "cc"
9837 "clobber").
9838
ac5f9961
BI
98392004-02-15 Bernardo Innocenti <bernie@develer.com>
9840
9841 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
9842 '%#'.
9843
68776c43
KH
98442004-02-15 Kazu Hirata <kazu@cs.umass.edu>
9845
9846 * config/ia64/ia64.c, config/mips/mips.c,
9847 config/mmix/mmix-modes.def: Fix comment typos.
9848
7501c4e4
RS
98492004-02-15 Roger Sayle <roger@eyesopen.com>
9850
9851 * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
9852 (get_directive_line): Remove unused function prototype.
9853
5852680b
JZ
98542004-02-14 Josef Zlomek <zlomekj@suse.cz>
9855
9856 * tree-inline.c (copy_body_r): Do not replace ret_label.
9857
be04394b
JH
98582004-02-14 Jan Hubicka <jh@suse.cz>
9859
9860 * i386.c (x86_four_jump_limit): New variable.
9861 (k8_avoid_jump_misspredicts): Rename to ...
9862 (ix86_avoid_jump_misspredicts): .. this one.
9863 (ix86_pad_returns): Break out from ...
9864 (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
9865 to.
9866 * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
9867
d4afac5b
JZ
98682004-02-14 Josef Zlomek <zlomekj@suse.cz>
9869
9870 * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
9871 PARALLEL is NULL.
9872
c7762b44
PB
98732004-02-14 Per Bothner <per@bothner.com>
9874
9875 * fix-header.c (line_table): Move local variable in main to global.
9876 * scan.h (line_table): Use it.
9877 * scan-decls.c (scan_decls): Need to call linemap_lookup on token's
9878 line (recently renamed to src_loc) before calling recognized_function.
9879
cb7c0b5a
MK
98802004-02-14 Matt Kraai <kraai@alumni.cmu.edu>
9881
9882 * Makefile.in: Fix comment typos.
9883
45f9877a
EB
98842004-02-14 Olivier Hainque <hainque@act-europe.fr>
9885
9886 * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
9887 for start_value when it is directly moved into reg, and factorize
9888 the retrieval of GET_MODE (reg).
9889
544142d8
RS
98902004-02-14 Richard Sandiford <rsandifo@redhat.com>
9891
9892 * config/mips/mips-protos.h (mips_load_got_page): Delete.
9893 (mips_load_got_global): Delete.
9894 (mips_gotoff_page): Declare.
9895 * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
9896 (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
9897 UNSPEC_LOAD_GOT pattern rather than a MEM.
9898 (*load_got[sd]i): New patterns.
9899 * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
9900 (mips_load_got_page, mips_load_got_global): Delete.
9901 (mips_gotoff_page): New function.
9902 (override_options): Don't initialize mips_got_alias_set.
9903
d2888f1d
RS
99042004-02-14 Richard Sandiford <rsandifo@redhat.com>
9905
9906 * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
9907 (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
9908 (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
9909 (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
9910 (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
9911 * config/mips/mips.c: Fix some overly-long lines.
9912 (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
9913 (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
9914
19baba0b
RO
99152004-02-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9916
9917 * configure.ac: Search for as, ld below libexec/gcc.
9918 * configure: Regenerate.
9919
f07a6b21
BE
99202004-02-14 Ben Elliston <bje@wasabisystems.com>
9921
9922 * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
9923 __builtin_arm_setwcx ().
9924 * config/arm/arm.c (arm_expand_builtin): Generate operands
9925 correctly and reverse their order in call to gen_iwmmxt_tmcr ().
9926
99272004-02-14 Ben Elliston <bje@wasabisystems.com>
9928
9929 * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
9930 and "wmuluh" to "wmulsm" and "wmulum", respectively.
9931 * config/arm/arm.h (enum arm_builtins): Rename enumerators to
9932 ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
9933 * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
9934 (_mm_mulhi_pu16): Likewise.
9935
f433554b
ZW
99362004-02-13 Zack Weinberg <zack@codesourcery.com>
9937
9938 * xcoffout.c (xcoff_assign_fundamental_type_number): Check
9939 DECL_NAME != 0 before dereferencing.
9940
faeb9bb6
UW
99412004-02-13 Ulrich Weigand <uweigand@de.ibm.com>
9942
9943 * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
9944 (s390_output_addr_const_extra): Declare.
9945 (s390_output_pool_entry): Remove FILE * argument.
9946 * config/s390/s390.c (s390_output_symbolic_const): Remove.
9947 (s390_output_addr_const_extra): New function.
9948 (print_operand_address): Call output_addr_const instead of
9949 s390_output_symbolic_const.
9950 (print_operand): Likewise.
9951 (s390_output_pool_entry): Use assemble_integer for symbolic constants.
9952 Remove FILE * argument.
9953 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
9954 * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
9955 call.
9956
cfbe3efe
ZD
99572004-02-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9958
9959 * cfgloopanal.c (mark_irreducible_loops): Rewriten.
9960 (struct edge, struct vertex, struct graph): New.
9961 (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
9962 free_graph): New functions.
9963
d349192c
CD
99642004-02-12 Chris Demetriou <cgd@broadcom.com>
9965
9966 * config/mips/mips.md (casesi_internal, casesi_internal_di):
9967 Use ".set macro" to avoid warnings about multi-instruction
9968 macros, since they're intentional.
9969
52ccb3d2
GK
99702004-02-12 Geoffrey Keating <geoffk@apple.com>
9971
213c4a8a
GK
9972 * config/darwin.h: Add include guards. Remove old, now incorrect,
9973 comment about STANDARD_EXEC_PREFIX.
9974
52ccb3d2
GK
9975 * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
9976 $(GCOV_INSTALL_NAME) to install manpages. Remove generic rule
9977 for installing .1 manpages. Add rules for installing cpp
9978 and gcov manpages under their installed names.
9979
1a543d25
AO
99802004-02-12 Alexandre Oliva <aoliva@redhat.com>
9981
9982 * configure.ac (gcc_cv_ld): Don't set to LD if target is not
9983 host, but try LD_FOR_TARGET first.
9984 * configure: Rebuilt.
9985
8507c40a
ZW
99862004-02-12 Zack Weinberg <zack@codesourcery.com>
9987
9988 * dbxout.c: Move declaration of dbxout_type_decl outside
9989 #ifdef DBX_DEBUGGING_INFO.
9990 * c-parse.in: Don't give the asmdef production a type.
9991
21d13d83
ZW
99922004-02-12 Zack Weinberg <zack@codesourcery.com>
9993
9994 * debug.h (struct gcc_debug_hooks): Add type_decl field.
9995 (debug_nothing_tree_int): Prototype.
9996 (dwarf_debug_hooks): Delete, unused.
9997 * debug.c (do_nothing_debug_hooks): Update.
9998 (debug_nothing_tree_int): New function.
9999 * langhooks.h (struct lang_hooks_for_decls):
10000 Remove builtin_type_decls field.
10001 * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
10002 (LANG_HOOKS_DECLS): Update.
10003 * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
10004 Use debug_hooks->type_decl.
10005 * dbxout.c (preinit_symbols): New static.
10006 (dbx_debug_hooks, xcoff_debug_hooks): Update.
10007 (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
10008 lang_hooks.decls.builtin_type_decls. Do scan preinit_symbols
10009 for symbols to output.
10010 (dbxout_type_decl): New function.
10011 (dbxout_symbol): If called before dbxout_init has run, queue
10012 the symbol for later. Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
10013 to TYPE_DECLs before emitting them.
10014 * xcoffout.c (assign_type_number): Delete.
10015 (xcoff_type_numbers): New static table.
10016 (xcoff_assign_fundamental_type_number): New function.
10017 * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
10018 DBX_OUTPUT_STANDARD_TYPES. Remove unnecessary #ifdefs.
10019 * sdbout.c: Include varray.h.
10020 (deferred_global_decls): New static.
10021 (sdb_debug_hooks): Update.
10022 (sdbout_global_decl): If we can't emit something right now,
10023 remember it in deferred_global_decls.
10024 (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
10025 (sdbout_init): Initialize deferred_global_decls.
10026 * Makefile.in: Update dependencies of sdbout.o.
10027 * dwarf2out.c (dwarf2out_type_decl): New function.
10028 (dwarf2_debug_hooks): Update.
10029 * vmsdbgout.c (vmsdbg_debug_hooks): Update.
10030 * c-decl.c (getdecls): Just return 0.
10031 (check_for_loop_decls): Don't use getdecls.
10032 (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
10033 * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
10034
a90a16f3
UW
100352004-02-12 Ulrich Weigand <uweigand@de.ibm.com>
10036
10037 * config/s390/s390.c (s390_sched_reorder2): Remove.
10038 (TARGET_SCHED_REORDER2): Do not redefine.
10039
9f0e2d86
ZW
100402004-02-12 Zack Weinberg <zack@codesourcery.com>
10041
10042 * c-parse.in (maybe_type_qual): Delete.
10043 (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
10044 (asm_argument): New grammar rules.
10045 (extdef_1): Use asmdef.
10046 (maybeasm): Move down with other asm rules; use simple_asm_expr.
10047 (xexpr): Move up with other expression rules.
10048 (stmt): Use asm_stmt.
10049
10050 * c-typeck.c (build_asm_expr): New function - body mostly
10051 pulled from build_asm_stmt.
10052 (build_asm_stmt): Just handle tacking on the volatile qualifier.
10053 * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
10054
35f5add9
RS
100552004-02-12 Richard Sandiford <rsandifo@redhat.com>
10056
10057 PR bootstrap/13617
10058 * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
10059 (mips_declare_object): Make variadic.
10060 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
10061 mips_output_aligned_decl_common.
10062 * config/mips/mips.c (mips_output_aligned_decl_common): New function.
10063 (mips_declare_object): Make variadic.
10064
a5e9c810
RK
100652004-02-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10066
8fbc67c0
RK
10067 * function.c (update_epilogue_consts): Teach about binary operations.
10068
a5e9c810
RK
10069 * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
10070 previous MEM_VOLATILE in REF.
10071 * function.c (fixup_var_refs): Save volatile_ok and set to 1.
10072 * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
10073
7ea98c5a
GN
100742004-02-12 Gunther Nikl <gni@gecko.de>
10075
10076 * config.gcc: Restore support for m68k-openbsd.
10077
8f6a8d03
JH
100782004-02-12 Jan Hubicka <jh@suse.cz>
10079
10080 * tree-optimize.c (tree_rest_of_compilation): Do not release
10081 DECL_ARGUMENTS.
10082
c2910edf
MK
100832004-02-11 Matt Kraai <kraai@alumni.cmu.edu>
10084
10085 * doc/install.texi: Fix the spelling of "explicitly".
10086
423e95e2
EC
100872004-02-11 Eric Christopher <echristo@redhat.com>
10088
10089 * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
10090 duplicate argument structure of cpp_interpret_string.
10091 * cpphash.h: Move prototype...
10092 * cpplib.h: Here.
10093 * cpplib.c: Fix calls to match new function signature.
10094
32e8aa9a
JM
100952004-02-11 Joseph S. Myers <jsm@polyomino.org.uk>
10096
10097 PR c/456
10098 * cppexp.c (num_binary_op): Don't allow comma operators in #if
10099 constant expressions at all outside C99 mode if pedantic.
10100
3b8e0c91
UB
101012004-02-11 Uros Bizjak <uros@kss-loka.si>
10102
10103 * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
10104 (log10_optab, log2_optab): Define corresponding macros.
10105 * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
10106 * genopinit.c (optabs): Implement log10_optab and log2_optab
10107 using log10?f2 and log2?f2 patterns.
10108 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
10109 using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
10110 (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
10111 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
10112
10113 * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
10114 log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
10115 log2, log2f and log2l built-ins as inline x87 intrinsics.
10116
a6abdce3
RH
101172004-02-11 Richard Henderson <rth@redhat.com>
10118
888ff7a1 10119 PR target/1532
a6abdce3
RH
10120 * flow.c (insn_dead_p): A clobber of a dead hard register is a
10121 dead insn after reload.
10122
05ac140e
UW
101232004-02-11 Ulrich Weigand <uweigand@de.ibm.com>
10124
10125 * tree.h (frame_base_decl): Add GTY marker.
10126 * var-tracking.c (frame_base_decl): Likewise.
10127
e193b408
DB
101282004-02-11 Daniel Berlin <dberlin@dberlin.org>
10129
10130 * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
10131 incorrect, hunk.
10132 (add_location_or_const_value_attribute): Use text_section_label,
10133 not TEXT_SECTION_NAME.
12f9df4e
PB
10134
101352004-02-11 Per Bothner <per@bothner.com>
10136
10137 Represent column numbers using line-map's source_location.
10138 The "next available source_location" is now managed internally by
10139 line-maps.c rather than by clients.
10140 * line-map.h (struct line_map): New field column_bits.
10141 <from_line>: Rename field to start_location.
10142 (struct line_maps): New fields highest_location and max_column_hint.
10143 (linemap_check_files_exited): New declaration.
10144 (linemap_line_start): New declaration.
10145 (linemap_add): Remove from_line parameter; use highest_location field.
10146 (SOURCE_LINE, LAST_SOURCE_LINE): Modify to use column_bits.
10147 (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION): New macros.
10148 (CURRENT_LINE_MAP): Remove macro.
10149 (linemap_position_for_column): New inline function.
10150 * line-map.c (linemap_init): Clear new fields.
10151 (linemap_check_files_exited): New function, extracted from ...
10152 (linemap_free): Use linemap_check_files_exited.
10153 (linemap_add): Remove from_line parameter. Various updates.
10154 (linemap_line_start): New function.
10155 (linemap_lookeup): Update for new field names.
10156 * cpphash.h (struct cpp_reader) <map>: Field removed. Because
10157 linemap_position_for_column may unpredictably change the current map,
10158 it is cleaner and simpler for us to not cache it in cpp_reader.
10159 (struct cpp_buffer): New sysp field.
10160 Changed warned_cplusplus_comments and from_stage3 to bitfields.
10161 * cppinit.c (cpp_read_min_file): pfile->map no longer exists.
10162 * cpplib.c (do_line, do_linemarker, _cpp_do_file_change): Get
10163 current map using linemap_lookup.
10164 (do_linemarker): Also set buffer's sysp field.
10165 (destringize_and_run): No longer need to decrement current line.
10166 * cppfiles.c (_cpp_stack_file): Set sysp from and in buffer.
10167 (search_path_head, open_file_failed): Use buffer's sysp.
10168 (cpp_make_system_header): Get current map using linemap_lookup.
10169 Also set buffer's sysp flag.
10170 * cppmacro.c (_cpp_builtin_macro_text): Likewise use linemap_lookup.
10171 * cpphash.h (CPP_INCREMENT_LINE): New macro.
10172 (struct cpp_buffer): Moved fields saved_cur, saved_rlimit to ...
10173 (struct cpp_reader): ... and adding saved_line_base field.
10174 * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
10175 Update accordingly. Don't adjust line.
10176 (_cpp_scan_out_logical_line): Use CPP_INCREMENT_LINE.
10177 * cpphash.c (CPP_IN_SYSTEM_HEADER): Replaced macro by ...
10178 (cpp_in_system_header): ... new inline function, using buffer's sysp.
10179 * cpperror.c (_cpp_begin_message): Update to use cpp_in_system_header.
10180 * cpplex.c (_cpp_lex_direct): Likewise.
10181 * cppmacro.c (_cpp_builtin_macro_text): Likewise.
10182 * cppmacro.c (_cpp_create_definition): Use buffer's sysp field.
10183 * cpplib.h (struct cpp_token): Rename line field to src_loc.
10184 Remove col field as it is now subsumed by src_loc.
10185 * cpperror.c: Update various field, parameter, and macro names.
10186 (print_location): If col==0, try SOURCE_COLUMN of line.
10187 (cpp_error): Use cur_token's src_loc field, rather than line+col.
10188 * cpplib.c (do_diagnostic): Token's src_loc fields replaces line+col.
10189 * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
10190 _cpp_skip_block_comment): Use CPP_INCREMENT_LINE.
10191 (_cpp_temp_token): Replace cpp_token's line+col fields by src_loc.
10192 (_cpp_get_fresh_line): Don't need to adjust line for missing newline.
10193 (_cpp_lex_direct): Use linemap_position_for_column.
10194 * c-ppoutput.c (maybe_print_line, print_line): Don't take map
10195 parameter. Instead get it from the line_table global. Adjust callers.
10196 (print): Remove map field. Replace line field to src_line.
10197 (init_pp_output, account_for_newlines, maybe_print_line): Adjust.
10198 (cb_line_change): Use SOURCE_COLUMN. Minor optimizations.
10199 (pp_file_change): Use MAIN_FILE_P since we cannot checked print.map.
10200 Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
10201 * cpptrad.c (copy_comment): Rename variable.
10202 * c-lex.c (map): Remove static variable, for same reason we removed
10203 cpp_reader's map field.
10204 (cb_line_change, cb_def_pragma, cb_define, cb_undef): Hence we need
10205 to call linemap_lookup.
10206 (cb_line_change): Token's line field replaced by src_loc.
10207 (fe_file_change): Use MAINFILE_P and LAST_SOURCE_LINE macros.
10208 Don't save new_map.
10209
10210 * cpphash.h, cpperror.c, cpplib.h: Some renames of fileline to
10211 source_location.
10212
e086f51d 102132004-02-11 Hartmut Penner <hpenner@de.ibm.com>
423e95e2 10214
e086f51d
HP
10215 * config/rs6000/altivec.md (*movv4si_internal): At least one
10216 operand must be register_operand.
10217 (*movv8hi_internal1): Likewise.
10218 (*movv16qi_internal1): Likewise.
10219 (*movv4sf_internal1): Likewise.
10220
e66b2fcf 102212004-02-10 Aldy Hernandez <aldyh@redhat.com>
8914b65e
AH
10222
10223 * config/rs6000/spe.md ("*movv2si_internal"): Check for register
10224 operand.
10225 (movv4hi_internal): Same.
10226 (movv2sf_internal): Same.
10227 (movv1di_internal): Same.
e66b2fcf 10228
7f9be256
TS
102292004-02-11 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
10230
10231 * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
c0689841 10232 TARGET_OLDABI consistently.
7f9be256
TS
10233 * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
10234 mips_va_arg,override_options,compute_frame_size,
10235 mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
10236 ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
c0689841 10237 and TARGET_OLDABI consistently.
7f9be256
TS
10238 * config/mips/mips.md (exception_receiver): Likewise.
10239 * config/mips/linux64.h: Likewise.
10240
6d0ef01e
HP
102412004-02-11 Hartmut Penner <hpenner@de.ibm.com>
10242
10243 * gcc/config/rs6000/rs6000.c (rs6000_override_options)
10244 Set AltiVec ABI and vrsave as default for ppc64 linux.
10245 (init_cumulative_args): Post error, if try to return
10246 value in AltiVec register without enable AltiVec.
423e95e2 10247 (function_arg_advance): Ditto for passing arguments.
6d0ef01e 10248
7537fc90
RS
102492004-02-11 Richard Sandiford <rsandifo@redhat.com>
10250
10251 * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
10252 a label before updating its usage count.
10253
1e9f1674
MK
102542004-02-10 Matt Kraai <kraai@alumni.cmu.edu>
10255
9f0e2d86 10256 * doc/install.texi: Remove extra cd.
1e9f1674 10257
b34417a4
ZL
102582004-02-10 Ziemowit Laski <zlaski@apple.com>
10259
10260 * c-common.c (vector_size_helper): Remove; call
10261 reconstruct_complex_type() instead.
10262 * tree.c (reconstruct_complex_type): New function
10263 (formerly vector_size_helper() in c-common.c).
10264 (make_vector): Make externally visible.
10265 * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
10266
a466bea3
KH
102672004-02-10 Kazu Hirata <kazu@cs.umass.edu>
10268
10269 * config/h8300/h8300-protos.h: Add a prototype for
10270 h8300_regs_ok_for_stm.
10271 * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
10272 * config/h8300/h8300.md (stm_h8300s_2_advanced,
10273 stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
10274 stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
10275 stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
10276 ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
10277 ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
10278 ldm_h8300s_4_normal, ldm_h8300s_4): Use
10279 h8300_regs_ok_for_stm().
10280
52bac949
DS
102812004-02-10 Danny Smith <dannysmith@users.sourceforge.net>
10282
10283 PR c/14088
896c3aa3 10284 * real.c (real_from_string): Look for 'X' as well as 'x' in
52bac949
DS
10285 hexfloat strings.
10286
2493deee
KH
102872004-02-10 Kazu Hirata <kazu@cs.umass.edu>
10288
10289 * config/h8300/h8300.md: Remove an incorrect comment about
10290 peephole2. Add comments.
10291
fbe6ec81
JZ
102922004-02-10 Josef Zlomek <zlomekj@suse.cz>
10293
10294 PR/14058
10295 * emit-rtl.c (set_decl_incoming_rtl): New.
10296 * tree.h (set_decl_incoming_rtl): New.
10297 * function.c (assign_parms): Use set_decl_incoming_rtl for setting
10298 DECL_INCOMING_RTL.
10299 * ada/misc.c (adjust_decl_rtl): Likewise.
10300
8a4baa83
PB
103012004-02-10 Per Bothner <per@bothner.com>
10302
10303 * c-opts.c (c_common_post_options): Don't emit working directory
10304 in cpp output if -P was specified.
10305
31cc6081
PB
103062004-02-10 Paolo Bonzini <bonzini@gnu.org>
10307
10308 PR c/14092
10309 * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
10310 negate_expr back to the original type.
10311
d1d5c836
AM
103122004-02-10 Alan Modra <amodra@bigpond.net.au>
10313
10314 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
10315 bump retaddr here.
10316
dad822d3
PB
103172004-02-10 Paolo Bonzini <bonzini@gnu.org>
10318
10319 * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
10320 gen_lowpart_SUBREG): Move under the file in which they
10321 are actually declared.
10322
cd271054
AC
103232004-02-10 Arnaud Charlet <charlet@act-europe.fr>
10324
10325 * doc/sourcebuild.texi: Add libada documentation.
10326
10327 * doc/install.texi: Update documentation on Ada build, now
10328 that the GNAT lib and tools are built automatically.
10329
117c5858
RS
103302004-02-10 Richard Sandiford <rsandifo@redhat.com>
10331
10332 * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
10333 && TARGET_IRIX.
10334
42a1b62e
ZL
103352004-02-09 Ziemowit Laski <zlaski@apple.com>
10336
10337 * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
10338 boundaries outside build_component_ref() call (a macro in ObjC++).
10339
997b8b4d
BW
103402004-02-09 Bob Wilson <bob.wilson@acm.org>
10341
10342 * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
10343 (init_cumulative_args): Likewise.
10344 (a7_overlap_mentioned_p): Delete prototype.
10345 * config/xtensa/xtensa.c (struct machine_function): Replace
10346 incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
10347 Add set_frame_ptr_insn field.
10348 (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
10349 (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
10350 if the operand is an argument in a7. If so, copy a7 to a new pseudo
10351 at the function entry and replace the operand with the pseudo.
10352 (init_cumulative_args): Remove unused arguments. Add new "incoming"
10353 argument and record this flag in CUMULATIVE_ARGS.
10354 (function_arg): Remove result_mode and special-case code to handle
10355 arguments in a7. Instead, set need_a7_copy flag when there is an
10356 incoming argument in a7.
10357 (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
10358 and use the value recorded in cfun->machine->set_frame_ptr_insn.
10359 (xtensa_builtin_saveregs): Check for negative gp_left value. Set
10360 need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of
10361 special-case code.
10362 (a7_overlap_mentioned_p): Delete.
10363 * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
10364 (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
10365 arguments to init_cumulative_args and pass "incoming" flag instead.
10366 (BLOCK_REG_PADDING): Delete.
10367 * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
10368 checks for reload_in_progress and reload_completed. Update calls to
10369 xtensa_copy_incoming_a7.
10370 (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander
10371 to call xtensa_copy_incoming_a7.
10372
10709fbf
DD
103732004-02-09 DJ Delorie <dj@redhat.com>
10374
10375 * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
10376 longer modify standard_exec_prefix, standard_bindir_prefix, or
10377 standard_startfile_prefix.
10378
c76362b4
JW
103792004-02-09 James E Wilson <wilson@specifixinc.com>
10380
228ae085
JW
10381 PR c++/11295
10382 * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
10383 to expand_expr_real call, and pass in alt_rtl as last argument.
10384
c76362b4
JW
10385 PR libstdc++/5625
10386 * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
10387 * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
10388 * builtins.def (BUILT_IN_EXTEND_POINTER): New.
10389 * except.c (expand_builtin_extend_pointer): New.
10390 * except.h (expand_builtin_extend_pointer): Declare.
10391
d886a041
DE
103922004-02-09 David Edelsohn <edelsohn@gnu.org>
10393
10394 * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
10395 unaligned loads and stores.
10396
756f76d0
RO
103972004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10398
10399 * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
10400 * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
10401
10402 * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
10403 * config/mips/iris5.h: ... here.
10404 * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
10405
10406 * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
10407 * config/mips/iris5.h: ... here.
10408
426ca3ca
RO
104092004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10410
10411 * configure.ac: Remove default executable files before AC_PROG_CC.
10412 * configure: Regenerate.
10413
500fc80f
KH
104142004-02-09 Kazu Hirata <kazu@cs.umass.edu>
10415
10416 PR target/13721
10417 * config/h8300/h8300.c (byte_reg): Call abort() if asked to
10418 print a operand other than a register.
10419
b83c4036
RS
104202004-02-09 Roger Sayle <roger@eyesopen.com>
10421
10422 * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
10423 tree code rather than call fold_convert, which doesn't specify a
10424 default floating point to integer conversion.
10425
3b4b85c9
BI
104262004-02-08 Bernardo Innocenti <bernie@develer.com>
10427
10428 * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
10429 code to support SGS assembler. Reformat adjacent code where possible.
b83c4036
RS
10430 * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
10431 definition.
10432 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
10433 for '%#'.
3b4b85c9 10434 * config/m68k/linux.h, config/m68k/m68k.c,
b83c4036
RS
10435 * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
10436 macros and asm_printf() format strings.
3b4b85c9
BI
10437 * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
10438 * config/m68k/linux.h: Update copyright.
10439 * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
10440
01bbf777 104412004-02-08 Andreas Schwab <schwab@suse.de>
9f0e2d86 10442 Bernardo Innocenti <bernie@develer.com>
01bbf777
AS
10443
10444 * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
10445 REGISTER_PREFIX.
10446 * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
10447 frame pointer register, overridable by OS targets.
10448 * (M68K_REGNAME): Macro to obtain register name for asm output,
10449 eventually replacing %a6 with M68K_FP_REG_NAME.
10450 * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
10451 * config/m68k/linux.h (REGISTER_NAMES): Likewise.
10452 * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
10453 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
10454 * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
10455
1f6acb82
KH
104562004-02-08 Kazu Hirata <kazu@cs.umass.edu>
10457
10458 * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
10459 hook_rtx_tree_int_null.
10460 * targhooks.c (default_struct_value_rtx): Remove.
10461 * targhooks.h: Remove the prototype for
10462 default_struct_value_rtx.
10463 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
10464 config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
10465 config/ip2k/ip2k.c, config/iq2000/iq2000.c,
10466 config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
10467 config/mn10300/mn10300.c, config/pdp11/pdp11.c,
10468 config/rs6000/rs6000.c, config/s390/s390.c,
10469 config/stormy16/stormy16.c, config/v850/v850.c,
10470 config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
10471 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
10472
b46b8fb4
JM
104732004-02-08 Joseph S. Myers <jsm@polyomino.org.uk>
10474
10475 * README.Portability: Change "ISO C89" to "ISO C90".
10476 * c-parse.in (primary, initelt): Likewise.
10477
7c476bde
RS
104782004-02-08 Richard Sandiford <rsandifo@redhat.com>
10479
10480 * real.c (encode_ibm_extended): Normalize the input value before
10481 converting it to a double. Handle the case where a normal value
10482 rounds to infinity.
10483
56ae04af
KH
104842004-02-08 Kazu Hirata <kazu@cs.umass.edu>
10485
f934561e
KH
10486 * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
10487 warning.
56ae04af
KH
10488 * cse.c (preferrable): Change to preferable. Update all of its
10489 callers.
10490 * genautomata.c (ainsn): Change
10491 first_ainsn_with_given_equialence_num to
10492 first_ainsn_with_given_equivalence_num. Update all of its
10493 references.
10494
ec1dbfca
JH
104952004-02-08 Jan Hubicka <jh@suse.cz>
10496
10497 * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
10498
f276fb54
DE
104992004-02-07 David Edelsohn <edelsohn@gnu.org>
10500
10501 * function.c (assign_parms): Fix formatting.
10502
fefcb65c
KH
105032004-02-07 Kazu Hirata <kazu@cs.umass.edu>
10504
10505 * default.h (PROMOTE_PROTOTYPES): Remove.
10506 * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
10507 STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
10508 EXPAND_BUILTIN_SAVEREGS): Poison.
10509 * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
10510 hook_bool_tree_false.
10511 (TARGET_PROMOTE_PROTOTYPES): Likewise.
10512 * target.h: Replace SETUP_INCOMING_VARARGS with
10513 targetm.calls.setup_incoming_varargs().
10514 * targhooks.c (default_promote_function_return): Remove.
10515 (default_promote_prototypes): Likewise.
10516 (default_struct_value_rtx): Always abort().
10517 (default_expand_builtin_saveregs): Always print an error
10518 message.
10519 (default_setup_incoming_varargs): Do nothing.
10520 (default_pretend_outgoing_varargs_named): Don't depend on
10521 SETUP_INCOMING_VARARGS.
10522 * targhooks.h: Remove the prototype for
10523 default_promote_function_return and
10524 default_promote_prototypes.
10525
dc79b3b8
KH
105262004-02-07 Kazu Hirata <kazu@cs.umass.edu>
10527
10528 * system.h (SHARED_SECTION_ASM_OP): Poison.
10529 * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
10530 * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
10531
a6f78652
ZW
105322004-02-07 Zack Weinberg <zack@codesourcery.com>
10533
10534 Bug 13856
10535 * c-decl.c (diagnose_mismatched_decls): Only give special
10536 treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
10537 is also true.
10538 (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
10539 DECL_FUNCTION_CODE when defining a built-in function.
10540 Don't update DECL_ESTIMATED_INSNS.
10541 * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
10542 FUNCTION_DECLs.
10543 * tree.h: Delete DECL_ESTIMATED_INSNS.
10544 * tree-inline.c (struct inline_data): Delete inlined_insns field.
10545 (expand_call_inline, optimize_inline_calls): Don't update
10546 DECL_ESTIMATED_INSNS nor inlined_insns.
10547 * cgraphunit.c (cgraph_analyze_function): Don't update
10548 DECL_ESTIMATED_INSNS.
10549
105502004-02-07 Zack Weinberg <zack@codesourcery.com>
10551
10552 * c-common.c (shadow_warning): Delete.
10553 * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
10554 * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
10555 * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
10556 * c-parse.in (free_parser_stacks): Delete.
10557
947c6b00
NN
105582004-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
10559
10560 * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
10561 config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
10562 Use the top level mkinstalldirs, not the one in the gcc subdir.
10563 * mkinstalldirs: Remove (from the gcc subdir).
10564
088414c1
RS
105652004-02-07 Roger Sayle <roger@eyesopen.com>
10566
10567 PR middle-end/13696
10568 * fold-const.c (fold_convert): New function to provide type
10569 conversion to the middle-end without using convert.
10570 (negate_expr, associate_trees, size_diffop, omit_one_operand,
10571 operand_equal_for_comparison_p, pedantic_omit_one_operand,
10572 invert_truthvalue, optimize_bit_field_compare, range_binop,
10573 decode_field_reference, make_range, build_range_check, unextend,
10574 fold_truthop, extract_muldiv_1, fold_mathfn_compare,
10575 fold_binary_op_with_conditional_arg, fold_inf_compare,
10576 fold_single_bit_test, fold, multiple_of_p): Replace all calls to
10577 convert with calls to fold_convert.
10578
076963eb
JH
105792004-02-07 Jan Hubicka <jh@suse.cz>
10580
10581 * genrecog.c (find_operand): add extra argument stop.
10582 (validate_pattern): Verify that mach_dup is duplicating operand
10583 defined lexically earlier.
10584
1197924d
KH
105852004-02-07 Kazu Hirata <kazu@cs.umass.edu>
10586
10587 * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
10588 * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
10589 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
10590 * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
10591 config/ia64/ia64.h, config/ip2k/ip2k.h,
10592 config/iq2000/iq2000.h, config/mips/iris5.h,
10593 config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
10594 config/rs6000/aix51.h, config/rs6000/aix52.h,
10595 config/rs6000/darwin.h, config/rs6000/rs6000.h,
10596 config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
10597 config/sparc/linux.h, config/sparc/linux64.h,
10598 config/sparc/netbsd-elf.h, config/sparc/sparc.h,
10599 config/xtensa/xtensa.h: Remove the definitions of
10600 MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
10601 MAX_WCHAR_TYPE_SIZE.
10602 * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
10603 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
10604
883899ee
SC
106052004-02-07 Stephane Carrez <stcarrez@nerim.fr>
10606
10607 PR bootstrap/13990
10608 * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
10609 gen_rtx_NE.
10610
f6e215cc
JZ
106112004-02-07 Josef Zlomek <zlomekj@suse.cz>
10612
10613 * var-tracking.c (vt_add_function_parameters): Surround checkings by
10614 #ifdef ENABLE_CHECKING and #endif.
10615
dfb36f9b
RS
106162004-02-07 Roger Sayle <roger@eyesopen.com>
10617
10618 * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
10619 either (-A)-B or (-B)-A, if A or B is easily negated respectively.
10620 (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
10621 integer types and floating point with unsafe_math_optimizations.
10622 Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
10623 Optimize A - B as A + (-B), if B is easily negated.
10624
0ea5865c
KH
106252004-02-07 Kazu Hirata <kazu@cs.umass.edu>
10626
10627 * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
10628 config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
10629 config/m32r/linux.h, config/rs6000/ppc64-fp.c,
10630 config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
10631 Update copyright.
10632
fb0840fc
KH
106332004-02-07 Kazu Hirata <kazu@cs.umass.edu>
10634
10635 * c-ppoutput.c, var-tracking.c: Fix comment typos.
10636
468c45a3
JW
106372004-02-06 James E Wilson <wilson@specifixinc.com>
10638
10639 * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
10640 glibc 2.3 or better.
10641
9c917669
KH
106422004-02-06 Kazu Hirata <kazu@cs.umass.edu>
10643
10644 * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
10645 to FLOAT_LIB_COMPARE_RETURNS_BOOL.
10646
fb7e4164
AM
106472004-02-07 Alan Modra <amodra@bigpond.net.au>
10648
10649 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
10650 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
10651 (SHLIB_MKMAP_OPTS): Delete.
10652 (TARGET_LIBGCC2_CFLAGS): Add -specs.
10653 (bispecs): Add rule.
10654 * config/rs6000/libgcc-ppc64.ver: New file.
10655 * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
10656 (__floatdidf, __floatdisf): Optimize multiply.
10657 (__fixunstfdi): New function.
10658 * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
10659 real and imag parts larger than one register.
10660 (function_arg): Correct type of reg used when fp arg split partially
10661 to stack.
10662 * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
10663 and __MACH__ or __powerpc64__.
10664
254878ea
RS
106652004-02-06 Roger Sayle <roger@eyesopen.com>
10666 Ulrich Weigand <uweigand@de.ibm.com>
10667
10668 * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
10669 of gen_highpart or gen_lowpart when the floating point format is
10670 wider than the result mode.
10671
b1053160
AP
106722004-02-06 Andrew Pinski <pinskia@physics.uc.edu>
10673
a6f78652 10674 * dwarf2out.c (loclabel_num): Move into #ifdef
b1053160
AP
10675 DWARF2_DEBUGGING_INFO.
10676
25fe8680
ZL
106772004-02-06 Ziemowit Laski <zlaski@apple.com>
10678
10679 * objc/objc-act.c (build_super_template) the 'class' field of
10680 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
10681 (get_super_receiver): Likewise.
10682
761fa0f7
KH
106832004-02-06 Kazu Hirata <kazu@cs.umass.edu>
10684
10685 * reload1.c (check_eliminable_occurrences): Optimize the reset
10686 of can_eliminate.
10687 (eliminate_regs_in_insn): Likewise.
10688
0a2d3d69 106892004-02-06 Daniel Berlin <dberlin@dberlin.org>
a6f78652 10690 Josef Zlomek <zlomekj@suse.cz>
0a2d3d69
DB
10691
10692 * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
10693 at the beginning of function, call dwarf2out_var_location for
10694 NOTE_INSN_VAR_LOCATION note.
10695 (struct var_loc_node, struct var_loc_list_def, loclabel_num,
10696 decl_loc_table): New.
10697 (lookup_decl_loc): New function.
10698 (add_var_loc_to_decl): New function.
10699 (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
10700 only if can_use_fbreg.
10701 (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
10702 functions.
10703 (loc_descriptor): Likewise. Process VAR_LOCATION.
10704 (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
10705 (loc_descriptor_from_tree): Call mem_loc_descriptor with
10706 can_use_fbreg == true.
10707 (add_location_or_const_value_attribute): Added parameter enum
10708 dwarf_attribute attr, generate attribute ATTR. Create the location list.
10709 (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
10710 (gen_formal_parameter_die): Call add_location_or_const_value_attribute
10711 with attr == DW_AT_location.
10712 (gen_subprogram_die): Generate the location list for DW_AT_frame_base
10713 if frame_base_decl is defined and has a location list.
10714 (gen_variable_die): Call add_location_or_const_value_attribute with
10715 attr == DW_AT_location.
10716 (dwarf2out_var_location): New function.
10717 (dwarf2out_begin_function): New function.
10718 (dwarf2out_init): Create decl_loc_table.
10719
1f0db3df
UW
107202004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
10721
10722 * loop.c (force_movables): Transitively increase the priorities of
10723 all insns forces by an insn, not just the first one.
10724
014a1138 107252004-02-06 Josef Zlomek <zlomekj@suse.cz>
a6f78652 10726 Daniel Berlin <dberlin@dberlin.org>
014a1138
JZ
10727
10728 Josef Zlomek <zlomekj@suse.cz>
10729 * Makefile.in (var-tracking.o): New.
10730 * common.opt (fvar-tracking): New.
10731 * flags.h (flag_var_tracking): New.
10732 * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
10733 * opts.c (common_handle_option): Add OPT_fvar_tracking.
10734 * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
a6f78652
ZW
10735 * rtl.c (note_insn_name): Likewise.
10736 * rtl.def (VAR_LOCATION): New.
10737 * rtl.h (NOTE_VAR_LOCATION): New.
10738 (NOTE_VAR_LOCATION_DECL): New.
10739 (NOTE_VAR_LOCATION_LOC): New.
10740 (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
10741 (variable_tracking_main): New exported function.
10742 * timevar.def (TV_VAR_TRACKING): New.
10743 * toplev.c (enum dump_file_index): Added DFI_vartrack.
10744 (dump_file): "vartrack" was added (-dV).
10745 (flag_var_tracking): New.
10746 (f_options): "var-tracking" was added.
014a1138 10747 (rest_of_handle_variable_tracking): New function.
a6f78652 10748 (rest_of_compilation): Run variable tracking.
014a1138
JZ
10749 (process_options): If user has not specified flag_var_tracking set it
10750 according to optimize, debug_info_level and debug_hooks.
10751 * tree.h (frame_base_decl): New.
a6f78652 10752 * var-tracking.c: New file.
014a1138
JZ
10753 * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
10754 (ia64_override_options): Set flags to run variable tracking in machine
10755 dependent reorg instead of toplev.c.
10756 (ia64_reorg): Run variable tracking if wanted.
a6f78652 10757 * doc/invoke.texi: Mention variable tracking in -dV,
014a1138 10758 add and -fvar-tracking.
a6f78652 10759 * doc/passes.texi: Added variable tracking pass.
014a1138
JZ
10760
10761 Daniel Berlin <dberlin@dberlin.org>
10762 * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
10763 * dbxout.c (dbx_debug_hooks): Likewise.
10764 (xcoff_debug): Likewise.
10765 * debug.c (do_nothing_debug_hooks): Likewise.
10766 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
10767 * dwarfout.c (dwarf_debug_hooks): Likewise.
10768 * sdbout.c (sdb_debug_hooks): Likewise.
10769 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
a6f78652
ZW
10770 * final.c (final_scan_insn): Call var_location debug hook for each
10771 NOTE_INSN_VAR_LOCATION.
014a1138 10772
298c28a8
JH
107732004-02-06 Jan Hubicka <jh@suse.cz>
10774
10775 * flow.c (update_life_info): Allocate reg_deaths when called from
10776 scheudler.
10777 (attempt_auto_inc): Update life ranges accordingly.
10778
3199cb41
UW
107792004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
10780
10781 PR debug/11816
10782 * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
10783
1a6dd8a2
UW
107842004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
10785
10786 * cfganal.c (flow_call_edges_add): Never split a libcall block.
10787
1711adc2
DB
107882004-02-06 Daniel Berlin <dberlin@dberlin.org>
10789
10790 * dwarf2out.c (output_loc_list): Don't use deltas if we have
10791 a separate line info table in use.
10792 Use the correct size for terminators.
10793 (output_die): Use offset, not delta.
10794
b1e5a971
L
107952004-02-06 H.J. Lu <hongjiu.lu@intel.com>
10796
10797 * doc/invoke.texi: Remove the pni option from -mfpmath=.
10798
736b64dd
JH
107992004-02-06 Jan Hubicka <jh@suse.cz>
10800
10801 * recog.c (split_all_insns): Do not update reg info.
10802 * regrename.c (regrename_optimize): Likewise.
10803 * toplev.c (rest_of_handle_reorder_blocks): Likewise.
10804 * flow.c (struct propagate_block_info): Add insn_num field.
10805 (reg_deaths): New array.
10806 (life_analysis): Free reg_deaths info.
10807 (allocate_reg_life_data): Allocate reg_deaths array.
10808 (propagate_one_insn): Use new array.
10809 (init_propagate_block): Initialize it.
10810 (free_propagate_block_info): Finish compuation of
10811 REG_LIVE_LENGTH
10812 (attempt_auto_inc): Sanity check that REG_INFO is not
10813 computed at same time.
10814 (mark_used_regs): Update new array.
10815
10816 * reg-stack.c (subst_stack_regs): Unshare clobbers before
10817 substitution.
10818
eb457a7a
KH
108192004-02-06 Kazu Hirata <kazu@cs.umass.edu>
10820
10821 * config/s390/s390.md (*extendsiqi2_short_displ): Change to
10822 *extendqisi2_short_displ.
10823
0f6937fe
AM
108242004-02-06 Alan Modra <amodra@bigpond.net.au>
10825
10826 * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
10827 * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
10828 (emit_library_call_value_1): Likewise pass nargs.
10829 * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
10830 * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
10831 * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
10832 parameter instead of scanning TYPE_ARGS_TYPES to count args.
10833 * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
10834 prototype.
10835 * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
10836 (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
10837 (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
10838 * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
10839 INIT_CUMULATIVE_ARGS.
10840 * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
10841 * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
10842 config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
10843 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
10844 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
10845 config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
10846 config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
10847 config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
10848 config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
07711f53 10849 config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
0f6937fe
AM
10850 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
10851 config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
10852
11b635fe
KH
108532004-02-06 Kazu Hirata <kazu@cs.umass.edu>
10854
10855 * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
10856 possible.
10857
ace3ffcd
KH
108582004-02-06 Kazu Hirata <kazu@cs.umass.edu>
10859
10860 * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
10861 note containing (plus (reg) (const_int)), where reg is an
10862 eliminable reg, then perform the register elimination without
10863 depending on eliminate_regs().
10864
78bc94a2
KH
108652004-02-06 Kazu Hirata <kazu@cs.umass.edu>
10866
10867 * config/arc/arc.c (arc_return_in_memory): Check the return
10868 value of int_size_in_bytes against -1. Don't check
10869 TREE_ADDRESSABLE.
10870 * config/avr/avr.c (avr_return_in_memory): Check the return
10871 value of int_size_in_bytes against -1.
10872 * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
10873 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
10874 Likewise.
10875 * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
10876 * config/stormy16/stormy16.c (xstormy16_return_in_memory):
10877 Likewise.
10878
d8c2bed3
KH
108792004-02-06 Kazu Hirata <kazu@cs.umass.edu>
10880
10881 * config/frv/frv-protos.h: Remove the prototype for
10882 frv_setup_incoming_varargs.
10883 * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
10884 (frv_setup_incoming_varargs): Make it static.
10885 * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
10886
3e29e2aa
KH
108872004-02-06 Kazu Hirata <kazu@cs.umass.edu>
10888
10889 * config/fr30/fr30-protos.h: Remove the prototype for
10890 fr30_setup_incoming_varargs.
10891 Update the prototypes for fr30_num_arg_regs and
10892 fr30_function_arg_partial_nregs.
10893 * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
10894 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10895 (fr30_setup_incoming_varargs): Make it static.
10896 Add argument second_time. Don't do anything when second_time
10897 is nonzero.
10898 (fr30_num_arg_regs): Change the type of the first argument to
10899 enum machine_mode.
10900 (fr30_function_arg_partial_nregs): Change the type of the
10901 second argument to enum machine_mode.
10902 * config/fr30/fr30.h (STRUCT_VALUE): Remove.
10903 (SETUP_INCOMING_VARARGS): Remove.
10904
07ba2efb
KH
109052004-02-06 Kazu Hirata <kazu@cs.umass.edu>
10906
10907 * config/arc/arc-protos.h: Remove the prototype for
10908 arc_setup_incoming_varargs.
10909 * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10910 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10911 (arc_setup_incoming_varargs): Make it static.
10912 (arc_external_libcall): Likewise.
10913 * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
10914 Remove the commented-out definition of
10915 ASM_OUTPUT_EXTERNAL_LIBCALL.
10916
f4954ff1
ST
109172004-02-05 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
10918
10919 * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
10920 to $$(slibdir) in the installation commands.
10921
403c659c
DE
109222004-02-05 David Edelsohn <edelsohn@gnu.org>
10923
10924 * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
10925 with inner_regno, not regno.
10926 * rtlanal.c (refers_to_regno_p): Same.
10927
5b547172
KH
109282004-02-05 Kazu Hirata <kazu@cs.umass.edu>
10929
10930 * config.gcc: Remove i370 support.
10931
ce5c1cf3
KC
109322004-02-05 Kelley Cook <kcook@gcc.gnu.org>
10933
10934 * doc/install.texi: Update automake and autoconf version
10935 requirements. Note where to find gcj automake version.
10936
109372004-02-05 Kelley Cook <kcook@gcc.gnu.org>
10938
10939 * Makefile.in (generate-manpages): Move dependencies to ...
10940 (man): here.
10941 * doc/makefile.texi: Document new targets.
10942 * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
10943
02ba6b22
KC
109442004-02-05 Kelley Cook <kcook@gcc.gnu.org>
10945
10946 PR/13485
10947 Makefile.in (srcextra): Add a level of indirection to ...
10948 (gcc.srcextra): ... here.
10949 (po-generated): Delete.
10950 (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on
10951 options.c.
10952 (start.encap): Remove superfluous lang.srcextra dependency.
10953 objc/Make-lang.in (po-generated): Delete.
10954
66fcab25
KH
109552004-02-05 Kazu Hirata <kazu@cs.umass.edu>
10956
10957 * config/ia64/ia64.c (REG_GP): Remove.
10958
89a95129
RO
109592004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10960
10961 * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
10962
9733d507
DP
109632004-02-05 Devang Patel <dpatel@apple.com>
10964
10965 * dwarf2out.c (force_type_die): Look up input type itself
10966 instead of root_type() of type.
a6f78652 10967
19796784
AK
109682004-02-05 Andreas Krebbel <krebbel1@de.ibm.com>
10969
10970 * config/s390/s390.md ("*tmqidi_ext"): New insn.
10971 ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
10972 pre-reload splitters are transformed to post-reload
10973 define_insn_and_split patterns.
10974 ("*tmqisi_ext"): Renamed old "*tmqi_ext".
10975
136e64db
KH
109762004-02-05 Kazu Hirata <kazu@cs.umass.edu>
10977
10978 * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
10979 TARGET_PROMOTE_PROTOTYPES.
10980
839ee4bc
RO
109812004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10982
10983 PR middle-end/13750
10984 Revert:
10985 2004-01-15 Geoffrey Keating <geoffk@apple.com>
10986 PR pch/13361
10987 * c-typeck.c (constructor_asmspec): Delete.
10988 (struct initializer_stack): Delete field 'asmspec'.
10989 (start_init): Delete saving of asmspec.
10990 (finish_init): Don't update constructor_asmspec.
10991 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10992 * stmt.c (expand_asm): Duplicate strings from tree.
10993 (expand_asm_operands): Likewise.
10994 * tree.c (tree_size): Update computation of size of STRING_CST.
10995 (make_node): Don't make STRING_CST nodes.
10996 (build_string): Allocate string with tree node.
10997 * tree.def (STRING_CST): Update comment.
10998 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10999 (tree_string): Place contents of string in tree node.
11000 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11001 from tree.
11002
687d688e
JM
110032004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
11004
11005 * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
11006 msgid.
11007
20a20bf0
DN
110082004-02-05 Dorit Naishlos <dorit@il.ibm.com>
11009
11010 * config/rs6000/altivec.md (*movv4si_internal): At least one
11011 operand must be altivec_register_operand.
11012 (*movv8hi_internal1): Likewise.
11013 (*movv16qi_internal1): Likewise.
11014 (*movv4sf_internal1): Likewise.
11015
6b37db3c
DE
110162004-02-05 David Edelsohn <edelsohn@gnu.org>
11017
11018 * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
11019 * configure: Regenerate.
11020
e0b24bce
JW
110212004-02-05 Jonathan Wakely <redi@gcc.gnu.org>
11022
11023 * doc/install.texi: Update description of --gxx-include-dir to
11024 give correct default value.
11025
2dca8ddb
KH
110262004-02-05 Kazu Hirata <kazu@cs.umass.edu>
11027
11028 * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
11029 8 with MAC_REG.
11030
92fd5e41
KH
110312004-02-05 Kazu Hirata <kazu@cs.umass.edu>
11032
11033 * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
11034 gen_rtx_PARALLEL.
11035
f822fcf7
KH
110362004-02-05 Kazu Hirata <kazu@cs.umass.edu>
11037
11038 * emit-rtl.c: Update the comment about the file.
11039
4ef84575
JM
110402004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
11041
11042 * sourcebuild.texi (Test Idioms): Update testcase naming
11043 conventions.
11044
8e9ea4d7
PB
110452004-02-04 Per Bothner <per@bothner.com>
11046
11047 Partially revert/redo 2003-10-01 change; fix -fworking-directory.
11048 * c-ppoutput.c (pp_dir_change): New function.
11049 * c-common.h (pp_dir_change): New declaration.
11050 * cpplib.h (struct cpp_options): Remove working_directory field.
11051 * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to
11052 (cpp_read_main_file): as before 10-01. Call _cpp_stack_file.
11053 Don't handle -fworking_directory here, but in c_common_post_options.
11054 (read_original_directory): Don't back up when done.
11055 Don't clear no-longer used working_directory flag.
11056 * cpplib.h: Update declarations to match.
11057 * c-lex.c (cb_dir_change): Move to c-opts.c.
11058 (init_c_lex): Don't set dir_change callback here, since we want
11059 to set it even if flag_preprocess_only.
11060 * c-opts.c (cb_dir_change): Function moved from c-lex.c.
11061 (c_common_post_options): Set dir_change callback.
11062 Call pp_dir_change if approporiate.
11063 (finish_options): Don't call cpp_find_main_file here. Hence remove
11064 unneeded parameter and result. Do LC_RENAME for <built-in>.
11065 (c_common_post_options): Call cpp_read_main_file here instead.
11066 (c_common_init): Update accordingly.
11067 (push_command_line_include): Don't cpp_push_main_file.
11068 Do LC_RENAME rather than LC_LEASE to get back to main file.
11069 Compared to pre-10-01 version, inline cpp_rename_to_main_file.
11070 (c_common_parse_file): Call cpp_read_main_file for subsequent main
11071 files, but call finish_options for all files.
11072 * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory.
11073 * fix-header.c (read_scan_file): Call cpp_read_main_file instead of
11074 cpp_find_main_file + cpp_push_main_file.
11075 * c-lex.c (fe_file_change): Don't set main_input_filename here.
11076 * opts.c (handle_options): Only set main_input_filename first time.
11077
5384443a
ILT
110782004-02-05 Ian Lance Taylor <ian@wasabisystems.com>
11079
11080 * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
11081
3c241c19
GK
110822004-02-04 Geoffrey Keating <geoffk@apple.com>
11083
11084 * reload.c (find_equiv_reg): When checking for register overlap,
11085 don't index hard_regno_nregs with a pseudo-reg.
11086
a322288b
UW
110872004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
11088
11089 * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
11090
859b9c1d
DE
110912004-02-04 David Edelsohn <edelsohn@gnu.org>
11092
11093 * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
11094 against FIRST_PSEUDO_REGISTER.
11095
7e63a64e
RO
110962004-02-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11097
11098 * Makefile.in: Move target, host overrides after per-language
11099 fragments.
11100
11101 * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
11102 (GNATLIBCFLAGS): Remove -g.
11103
5efb1046
KH
111042004-02-04 Kazu Hirata <kazu@cs.umass.edu>
11105
11106 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11107 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11108 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11109 config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
11110 config/pdp11/pdp11.c, config/rs6000/rs6000.c,
11111 config/sparc/sparc.c, config/vax/vax.c: Revert the
11112 replacements of "FALLTHRU" with "Fall through" done in the
11113 previous patch.
11114
ff482c8d
KH
111152004-02-04 Kazu Hirata <kazu@cs.umass.edu>
11116
11117 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
11118 config/arm/arm.c, config/arm/arm.md,
11119 config/cris/cris-protos.h, config/fr30/fr30.c,
11120 config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
11121 config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
11122 config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
11123 config/ip2k/ip2k.md, config/ip2k/libgcc.S,
11124 config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
11125 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
11126 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
11127 config/ns32k/netbsd.h, config/ns32k/ns32k.c,
11128 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11129 config/rs6000/darwin-ldouble.c, config/s390/s390.h,
11130 config/s390/s390.md, config/sparc/netbsd-elf.h,
11131 config/sparc/openbsd.h, config/sparc/sparc.c,
11132 config/xtensa/lib2funcs.S: Fix comment formatting.
11133
59b9a953
KH
111342004-02-04 Kazu Hirata <kazu@cs.umass.edu>
11135
11136 * config/alpha/alpha.c, config/arc/arc.c,
11137 config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
11138 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
11139 config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
11140 config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
11141 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11142 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11143 config/iq2000/iq2000.c, config/m32r/m32r.c,
11144 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
11145 config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
11146 config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
11147 config/rs6000/rs6000.h, config/sparc/sparc.c,
11148 config/vax/vax.c: Fix comment typos. Follow spelling
11149 conventions.
11150
e146f815
KH
111512004-02-04 Kazu Hirata <kazu@cs.umass.edu>
11152
11153 * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
11154 caller-save.c, df.h, genconfig.c, global.c, lcm.c,
11155 ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
11156 sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
11157 config/arm/fpa.md, config/arm/iwmmxt.md,
11158 config/arm/netbsd-elf.h, config/arm/netbsd.h,
11159 config/m68hc11/m68hc11.md, config/mips/iris5.h,
11160 config/mn10300/mn10300.md, config/rs6000/altivec.md,
11161 config/sparc/netbsd-elf.h: Update copyright.
11162
e2a17f6e
EB
111632004-02-04 Eric Botcazou <ebotcazou@libertysurf.fr>
11164
11165 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
11166 for all modes whose size is greater than 8 bytes if ARCH32.
11167 (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
11168 by reference if ARCH32.
11169
e0cc7f73 111702004-02-04 Aldy Hernandez <aldyh@redhat.com>
a6f78652
ZW
11171
11172 * cgraphunit.c (cgraph_postorder): Fix typo in comment.
e0cc7f73 11173
7bdff56f
UW
111742004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
11175
11176 * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
11177 to before adddi3 insn patterns.
11178 ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
11179 "reload_insi"): Move to before addsi3 insn patterns.
11180
dd292d0a
MM
111812004-02-04 Mark Mitchell <mark@codesourcery.com>
11182
11183 * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
11184 parameter. Use it instead of current_function_is_thunk.
11185 * function.h (struct function): Update documentation for is_thunk.
11186 * tree.h (CALL_FROM_THUNK_P): New macro.
11187 * config/alpha/alpha.c (alpha_sa_mask): Do not check
11188 no_new_pseudos when testing current_function_is_thunk.
11189 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
11190
c2379679
KH
111912004-02-04 Kazu Hirata <kazu@cs.umass.edu>
11192
11193 * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
11194 TARGET_SETUP_INCOMING_VARARGS.
11195
a2a8cc44
KH
111962004-02-04 Kazu Hirata <kazu@cs.umass.edu>
11197
11198 * emit-rtl.c (gen_rtx): Remove.
11199 * genattrtab.c: Don't mention gen_rtx in a comment.
11200 * rtl.h: Remove the prototype for gen_rtx.
11201 * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
11202
f61c92c3
KH
112032004-02-04 Kazu Hirata <kazu@cs.umass.edu>
11204
11205 * config/arc/arc.h, config/fr30/fr30.h
11206 (SETUP_INCOMING_VARARGS): Remove the target-independent
11207 comments.
11208 * doc/tm.texi: Don't mention deprecated target macros.
11209
c35c17c1
KH
112102004-02-04 Kazu Hirata <kazu@cs.umass.edu>
11211
11212 * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
11213 target-independent comment.
11214
cea28603
KH
112152004-02-04 Kazu Hirata <kazu@cs.umass.edu>
11216
11217 * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
11218 mention deprecated target macros.
11219
a4a4b1d3
KH
112202004-02-04 Kazu Hirata <kazu@cs.umass.edu>
11221
11222 * config.gcc: Remove obsolete ports and configurations.
11223 * config/linux-aout.h, config/netware.h,
11224 config/t-linux-gnulibc1, config/d30v/abi,
11225 config/d30v/d30v-protos.h, config/d30v/d30v.c,
11226 config/d30v/d30v.h, config/d30v/d30v.md,
11227 config/d30v/libgcc1.asm, config/d30v/t-d30v,
11228 config/dsp16xx/dsp16xx-modes.def,
11229 config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
11230 config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
11231 config/i370/README, config/i370/i370-c.c,
11232 config/i370/i370-protos.h, config/i370/i370.c,
11233 config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
11234 config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
11235 config/i386/freebsd-aout.h, config/i386/linux-aout.h,
11236 config/i386/moss.h, config/i386/netware.h,
11237 config/i386/svr3.ifile, config/i386/svr3dbx.h,
11238 config/i386/svr3gas.h, config/i386/svr3z.ifile,
11239 config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
11240 config/i960/i960-c.c, config/i960/i960-coff.h,
11241 config/i960/i960-modes.def, config/i960/i960-protos.h,
11242 config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
11243 config/i960/rtems.h, config/i960/t-960bare,
11244 config/m68k/hp310.h, config/m68k/hp320.h,
11245 config/m68k/hp320base.h, config/m68k/m68kv4.h,
11246 config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
11247 Remove.
11248 * doc/extend.texi, doc/install.texi, doc/invoke.texi,
11249 doc/md.texi: Remove mentions of obsolete ports.
11250
40e02b4a
JH
112512004-02-04 Jan Hubicka <jh@suse.cz>
11252
11253 * alias.c (find_base_term, get_addr): Do not dereference NULL
11254 pointer when all VALUE's locations has been invalidated.
11255 (rtx_equal_for_memref_p): Simplify checking of VALUEs.
11256
a6f78652 112572004-02-03 Wolfgang Bangerth <bangerth@dealii.org>
1c02f6f2
WB
11258
11259 * doc/invoke.texi (x86 options): Fix spelling/wording.
11260
584e5527
RS
112612004-02-03 Richard Sandiford <rsandifo@redhat.com>
11262
11263 * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
11264 put the original string in a comment.
11265 * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
11266 * config/mips/mips.c (mips_output_ascii): Likewise.
11267 * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
11268
9b2b3375
KH
112692004-02-03 Kazu Hirata <kazu@cs.umass.edu>
11270
11271 * system.h (GIV_SORT_CRITERION): Poison.
11272 * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
11273 * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
11274
888d65b5
RS
112752004-02-03 Roger Sayle <roger@eyesopen.com>
11276
11277 PR target/9348
11278 * expr.c (expand_expr_real) <MULT_EXPR>: When performing widening
11279 multiplies with a multiplication of the wrong signedness, its the
11280 signedness of the multiplication that we've performed that needs to
11281 be passed to expand_mult_highpart_adjust. Avoid emitting a nop-move
11282 if expand_mult_highpart_adjust places the result in target.
11283
a8c0bbc7
RH
112842004-02-03 Richard Henderson <rth@redhat.com>
11285
11286 * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
11287
a8f0f22e
R
112882004-02-03 J"orn Rennecke <joern.rennecke@superh.com>
11289
11290 * config.gcc (sh[234]l): Use little endian fragments.
11291
e621b588
PK
112922004-02-03 Paul Koning <pkoning@equallogic.com>
11293
11294 * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
11295 * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
11296 * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
11297 encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
11298 floating point format.
11299 (pdp11_f_format, pdp11_d_format): New real_format descriptors for
11300 the above functions.
11301 (output_move_quad): Output float values in correct target format.
11302 (legitimate_const_double_p): New function.
11303 * config/pdp11/pdp11.h: Fix typos.
11304 (FLOAT_WORDS_BIG_ENDIAN): Add definition.
11305 (TARGET_FLOAT_FORMAT): Ditto.
11306 (pdp11_f_format, pdp11_d_format): Add external declarations.
11307 (MAX_REGS_PER_ADDRESS): Corrected.
11308 (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
11309 (PRINT_OPERAND): Output float literals in target format.
11310
5a98fa7b
MM
113112004-02-03 Mark Mitchell <mark@codesourcery.com>
11312
11313 PR c++/13975
11314 * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
11315 TI_PRIVATE.
11316 (access_public_node): Redefine.
11317 (access_protected_node): Likewise.
11318 (access_private_node): Likewise.
11319 * tree.c (build_common_tree_nodes): Create access_public_node,
11320 access_protected_node, and access_private_node.
11321
0263e6bf
SE
113222004-02-03 Steve Ellcey <sje@cup.hp.com>
11323
11324 * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
11325 (MASK_INLINE_INT_DIV_THR): Ditto.
11326 (MASK_INLINE_SQRT_LAT): Ditto.
11327 (MASK_INLINE_SQRT_THR): Ditto.
11328 (MASK_DWARF2_ASM): Ditto.
11329 (MASK_EARLY_STOP_BITS): Ditto.
11330
9b66ebb1
PB
113312004-02-02 Paul Brook <paul@codesourcery.com>
11332
11333 Merge from csl-arm-branch.
11334
11335 2004-01-30 Paul Brook <paul@codesourcery.com>
11336
11337 * aof.h (REGISTER_NAMES): Add vfp reg names
11338 (ADDITIONAL_REGISTER_NAMES): Ditto.
11339 * aout.h (REGISTER_NAMES): Ditto.
11340 (ADDITIONAL_REGISTER_NAMES): Ditto.
11341 * arm-protos.h: Update/Add Prototypes.
11342 * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
11343 Only allow 0.0 for VFP.
11344 (fp_consts_inited): Rename from fpa_consts_inited. Update users.
11345 (values_fp): Rename from values_fpa. Update Users.
11346 (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
11347 Update users. Only check valid constants for this hardware.
11348 (arm_float_rhs_operand): Rename from fpa_rhs_operand. Update Users.
11349 Only allow consts for FPA.
11350 (arm_float_add_operand): Rename from fpa_add_operand. Update users.
11351 Only allow consts for FPA.
11352 (use_return_insn): Check for saved VFP regs.
11353 (arm_legitimate_address_p): Handle VFP DFmode addressing.
11354 (arm_legitimize_address): Ditto.
11355 (arm_general_register_operand): New function.
11356 (vfp_mem_operand): New function.
11357 (vfp_compare_operand): New function.
11358 (vfp_secondary_reload_class): New function.
11359 (arm_float_compare_operand): New function.
11360 (vfp_print_multi): New function.
11361 (vfp_output_fstmx): New function.
11362 (vfp_emit_fstm): New function.
11363 (arm_output_epilogue): Output VPF reg restore code.
11364 (arm_expand_prologue): Output VFP reg save code.
11365 (arm_print_operand): Add 'P'.
11366 (arm_hard_regno_mode_ok): Return modes for VFP regs.
11367 (arm_regno_class): Return classes for VFP regs.
11368 (arm_compute_initial_elimination_offset): Include space for VFP regs.
11369 (arm_get_frame_size): Ditto.
11370 * arm.h (FIXED_REGISTERS): Add VFP regs.
11371 (CALL_USED_REGISTERS): Ditto.
11372 (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
11373 (FIRST_VFP_REGNUM): Define.
11374 (LAST_VFP_REGNUM): Define.
11375 (IS_VFP_REGNUM): Define.
11376 (FIRST_PSEUDO_REGISTER): Include VFP regs.
11377 (HARD_REGNO_NREGS): Handle VFP regs.
11378 (REG_ALLOC_ORDER): Add VFP regs.
11379 (enum reg_class): Add VFP_REGS.
11380 (REG_CLASS_NAMES): Ditto.
11381 (REG_CLASS_CONTENTS): Ditto.
11382 (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
11383 (REG_CLASS_FROM_LETTER): Add 'w'.
11384 (EXTRA_CONSTRAINT_ARM): Add 'U'.
11385 (EXTRA_MEMORY_CONSTRAINT): Define.
11386 (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
11387 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
11388 (REGISTER_MOVE_COST): Ditto.
11389 (PREDICATE_CODES): Add arm_general_register_operand,
11390 arm_float_compare_operand and vfp_compare_operand.
11391 * arm.md (various): Rename as above.
11392 (divsf3): Enable when TARGET_VFP.
11393 (divdf3): Ditto.
11394 (movdfcc): Ditto.
11395 (sqrtsf2): Ditto.
11396 (sqrtdf2): Ditto.
11397 (arm_movdi): Disable when TARGET_VFP.
11398 (arm_movsi_insn): Ditto.
11399 (movsi): Only split with general regs.
11400 (cmpsf): Use arm_float_compare_operand.
11401 (push_fp_multi): Restrict to TARGET_FPA.
11402 (vfp.md): Include.
11403 * vfp.md: New file.
11404 * fpa.md (various): Rename as above.
11405 * doc/md.texi: Document ARM w and U constraints.
11406
11407 2004-01-15 Paul Brook <paul@codesourcery.com>
11408
11409 * config.gcc: Add with_fpu. Allow with-float=softfp.
11410 * config/arm/arm.c (arm_override_options): Rename *-s to *s.
11411 Break out of loop when we find a float-abi. Fix typo.
11412 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
11413 Set -mfloat-abi=.
11414 * doc/install.texi: Document --with-fpu.
11415
11416 2003-01-14 Paul Brook <paul@codesourcery.com>
11417
11418 * config.gcc (with_arch): Add armv6.
11419 * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
11420 * config/arm/arm.c (arm_overrride_options): Ditto.
11421
11422 2004-01-08 Richard Earnshaw <rearnsha@arm.com>
11423
11424 * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
11425 (FL_ARCH6): Renamed from FL_ARCH6J.
11426 (arm_arch3m): Renamed from arm_fast_multiply.
11427 (arm_arch6): Renamed from arm_arch6j.
11428 * arm.h: Update all uses of above.
11429 * arm-cores.def: Likewise.
11430 * arm.md: Likewise.
11431
11432 * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
11433 not arm6j. Add entry for arch armv6.
11434
11435 2004-01-07 Richard Earnshaw <rearnsha@arm.com>
11436
11437 * arm.c (arm_emit_extendsi): Delete.
11438 * arm-protos.h (arm_emit_extendsi): Delete.
11439 * arm.md (zero_extendhisi2): Also handle zero-extension of
11440 non-subregs.
11441 (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
11442 (thumb_zero_extendhisi2): Only match if not v6.
11443 (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
11444 (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
11445 (thumb_extendqisi2): Likewise.
11446 (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
11447 (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
11448 (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
11449 (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
11450 (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
11451 (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
11452 (arm_zero_extendhisi2addsi): Remove subreg. Add attributes.
11453 (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
11454 (arm_extendqisi2addsi): Likewise.
11455
11456 2003-12-31 Mark Mitchell <mark@codesourcery.com>
11457
11458 Revert this change:
11459 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11460 + REG addressing modes.
11461
11462 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11463 + REG addressing modes.
11464
11465 2003-12-30 Mark Mitchell <mark@codesourcery.com>
11466
11467 * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
11468 CONSTANT_P_RTX.
11469
11470 2003-30-12 Paul Brook <paul@codesourcery.com>
11471
11472 * longlong.h: protect arm inlines with !defined (__thumb__)
11473
11474 2003-30-12 Paul Brook <paul@codesourcery.com>
11475
11476 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
11477
11478 2003-12-30 Nathan Sidwell <nathan@codesourcery.com>
11479
11480 * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
11481 change.
11482
11483 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
11484
11485 * builtins.c (expand_builtin_apply_args_1): Add pretend args size
11486 to the virtual incoming args pointer for downward stacks.
11487
11488 2003-12-29 Paul Brook <paul@codesourcery.com>
11489
11490 * config/arm/arm-cores.def: Add cost function.
11491 * config/arm/arm.c (arm_*_rtx_costs): New functions.
11492 (arm_rtx_costs): Remove
11493 (struct processors): Add rtx_costs field.
11494 (all_cores, all_architectures): Ditto.
11495 (arm_override_options): Set targetm.rtx_costs.
11496 (thumb_rtx_costs): New function.
11497 (arm_rtx_costs_1): Remove cases handled elsewhere.
11498 * config/arm/arm.h (processor_type): Add COSTS parameter.
11499
11500 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
11501
11502 * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
11503 (arm926ejs.md): Include it.
11504 * config/arm/arm926ejs.md: New pipeline description.
11505
11506 2003-12-24 Paul Brook <paul@codesourcery.com>
11507
11508 * config/arm/arm.c (arm_arch6j): New variable.
11509 (arm_override_options): Set it.
11510 (arm_emit_extendsi): New function.
11511 * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
11512 * config/arm/arm.h (arm_arch6j): Declare.
11513 * config/arm/arm.md: Add sign/zero extend insns.
11514
11515 2003-12-23 Paul Brook <paul@codesourcery.com>
11516
11517 * config/arm/arm.c (all_architectures): Add armv6.
11518 * doc/invoke.texi: Document it.
11519
11520 2003-12-19 Paul Brook <paul@codesourcery.com>
11521
11522 * config/arm/arm.md: Add load1 and load_byte "type" attrs. Modify
11523 insn patterns to match.
11524 * config/arm/arm-generic.md: Ditto.
11525 * config/arm/cirrus.md: Ditto.
11526 * config/arm/fpa.md: Ditto.
11527 * config/amm/iwmmxt.md: Ditto.
11528 * config/arm/arm1026ejs.md: Ditto.
11529 * config/arm/arm1135jfs.md: Ditto. Add insn_reservation and bypasses
11530 for 11_loadb.
11531
11532 2003-12-18 Nathan Sidwell <nathan@codesourcery.com>
11533
11534 * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
11535 * config/arm/arm.c (arm_adjust_cost): Check shift cost for
11536 TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
11537 (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
11538 arm_no_early_mul_dep): Correctly deal with conditional execution,
11539 parallels and single shift operations.
11540 (arm_no_early_alu_shift_value_dep): Define.
11541 * arm.md (attr type): Replace 'normal' with 'alu',
11542 'alu_shift' and 'alu_shift_reg'.
11543 (attr core_cycles): Adjust.
11544 (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
11545 *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
11546 *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
11547 *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
11548 *arith_shiftsi_compare0_scratch, *sub_shiftsi,
11549 *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
11550 *if_shift_move, *if_move_shift, *if_shift_shift): Set type
11551 attribute appropriately.
11552 * config/arm/arm1026ejs.md (alu_op): Adjust.
11553 (alu_shift_op, alu_shift_reg_op): New.
11554 * config/arm/arm1136.md: Add better bypasses for early
11555 registers. Remove load[234] and store[234] bypasses.
11556 (11_alu_op): Adjust.
11557 (11_alu_shift_op, 11_alu_shift_reg_op): New.
11558
11559 2003-12-15 Nathan Sidwell <nathan@codesourcery.com>
11560
11561 * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
11562 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
11563 * config/arm/arm.c (arm_no_early_store_addr_dep,
11564 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
11565 * config/arm/arm1026ejs.md: Add load-store bypass.
11566 * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
11567 Add bypasses between instructions.
11568
11569 2003-12-10 Paul Brook <paul@codesourcery.com>
11570
11571 * config/arm/arm.c (arm_fpu_model): New variable.
11572 (arm_fload_abi): New variable.
11573 (target_fpe_name): Rename from target_fp_name.
11574 (target_fpu_name): New variable.
11575 (arm_is_cirrus): Remove.
11576 (fpu_desc): New struct.
11577 (all_fpus): Define.
11578 (pf_model_for_fpu): Define.
11579 (all_loat_abis): Define.
11580 (arm_override_options): Set fp arch flags based on -mfpu=
11581 and -float-abi=.
11582 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
11583 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
11584 (*): Use new TARGET_* flags.
11585 * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
11586 (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
11587 (TARGET_SOFT_FLOAT): Ditto.
11588 (TARGET_SOFT_FLOAT_ABI): New.
11589 (TARGET_MAVERICK): Rename from TARGET_CIRRUS. No longer implies
11590 TARGET_HARD_FLOAT.
11591 (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
11592 (TARGET_OPTIONS): Add -mfpu=.
11593 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
11594 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
11595 (arm_pf_model): Define.
11596 (arm_float_abi_type): Define.
11597 (fputype): Add FPUTYPE_VFP. Change SOFT_FPA->NONE
11598 * config/arm/arm.md: Use new TARGET_* flags.
11599 * config/arm/cirrus.md: Ditto.
11600 * config/arm/fpa.md: Ditto.
11601 * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
11602 * config/arm/semi.h (ASM_SPEC): Ditto.
11603 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
11604 (FPUTYPE_DEFAULT): Set to VFP.
11605 * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
11606
11607 2003-11-22 Phil Edwards <phil@codesourcery.com>
11608
11609 PR target/12476
11610 * config/arm/arm.c (arm_output_mi_thunk): In Thumb mode, use
11611 'bx' instead of 'b' to avoid branch range restrictions. Output
11612 the thunk immediately before the thunked-to function.
11613 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Do not emit
11614 .thumb_func if a thunk is being generated. Emit .code 16 along
11615 with .thumb_func if a thunk is not being generated.
11616
11617 2003-11-15 Nicolas Pitre <nico@cam.org>
11618
11619 * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
11620 arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
11621 * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
11622 (lshrdi3_iwmmxt): Renamed from lshrdi3.
11623 * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
11624
11625 2003-11-12 Steve Woodford <scw@wasabisystems.com>
11626 Ian Lance Taylor <ian@wasabisystems.com>
11627
11628 * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
11629 code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
11630
11631 2003-11-05 Phil Edwards <phil@codesourcery.com>
11632
11633 * config/arm/arm.md (insn): Add new V6 instruction names.
11634 (generic_sched): New attr.
11635 * config/arm/arm-generic.md: Use generic_sched here.
11636 * config/arm/arm1026ejs.md: Do not model fetch/issue/decode
11637 stages of pipeline. Adjust latency counts accordingly.
11638 * config/arm/arm1136jfs.md: New file.
11639
11640 2003-10-28 Mark Mitchell <mark@codesourcery.com>
11641
11642 * config/arm/arm.h (processor_type): New enumeration type.
11643 (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
11644 ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
11645 (CPP_CPU_ARCH_SPEC): Likewise.
11646 * config/arm/arm.c (arm_tune): New variable.
11647 (all_cores): Use cores.def.
11648 (all_architectures): Add representative processor.
11649 (arm_override_options): Restructure way in which tuning
11650 information is deduced.
11651 * arm.md: Update "insn" and "type" attributes throughout.
11652 (insn): New attribute.
11653 (type): Compute "mult" from "insn" attribute. Add load2,
11654 load3, load4 alternatives.
11655 (arm automaton): Move to arm-generic.md.
11656 * config/arm/arm-cores.def: New file.
11657 * config/arm/arm-generic.md: Likewise.
11658 * config/arm/arm1026ejs.md: Likewise.
11659
60b85c4c
EB
116602004-02-03 Eric Botcazou <ebotcazou@libertysurf.fr>
11661
11662 * doc/invoke.texi (SPARC options): Remove -mflat and
11663 all -mxxx (xxx:chip) options.
11664 * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
11665 * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
11666 * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
11667 * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
11668 * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
11669 * config/sparc/sparc.c: Likewise.
11670 (sparc_output_function_prologue): Remove TARGET_FLAT handling.
11671 (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
11672 (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
11673 (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
11674 (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
11675 (sparc_flat_must_save_register_p): Likewise.
11676 (sparc_flat_compute_frame_size): Likewise.
11677 (sparc_flat_save_restore): Likewise.
11678 (sparc_flat_function_prologue): Likewise.
11679 (sparc_flat_function_epilogue): Likewise.
11680 (sparc_flat_epilogue_delay_slots): Likewise.
11681 (sparc_flat_eligible_for_epilogue_delay): Likewise.
11682 (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
11683 * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
11684 (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
11685 (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
11686 (CONDITIONAL_REGISTER_USAGE): Likewise.
11687 (FRAME_POINTER_REQUIRED): Likewise.
11688 (INITIAL_ELIMINATION_OFFSET): Likewise.
11689 (BASE_RETURN_VALUE_REG): Likewise.
11690 (BASE_OUTGOING_VALUE_REG): Likewise.
11691 (BASE_PASSING_ARG_REG): Likewise.
11692 (BASE_INCOMING_ARG_REG): Likewise.
11693 (INCOMING_REGNO): Likewise.
11694 (OUTGOING_REGNO): Likewise.
11695 (LOCAL_REGNO): Likewise.
11696 (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
11697 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
11698 (EPILOGUE_USES): Likewise.
11699 * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
11700 ("flat" attribute): Delete.
11701 (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
11702 handling.
11703 (call followed by jump define_peephole's): Delete.
11704 (exception_receiver): Likewise.
11705 (builtin_setjmp_receiver): Likewise.
11706 * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
11707
e57e265b
PB
117082004-02-03 Paolo Bonzini <bonzini@gnu.org>
11709
11710 PR c/11658
11711 PR c/13994
11712 * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
11713 on langhooks.h.
11714 * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
11715 * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
11716 Include langhooks.h. Replace c_common_truthvalue_conversion
11717 with the truthvalue_conversion language hook throughout.
11718 (expr_no_commas): Call default_conversion before save_expr
11719 for the first term of the production 'x ? : y'.
11720 * c-common.c (c_common_truthvalue_conversion): Remove
11721 obsolete block. Invoke recursively the hook instead
11722 of this function.
11723 * c-convert.c (convert): handle ERROR_MARK_NODE.
11724 * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
11725 returned by the truthvalue_conversion language hook.
11726 * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
11727 c_objc_common_truthvalue_conversion.
11728 * c-objc-common.c (c_objc_common_truthvalue_conversion):
11729 New function.
11730 * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
11731 * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
11732 c_objc_common_truthvalue_conversion.
11733
a7a2225a
KH
117342004-02-03 Kazu Hirata <kazu@cs.umass.edu>
11735
11736 * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
11737 of gen_rtx.
11738 (LIBCALL_VALUE): Likewise.
11739 * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
11740 gen_rtx_CC0 instead of gen_rtx.
11741 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
11742 gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
11743 (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
11744 gen_rtx.
11745 (m68hc11_emit_logical): Likewise.
11746
a556fd39
KH
117472004-02-03 Kazu Hirata <kazu@cs.umass.edu>
11748
11749 * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
11750 config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
11751 config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
11752 config/m32r/m32r.md, config/m68hc11/m68hc11.c,
11753 config/mips/mips.md, config/mmix/mmix.c,
11754 config/mn10300/mn10300.c, config/mn10300/mn10300.md,
11755 config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
11756 config/rs6000/altivec.md, config/s390/s390.c,
11757 config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
11758 config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
11759 Use const0_rtx instead of GEN_INT (0). Do the same for other
11760 constants that are readily available.
11761
60c81c89
KH
117622004-02-03 Kazu Hirata <kazu@cs.umass.edu>
11763
11764 * doloop.c, optabs.c, regmove.c, sched-deps.c,
11765 config/i386/i386.c, config/i386/i386.md: Use const0_rtx
11766 instead of GEN_INT (0). Do the same for other constants that
11767 are readily available.
11768
2fb00d7f
KH
117692004-02-03 Kazu Hirata <kazu@cs.umass.edu>
11770
11771 * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
11772 gen_rtx.
11773 * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
11774 instead of gen_rtx.
11775 * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
11776 gen_rtx.
11777 * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
11778 gen_rtx_ASHIFT instead of gen_rtx.
11779 (udivmodqi4): Likewise.
11780
b0dccb00
RH
117812004-02-02 Richard Henderson <rth@redhat.com>
11782
a6f78652
ZW
11783 PR target/13789
11784 * expr.c (store_expr): Use force_operand before emit_move_insn.
b0dccb00 11785
3168cb99
JL
117862004-02-02 Jeff Law <law@redhat.com>
11787 Roger Sayle <roger@eyesopen.com>
11788
11789 * tree.c (commutative_tree_code, associative_tree_code): New
11790 functions.
11791 (iterative_hash_expr): Use commutative_tree_code.
11792 * tree.h (commutative_tree_code, associative_tree_code): Declare.
11793 * fold-const.c (operand_equal_p): Use commutative_tree_code
11794 rather than inlining the commutativity check.
11795 (fold): Likewise.
11796
040333a7
KH
117972004-02-02 Kazu Hirata <kazu@cs.umass.edu>
11798
11799 * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
11800 * config/frv/frv-protos.h: Remove the prototype for
11801 frv_function_arg_keep_as_reference.
11802 * config/frv/frv.c (frv_function_arg_keep_as_reference):
11803 Remove.
11804 * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
11805 * config/stormy16/stormy16.h: Remove the commented-out
11806 definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
11807
79d69d75
AM
118082004-02-03 Alan Modra <amodra@bigpond.net.au>
11809
11810 PR target/13914
11811 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
11812 for retaddr_column.
11813
600555f5
KH
118142004-02-02 Kazu Hirata <kazu@cs.umass.edu>
11815
11816 * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
11817 gen_rtx.
11818
16dd5cfe 118192004-02-02 Eric Christopher <echristo@redhat.com>
a6f78652 11820 Zack Weinberg <zack@codesourcery.com>
16dd5cfe
EC
11821
11822 * c-opts.c (c_common_handle_option): Add -finput-charset.
a6f78652
ZW
11823 * c.opt: Ditto.
11824 * cppcharset.c (one_iso88591_to_utf8): Remove.
11825 (convert_iso88591_utf8): Ditto.
11826 (conversion_tab): Remove 8859-1 converter.
11827 (_cpp_input_to_utf8): Remove.
11828 (_cpp_init_iconv_buffer): Ditto.
11829 (_cpp_close_iconv_buffer): Ditto.
11830 (_cpp_convert_input): New function.
11831 (_cpp_default_encoding): Ditto.
11832 * cpphash.h: Add/remove prototypes for above.
11833 * cppfiles.c (read_file_guts): Use _cpp_convert_input.
11834 * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
11835 for narrow execution and input character sets.
11836 * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
11837 * doc/cppopts.texi: Document -finput-charset.
16dd5cfe 11838
8ad0d964
DE
118392004-02-02 David Edelsohn <edelsohn@gnu.org>
11840
11841 * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
11842 against FIRST_PSEUDO_REGISTER.
11843
238b11b5
EB
118442004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
11845
11846 * doc/invoke.texi (SPARC options): Further improve.
11847
0f4c242b
KH
118482004-02-02 Kazu Hirata <kazu@cs.umass.edu>
11849
11850 * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
11851 config/h8300/h8300.c, config/ip2k/ip2k.md,
11852 config/iq2000/iq2000.c, config/mips/mips.c,
11853 config/rs6000/rs6000.c, config/rs6000/rs6000.md,
11854 config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
11855 config/v850/v850.md: Fix indentation.
11856
d560b0aa
EB
118572004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
11858
11859 * config/sparc/sparc.c (function_arg_slotno): Align TImode
11860 arguments on a 16-byte boundary in the parameter array if ARCH64.
11861 Split handling of TFmode.
11862
6f626d1b
PB
118632004-02-02 Paolo Bonzini <bonzini@gnu.org>
11864
11865 * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
11866 Don't test CONSTANT_P (x).
11867 (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
11868 ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
11869 Fix misindentation.
11870
e789e9c4
EB
118712004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
11872
11873 * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
11874
1c563bed
KH
118752004-02-02 Kazu Hirata <kazu@cs.umass.edu>
11876
11877 * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
11878 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
11879 config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
11880 config/iq2000/iq2000.c, config/m32r/m32r.c,
11881 config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
11882 config/mn10300/mn10300.c, config/rs6000/rs6000.c,
11883 config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
11884 config/stormy16/stormy16.c, config/v850/v850.md,
11885 config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
11886
67245ad3
KH
118872004-02-01 Kazu Hirata <kazu@cs.umass.edu>
11888
11889 * config/mcore/mcore.c (block_move_sequence): Replace
11890 gen_rtx_CONST_INT with GEN_INT.
11891
66fd46b6
JH
118922004-02-02 Jan Hubicka <jh@suse.cz>
11893
11894 * alias.c (record_set): Use hard_regno_nregs.
11895 * bt-load.c (find_btr_reference, note_btr_set): Likewise.
11896 * builtins.c (apply_args_size): Likewise.
11897 * caller-save.c (setup_save_areas, save_call_clobbered_regs,
11898 mark_set_regs, add_stored_regs, mark_referenced_regs,
11899 insert_restore, insert_save, insert_one_insn): Likewise.
11900 * cfgcleanup.c: Include regs.h
11901 (mark_effect, mentions_nonequal_regs): Likewise.
11902 * cfgrtl.c (mark_killed_regs): Likewise
11903 * combine.c (update_table_tick, record_value_for_reg,
11904 record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
11905 reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
11906 reg_bitfield_target_p, distribute_notes): Likewise.
11907 * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
11908 exp_equiv_p, cse_insn): Likewise.
11909 * cselib.c (cselib_lookup): Likewise.
11910 (cselib_invalidate_regno, cselib_record_set): Likewise.
11911 * df.c (df_ref_record): Likewise.
11912 * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
11913 Likewise.
11914 * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
11915 count_or_remove_death_notes_bb): Likewise.
11916 * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
11917 * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
11918 mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
11919 * integrate.c (mark_stores): Likewise.
11920 * jump.c (delete_prior_computation): Likewise.
11921 * lcm.c (reg_dies, reg_becomes_live): Likewise.
11922 * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
11923 * loop.c (LOOP_REGNO_NREGS): Likewise.
11924 * postreload.c (reload_combine, reload_combine_note_store,
11925 reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
11926 * ra-colorize.c (combine, color_usable_p, get_free_reg,
16dd5cfe 11927 calculate_dont_begin, calculate_dont_begin, colorize_one_web,
66fd46b6
JH
11928 try_recolor_web, insert_coalesced_conflicts, check_colors,
11929 break_precolored_alias): Likewise.
11930 * ra-debug.c: Include regs.h
11931 (ra_print_rtx_object): Likewise.
11932 * ra-rewrite (choose_spill_colors): Likewise.
11933 (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
11934 * ra.c (init_ra): Likewise.
11935 * recog.c (reg_fits_class_p, peep2_reg_dead_p,
11936 peep2_find_free_register): Likewise.
11937 * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
11938 * regclass.c (hard_regno_nregs): New array.
11939 (init_reg_modes_once): Initialize it.
11940 (choose_hard_reg_mode): Use it.
11941 (record_reg_classes): Likewise.
11942 * regmove.c (mark_flags_life_zones): Likewise.
11943 * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
11944 scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
11945 copy_value, maybe_mode_change, find_oldest_value_reg,
11946 copyprop_hardreg_forward_1):
11947 * regs.h (hard_regno_nregs): Declare.
11948 * realod.c (reload_inner_reg_of_subreg): Use it.
11949 (push_reload, combine_reloads, find_dummy_reload,
11950 hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
11951 refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
11952 reload_adjust_reg_for_mode): Likewise.
11953 * reload1.c (compute_use_by_pseudos, count_pseudo,
11954 count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
11955 spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
11956 clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
11957 allocate_reload_reg, choose_reload_regs, emit_reload_insns,
11958 delete_output_reload): Likewise.
11959 * resource.c (update_live_status, mark_referenced_resources,
11960 mark_set_resources, mark_target_live_regs): Likewise.
11961 * rtlanal.c: Include regs.h
11962 (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
11963 dead_or_set_regno_p, find_regno_note, find_reg_fusage,
11964 subreg_regno_offset, subreg_offset_representable_p,
11965 hoist_test_store): Likewise.
11966 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
11967 * sched-rgn.c (check_live_1, update_live_1): Likewise.
11968 * stmt.c: Include regs.h
11969 (decl_conflicts_with_clobbers_p): Likewise.
11970 * varasm.c (make_decl_rtl): Likewise.
11971 * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
11972
f1c25d3b
KH
119732004-02-01 Kazu Hirata <kazu@cs.umass.edu>
11974
11975 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
11976 config/arm/linux-gas.h, config/arm/netbsd-elf.h,
11977 config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
11978 config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
11979 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
11980 config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
11981 config/iq2000/iq2000.h, config/m32r/m32r.c,
11982 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
11983 config/m68hc11/m68hc11.md, config/m68k/m68k.md,
11984 config/mcore/mcore.c, config/mcore/mcore.h,
11985 config/mcore/mcore.md, config/mips/mips.c,
11986 config/ns32k/ns32k.h, config/ns32k/ns32k.md,
11987 config/rs6000/rs6000.c, config/s390/s390.c,
11988 config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
11989 config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
11990 "gen_rtx (FOO, " with "gen_rtx_FOO (".
11991
e0a24727
KH
119922004-02-01 Kazu Hirata <kazu@cs.umass.edu>
11993
11994 * config/h8300/h8300.md (two peephole2's): New.
11995
5202c5fe
EB
119962004-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
11997
11998 * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
11999 (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
12000 (ASM_CPU_SPEC): Likewise
12001 * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
12002 (ASM_CPU_SPEC): Remove -mcpu=v8plus. Handle -mcpu=ultrasparc3.
12003
13b59849
RS
120042004-02-01 Roger Sayle <roger@eyesopen.com>
12005
12006 * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
12007 isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
12008 (expand_builtin): Always call expand_builtin_pow.
12009
ef79730c
RS
120102004-02-01 Roger Sayle <roger@eyesopen.com>
12011
12012 * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
12013 BUILT_IN_SIGNBITL): New GCC builtins.
12014 * builtins.c (expand_builtin_signbit): New function to RTL expand
12015 calls to signbit, signbitf and signbitl as inline intrinsics.
12016 (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
12017 (fold_builtin_signbit): New function to perform constant folding
12018 of signbit, signbitf and signbitl.
12019 (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
12020
12021 * doc/extend.texi: Document new signbit{,f,l} builtins.
12022
a80cdb0f
RS
120232004-02-01 Richard Sandiford <rsandifo@redhat.com>
12024
12025 * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
12026
2efe2033
CD
120272004-02-01 Chris Demetriou <cgd@broadcom.com>
12028
12029 * config/mips/mips.h (PREDICATE_CODES): Remove entries for
12030 "mips_const_double_ok" and "simple_memory_operand", which were
12031 removed from the MIPS port with the mips-3_4-rewrite branch merge.
12032 * config/mips/mips.c (mips16_lay_out_constants): Update comment
12033 for removal of simple_memory_operand.
12034
d37eb705
KH
120352004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12036
12037 * config/c4x/c4x.md: Use GEN_INT instead of
12038 gen_rtx (CONST_INT, ...).
12039
fadeed3b
RH
120402004-01-31 Richard Henderson <rth@redhat.com>
12041
12042 * varasm.c (output_constant_pool): Don't zap the pool.
12043
ccdc1703
KH
120442004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12045
12046 * genrecog.c (decision_type): Add DT_const_int.
12047 (write_cond) [DT_const_int]: Print a comparison against small
12048 constant.
12049 (write_node): Simplify comparisons against small constants
12050 before printing tests.
16dd5cfe 12051
aeba8f80
KH
120522004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12053
12054 * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
12055 instead of gen_rtx_CONST_INT.
12056
400ce94c
KH
120572004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12058
12059 * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
12060 instead of gen_rtx_CONST_INT.
12061
8dfa8fcd
KH
120622004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12063
12064 * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
12065 hook_bool_CUMULATIVE_ARGS_false.
12066 * targhooks.c (default_strict_argument_naming): Rename to
12067 hook_bool_CUMULATIVE_ARGS_false.
12068 * targhooks.h: Update the prototype for
12069 default_strict_argument_naming.
12070
c0d4e710
KH
120712004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12072
12073 * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12074 * config/sh/sh.h: Likewise.
12075 * config/sh/sh.md: Likewise.
12076
fdf064f2
EB
120772004-01-31 Eric Botcazou <ebotcazou@libertysurf.fr>
12078
12079 * doc/invoke.texi (SPARC options): Restructure and update.
12080
b602b7b6
KH
120812004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12082
12083 * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
12084 STRICT_ARGUMENT_NAMING): Poison.
12085 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
12086 hook_bool_tree_false.
12087 * targhooks.c (default_promote_function_args): Remove.
12088 (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
12089 Don't check incoming.
12090 (default_strict_argument_naming): Don't use
12091 STRICT_ARGUMENT_NAMING.
12092 * targhooks.h: Remove the prototype for
12093 default_promote_function_args.
12094
a0524eb3
KH
120952004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12096
12097 * config/i386/i386-protos.h: Remove the prototype for
12098 ix86_setup_incoming_varargs.
12099 * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
12100 (ix86_setup_incoming_varargs): Make it static.
12101 * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
12102
a457ee07
KH
121032004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12104
12105 * alloc-pool.c: Fix comment typos.
12106 * builtin-types.def: Likewise.
12107 * builtins.def: Likewise.
12108 * c-pretty-print.c: Likewise.
12109 * df.h: Likewise.
12110 * reload1.c: Likewise.
12111
a451b0bd
KH
121122004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12113
12114 * doc/invoke.texi: Follow spelling conventions.
12115 * doc/tm.texi: Likewise.
12116
e53e0c56
KH
121172004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12118
12119 * doc/install.texi: Fix typos.
12120 * doc/invoke.texi: Likewise.
12121
025b17a4
UW
121222004-01-31 Ulrich Weigand <uweigand@de.ibm.com>
12123
12124 * config/s390/s390.c (s390_decompose_address): Do not treat virtual
12125 registers as pointers.
12126 * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
12127
4de249d9
PB
121282004-01-31 Paolo Bonzini <bonzini@gnu.org>
12129
c53bdcf5 12130 * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
4de249d9
PB
12131 and restore it to gen_lowpart_general on exit.
12132 (gen_lowpart_for_combine): Adjust all callers to go through
12133 gen_lowpart.
12134 * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
12135 and restore it to gen_lowpart_general on exit.
12136 (gen_lowpart_if_possible): Adjust all callers to go through
12137 gen_lowpart.
12138 * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
12139 (gen_lowpart): Declare as pointer to function, initialized to
12140 gen_lowpart_general.
12141 * rtl.h (gen_lowpart): Declare as pointer to function.
12142
f84d109f
KH
121432004-01-31 Kazu Hirata <kazu@cs.umass.edu>
12144
12145 * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12146 * calls.c: Likewise.
12147 * emit-rtl.c: Likewise.
12148 * function.c: Likewise.
12149 * reload1.c: Likewise.
12150 * config/i386/cygming.h: Likewise.
12151 * config/i386/i386.c: Likewise.
12152 * config/i386/winnt.c: Likewise.
12153
354b7da5
DH
121542004-01-30 Dara Hazeghi <dhazeghi@yahoo.com>
12155
12156 PR bootstrap/9249
12157 * doc/install.texi: document --enable-__cxa_atexit option.
12158 * configure.ac: Disable __cxa_atexit if not supported.
12159 * configure: Regenerate.
12160
9781b6da
DB
121612003-01-30 Daniel Berlin <dberlin@dberlin.org>
12162
12163 * ggc-zone.c (ggc_free): New function.
12164
283334f0
KH
121652004-01-30 Kazu Hirata <kazu@cs.umass.edu>
12166
12167 alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
12168 cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
12169 flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
12170 ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
12171 tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
12172 config/alpha/alpha.c, config/alpha/alpha.h,
12173 config/alpha/alpha.md, config/alpha/unicosmk.h,
12174 config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
12175 config/c4x/c4x-protos.h, config/c4x/c4x.md,
12176 config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
12177 config/frv/frvend.c, config/i386/cygming.h,
12178 config/i386/djgpp.h, config/i386/emmintrin.h,
12179 config/i386/gthr-win32.c, config/i386/i386-interix.h,
12180 config/i386/i386-protos.h, config/i386/openbsd.h,
12181 config/i386/winnt.c, config/i386/xm-mingw32.h,
12182 config/i386/xmmintrin.h, config/ia64/ia64.md,
12183 config/iq2000/iq2000.md, config/m32r/m32r.md,
12184 config/m68k/m68k.md, config/mcore/mcore-elf.h,
12185 config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
12186 config/mips/iris5gas.h, config/mips/iris6.h,
12187 config/mips/iris6gas.h, config/mips/linux.h,
12188 config/mips/mips.md, config/mips/netbsd.h,
12189 config/mips/openbsd.h, config/mips/windiss.h,
12190 config/pa/fptr.c, config/rs6000/aix.h,
12191 config/rs6000/altivec.h, config/rs6000/darwin.h,
12192 config/rs6000/xcoff.h, config/s390/s390-protos.h,
12193 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
12194 config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
12195 config/sparc/sol2.h: Update copyright.
12196
71cbe2c1
KC
121972004-01-30 Kelley Cook <kcook@gcc.gnu.org>
12198
12199 * Makefile.in (abs_docdir, abs_srcdir): Define.
12200 (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
12201
bfb2d661
KH
122022004-01-30 Kazu Hirata <kazu@cs.umass.edu>
12203
12204 * genconfig.c (main): Have CC0_P check its operand even on a
12205 target without cc0.
12206
bd5bd7ac
KH
122072004-01-30 Kazu Hirata <kazu@cs.umass.edu>
12208
12209 * config/alpha/alpha.c: Remove mentions of deprecates macros
12210 in comments, remove some target-independent comments about target
12211 macros, and/or add minimal function comments for target hook
12212 implementations.
12213 * config/avr/avr.c: Likewise.
12214 * config/ia64/ia64.h: Likewise.
12215 * config/ip2k/ip2k.c: Likewise.
12216 * config/iq2000/iq2000.c: Likewise.
12217 * config/m32r/m32r.h: Likewise.
12218 * config/m68hc11/m68hc11.c: Likewise.
12219 * config/mcore/mcore.c: Likewise.
12220 * config/mmix/mmix.c: Likewise.
12221 * config/mn10300/mn10300.c: Likewise.
12222 * config/pa/pa.c: Likewise.
12223 * config/pdp11/pdp11.c: Likewise.
12224 * config/rs6000/rs6000.h: Likewise.
12225 * config/sh/sh.c: Likewise.
12226 * config/sh/sh.h: Likewise.
12227 * config/sparc/sparc.c: Likewise.
12228 * config/sparc/sparc.h: Likewise.
12229 * config/stormy16/stormy16.c: Likewise.
12230 * config/xtensa/xtensa.c: Likewise.
12231
808ededc
UW
122322004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
12233
12234 PR optimization/12147
12235 * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
12236 RELOAD_FOR_OPADDR_ADDR.
12237 (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
12238 might be reused as RELOAD_FOR_OPADDR_ADDR register.
12239
98e5e087
JH
122402004-01-30 Jan Hubicka <jh@suse.cz>
12241
bd5bd7ac 12242 * reload.c (get_secondary_mem): Fix updating of
98e5e087
JH
12243 secondary_memlocs_elim_used.
12244
3234b52d
RH
122452004-01-30 Richard Henderson <rth@redhat.com>
12246
12247 * varasm.c (struct rtx_const, struct pool_constant): Remove.
12248 (MAX_RTX_HASH_TABLE): Remove.
12249 (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
12250 (first_pool, last_pool, pool_offset): Remove.
12251 (struct rtx_constant_pool): Split out from ...
12252 (struct varasm_status): ... here. Reference one via pointer.
12253 (struct constant_descriptor_rtx): Merge struct pool_constant.
12254 (SYMHASH): Remove.
12255 (decode_rtx_const): Remove.
12256 (const_hash_rtx, compare_constant_rtx): Remove.
12257 (record_constant_rtx): Remove.
12258 (const_desc_rtx_hash, const_desc_rtx_eq): New.
12259 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
12260 (const_rtx_hash_1, const_rtx_hash): New.
12261 (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
12262 (simplify_subtraction): Use simplify_rtx.
12263 (force_const_mem): Rewrite to use new data structures.
12264 (find_pool_constant): Likewise.
12265 (get_pool_constant, get_pool_constant_mark,
12266 get_pool_constant_for_function, get_pool_mode,
12267 get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
12268 (output_constant_pool_2): Split out from output_constant_pool.
12269 (output_constant_pool_1): Likewise. Use new pool datastructures.
12270 (output_constant_pool): Zap entire pool datastructure.
12271 (mark_constant): Use new pool datastructures.
12272 (mark_constants): Use for_each_rtx.
12273 (mark_constant_pool): Use new pool datastructures.
12274
be77d9e7 122752004-01-30 Fariborz Jahanian <fjahanian@apple.com>
16dd5cfe 12276
a6f78652 12277 * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
be77d9e7
FJ
12278 Copy operands[1] to pseudo for simplify_gen_subreg.
12279
f0cad2d5
KH
122802004-01-30 Kazu Hirata <kazu@cs.umass.edu>
12281
12282 * gcse.c (bypass_block): Fix a typo in the previous check-in
12283 to the file.
12284
40ca90bf
AP
122852004-01-30 Andrew Pinski <pinskia@physics.uc.edu>
12286
12287 * toplev.c: Include alloc-pool.h.
16dd5cfe 12288 * Makefile.in (toplev.c): Update dependencies.
40ca90bf 12289
39a44a4e
RK
122902004-01-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12291
12292 * combine.c (simplify_shift_const, case XOR): Be careful when
12293 commuting XOR with ASHIFTRT.
12294
3e2cc1d1 122952004-01-30 Kazu Hirata <kazu@cs.umass.edu>
a6f78652 12296 Eric Botcazou <ebotcazou@libertysurf.fr>
3e2cc1d1
KH
12297
12298 * config/sparc/sparc-protos.h: Remove the prototype for
12299 sparc_builtin_saveregs.
12300 * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12301 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12302 (TARGET_PROMOTE_PROTOTYPES): Likewise.
12303 (TARGET_STRUCT_VALUE_RTX): Likewise.
12304 (TARGET_RETURN_IN_MEMORY): Likewise.
12305 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12306 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12307 (sparc_builtin_saveregs): Make it static.
12308 (sparc_promote_prototypes): New.
12309 (sparc_struct_value_rtx): Likewise.
12310 (sparc_return_in_memory): Likewise.
12311 * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
12312 (PROMOTE_FUNCTION_RETURN): Likewise.
12313 (RETURN_IN_MEMORY): Likewise.
12314 (STRUCT_VALUE): Likewise.
12315 (STRUCT_VALUE_INCOMING): Likewise.
12316 (EXPAND_BUILTIN_SAVEREGS): Likewise.
12317 (STRICT_ARGUMENT_NAMING): Likewise.
12318 (PROMOTE_PROTOTYPES): Likewise.
12319
12320 * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
12321
5e9295fa
EB
123222004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
12323
12324 PR c/12818
12325 * varasm.c (const_hash_1) <STRING_CST>: Use the
12326 address to compute the hash value if flag_writable_strings.
12327 (compare_constant) <STRING_CST>: Compare the addresses
12328 if flag_writable_strings.
12329 (build_constant_desc): Do not copy the expression for a
12330 STRING_CST if flag_writable_strings.
12331
1f2eae8d
JH
123322004-01-30 Jan Hubicka <jh@suse.cz>
12333
1e0f41c9
JH
12334 * alloc-pool.c: Include hashtab.h
12335 (alloc_pool_descriptor): New structure
12336 (alloc_pool_hash): New global variable.
12337 (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
12338 (create_alloc_pool): Update statistics.
12339 (free_alloc_pool): Likewise.
12340 (pool_alloc): Likewise.
12341 (output_info): New structure
12342 (print_statistics, dump_alloc_pool_statistics): New function.
12343 * alloc-pool.h (alloc_pool_def): Turn name to be constant.
12344 (dump_alloc_pool_statistics): Declare.
12345 * toplev.c (finalize): Dump statistics.
12346
1f2eae8d
JH
12347 * reload.c (secondary_memlocs_elim_used): New static variable.
12348 (get_secondary_mem): Update it.
12349 (find_reloads): Use it.
12350
80a08664
SB
123512004-01-30 Steven Bosscher <s.bosscher@student.tudelft.nl>
12352
12353 * toplev.c: Fix broken checkin of 2003-12-30, again.
12354
57116d8d
UW
123552004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
12356
12357 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
12358 s390*-*-* targets by specifying a 'nop' insn.
12359 * configure: Regenerate.
12360
5fddd9fe
EB
123612004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
12362
12363 PR target/11475
12364 * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
12365
64fc7c00
JJ
123662004-01-29 Jakub Jelinek <jakub@redhat.com>
12367
12368 * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
12369 of addr when creating MEM copy.
12370
ed672aa8
DP
123712004-01-29 Devang Patel <dpatel@apple.com>
12372
12373 * dwarf2out.c (gen_field_die): Do not equate decl number to die.
16dd5cfe 12374
7e3aa041
ILT
123752004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
12376
12377 PR inline-asm/6162
12378 * reload.c (find_reloads): Only support one pair of commutative
12379 operands.
12380
06f12aa0
RS
123812004-01-29 Roger Sayle <roger@eyesopen.com>
12382
12383 PR java/13824
12384 * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
12385 as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
12386 recursion.
12387
b88cf82e
KH
123882004-01-29 Kazu Hirata <kazu@cs.umass.edu>
12389
12390 * config/frv/frv.c: Don't mention deprecated macros in
12391 comments. Remove some target-independent comments about
12392 target macros.
12393 * config/frv/frv.h: Likewise.
12394
3ae4a5b1
ZD
123952004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
12396
12397 * cfghooks.c (split_block): Set probability and count of the
12398 new edge.
12399
636c7bc4
JZ
124002005-01-29 Josef Zlomek <zlomekj@suse.cz>
12401
12402 * dwarf2out.c (struct die_struct): Added field decl_id.
12403 (decl_die_table): Changed to hash table.
12404 (decl_die_table_allocated): Deleted.
12405 (decl_die_table_in_use): Deleted.
12406 (DECL_DIE_TABLE_INCREMENT): Deleted.
12407 (decl_die_table_hash): New function.
12408 (decl_die_table_eq): New function.
12409 (lookup_decl_die): Lookup in a hash table.
12410 (equate_decl_number_to_die): Insert into a hash table.
12411 (dwarf2out_init): Init hash table decl_die_table.
12412
4e44c1ef
JJ
124132004-01-29 Jakub Jelinek <jakub@redhat.com>
12414
12415 PR optimization/13424
12416 * expr.c (store_constructor): Revert 2003-12-03 change.
12417
12418 * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
12419 expected before returning early. Avoid sharing RTL if they
12420 need to be changed.
12421
12422 * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
12423 handling so that memory attributes are preserved. Don't call
12424 ix86_set_move_mem_attrs.
12425 (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
12426 (ix86_expand_clrstr): Rename src argument to
12427 dst. Rework rep_stos and strset handling so that memory attributes
12428 are preserved.
12429 (ix86_expand_strlen): Pass src argument to
12430 ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that
12431 memory attributes are preserved.
12432 (ix86_expand_strlensi_unroll_1): Add src argument. Use
12433 change_address instead of gen_rtx_MEM.
12434 * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
12435 expanders.
12436 (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
12437 strmovqi, strmovqi_rex64): Remove.
12438 (rep_mov*, strmov*): Prefix insn names with *.
12439 (strset, strset_singleop, rep_stos): New expanders.
12440 (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
12441 strsetqi, strsetqi_rex64): Remove.
12442 (rep_stos*, strset*): Prefix insn names with *.
12443 (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode
12444 to SImode.
12445 (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
12446 are preserved.
12447 (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
12448 Prefix insn names with *.
12449 (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
12450 (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
12451 (strlenqi_1): New expander.
12452 * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
12453
f470c378
ZD
124542004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
12455
12456 * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
12457 * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
12458 verify_flow_info): Declaration removed.
12459 * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
12460 (debug_bb, debug_bb_n): Add argument to dump_bb call.
12461 * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
12462 try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
12463 instead of delete_block.
12464 * cfghooks.c: Include timevar.h and toplev.h.
12465 (cfg_hooks): Define here.
12466 (verify_flow_info, dump_bb): Moved from cfg.c.
12467 (redirect_edge_and_branch, redirect_edge_and_branch_force,
12468 split_block, split_block_after_labels, move_block_after,
12469 delete_basic_block, split_edge, create_basic_block,
12470 create_empty_bb, can_merge_blocks_p, merge_blocks,
12471 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
12472 New functions.
12473 * cfghooks.h (struct cfg_hooks): Added fields name,
12474 make_forwarder_block, tidy_fallthru_edge and
12475 move_block_after. Changed type of verify_flow_info, dump_bb,
12476 split_block fields. Renamed cfgh_split_edge and delete_block
12477 fields.
12478 (redirect_edge_and_branch, redirect_edge_and_branch_force,
12479 split_block, delete_block, split_edge, create_basic_block,
12480 can_merge_blocks_p, merge_blocks): Macros removed.
12481 (cfg_hooks): Do not export.
12482 (verify_flow_info, dump_bb, redirect_edge_and_branch,
12483 redirect_edge_and_branch_force, split_block, split_block_after_labels,
12484 move_block_after, delete_basic_block, split_edge, create_basic_block,
12485 create_empty_bb, can_merge_blocks_p, merge_blocks,
12486 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
12487 Declare.
12488 (cfg_layout_rtl_cfg_hooks): Declare.
12489 * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
12490 New functions.
12491 (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
12492 (redirect_edge_with_latch_update): Removed.
12493 (make_forwarder_block): Moved to cfghooks.c, semantics changed.
12494 * cfgloopmanip.c (remove_bbs): Do not update dominators here.
12495 * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
12496 rtl_delete_block, rtl_split_block, rtl_merge_blocks,
12497 tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
12498 cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
12499 cfghooks.c.
12500 (rtl_create_basic_block): Coding style fix.
12501 (rtl_tidy_fallthru_edge, rtl_move_block_after,
12502 rtl_make_forwarder_block): New functions.
12503 (update_cfg_after_block_merging): Removed.
12504 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
12505 * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
12506 to dump_bb.
12507 * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
12508 find_if_case_2): Don't update dominators.
12509 * timevar.def (TV_CFG_VERIFY): New.
12510 * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
12511 * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
12512 * cfgloopmanip.c (split_loop_bb): Don't update dominators.
12513 (remove_bbs): Don't call remove_bbs.
12514 (create_preheader): Use make_forwarder_block.
12515 (mfb_keep_just, mfb_update_loops): New static functions.
12516
3cea4788
KH
125172004-01-29 Kazu Hirata <kazu@cs.umass.edu>
12518
12519 * config/avr/avr.h: Remove target-independent comments about
12520 target macros.
12521
75e853f2 125222004-01-28 Daniel Berlin <dberlin@dberlin.org>
16dd5cfe 12523
75e853f2
DB
12524 * timevar.c (timevar_print): Mention when checking is enabled.
12525
7625e73d
GB
125262004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
12527
12528 * c-lex.c (c_lex): Rename to...
12529 (c_lex_with_flags): Add new parameter to get CPP flags.
12530 (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
12531 * c-pragma.h (c_lex_with_flags): Declare.
12532
dc7efe6e
KH
125332004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12534
12535 * config/mcore/mcore.c (mcore_external_libcall): Add a
12536 comment.
12537 (mcore_return_in_memory): Likewise.
12538
09a2b93a
KH
125392004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12540
12541 * config/mcore/mcore-protos.h: Remove the prototype for
12542 mcore_setup_incoming_varargs.
12543 * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12544 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
12545 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12546 (TARGET_PROMOTE_PROTOTYPES): Likewise.
12547 (TARGET_STRUCT_VALUE_RTX): Likewise.
12548 (TARGET_RETURN_IN_MEMORY): Likewise.
12549 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12550 (mcore_setup_incoming_varargs): Make it static. Receive the
12551 first argument by reference. Add argument second_time.
12552 (mcore_external_libcall): New.
12553 (mcore_return_in_memory): Likewise.
12554 * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
12555 (PROMOTE_FUNCTION_RETURN): Likewise.
12556 (STRUCT_VALUE): Likewise.
12557 (RETURN_IN_MEMORY): Likewise.
12558 (SETUP_INCOMING_VARARGS): Likewise.
12559 (PROMOTE_PROTOTYPES): Likewise.
12560 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
12561
a7ed00da
KH
125622004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12563
12564 * config/m32r/m32r-protos.h: Remove the prototype for
12565 m32r_setup_incoming_varargs.
12566 * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
12567 (TARGET_STRUCT_VALUE_RTX): Likewise.
12568 (TARGET_RETURN_IN_MEMORY): Likewise.
12569 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12570 (m32r_return_in_memory): New.
12571 (m32r_setup_incoming_varargs): Make it static.
12572 * config/m32r/m32r.h: Remove #undef of
12573 ASM_OUTPUT_EXTERNAL_LIBCALL. Remove the commented-out
12574 definitions of PROMOTE_FUNCTION_ARGS and
12575 PROMOTE_FUNCTION_RETURN.
12576 (PROMOTE_PROTOTYPES): Remove.
12577 (RETURN_IN_MEMORY): Likewise.
12578 (STRUCT_VALUE): Likewise.
12579
8636be86
KH
125802004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12581
12582 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
12583 (TARGET_STRUCT_VALUE_RTX): Likewise.
12584 (m68k_struct_value_rtx): Likewise.
12585 * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
12586 STRUCT_VALUE_REGNUM.
12587 (PROMOTE_PROTOTYPES): Remove.
12588 * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
12589 STRUCT_VALUE_REGNUM.
12590 * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
12591 * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
12592
f2f61ee7
KH
125932004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12594
12595 * config/stormy16/stormy16.c
12596 (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
12597 TARGET_BUILD_BUILTIN_VA_LIST.
12598
fb7bc7fb
KH
125992004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12600
12601 * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
12602 (TARGET_STRUCT_VALUE_RTX): Likewise.
12603 (TARGET_RETURN_IN_MEMORY): Likewise.
12604 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12605 (v850_return_in_memory): Likewise.
12606 (v850_setup_incoming_varargs): Likewise.
12607 * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
12608 (SETUP_INCOMING_VARARGS): Likewise.
12609 (RETURN_IN_MEMORY): Likewise.
12610 (STRUCT_VALUE): Likewise.
12611
0fd818e7
KH
126122004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12613
12614 * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
12615 (fr30_setup_incoming_varargs): Don't use
12616 STRICT_ARGUMENT_NAMING.
12617 * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
12618 (STRICT_ARGUMENT_NAMING): Likewise.
12619
8ac411c7
KH
126202004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12621
12622 * config/frv/frv-protos.h: Remove the prototype for
12623 frv_expand_builtin_saveregs.
12624 * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
12625 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12626 (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
12627 STRUCT_VALUE_REGNUM.
12628 (frv_expand_builtin_saveregs): Make it static.
12629 (frv_struct_value_rtx): New.
12630 * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
12631
d173e685
JH
126322004-01-29 Jan Hubicka <jh@suse.cz>
12633
12634 PR c++/12850
12635 * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
12636 initial pointers.
12637 * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
12638 for functions that will be only inlined.
12639 (cgraph_mark_function_to_output): Likewise.
12640 (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
12641 do not clear function body.
12642 * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
12643 (tree_rest_of_compilation): Reorganize the logic releasing function
12644 body to use callgraph datastructure.
12645
f7a1010e
JDA
126462004-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12647
12648 * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
12649 to register_operand.
12650
e7f47f83
ZW
126512004-01-28 Zack Weinberg <zack@codesourcery.com>
12652
12653 * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
12654 (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
12655 match_operand expressions so that all match_dups appear
12656 lexically after their corresponding match_operands.
12657
1807b726
KH
126582004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12659
12660 * config/h8300/h8300.c (WORD_REG_USED): Use
12661 HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
12662 (compute_saved_regs): Likewise.
12663 (h8300_expand_prologue): Likewise. Allocate locals after
12664 saving registers.
12665 (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
12666 of FRAME_POINTER_REGNUM. Deallocate locals before saving
12667 registers.
12668 (h8300_initial_elimination_offset): Adjust for the new frame
12669 layout, which swaps flips the order of locals and saved
12670 registers.
12671 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
12672 (HARD_FRAME_POINTER_REGNUM): New.
12673 (ELIMINABLE_REGS): Add an elimination rule from
12674 FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
12675 (REGISTER_NAMES): Add fp.
12676 * config/h8300/h8300.md (FP_REG): Change to 11.
12677 (HFP_REG): New.
12678
be2c39f8
KH
126792004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12680
12681 * genrecog.c (write_node): Remove a useless local variable.
12682
469ef4a3
ILT
126832004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
12684
12685 * Makefile.in (options.c options.h): Use stamp file s-options to
12686 avoid unnecessary rebuilds.
12687 (options.o): New target listing dependencies.
12688 (gtyp-gen.h): Use stamp file s-gtyp-gen.
12689 (STAGESTUFF): Add s-gtyp-gen.
12690
685fe032
RH
126912004-01-28 Richard Henderson <rth@redhat.com>
12692
12693 * ggc.h (ggc_free): Declare.
12694 * ggc-common.c (ggc_realloc): Use it.
12695 * ggc-page.c: Remove lots of inline markers.
12696 (globals): Add free_object_list.
12697 (ggc_alloc): Tidy.
12698 (ggc_free, validate_free_objects): New.
12699 (poison_pages): Provide default.
12700 (ggc_collect): Call validate_free_objects; emit markers to
12701 the debug file.
12702
2ffe0e02
ZW
127032004-01-28 Zack Weinberg <zack@codesourcery.com>
12704 Jim Wilson <wilson@specifixinc.com>
12705
12706 * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
12707 Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
12708 scratch pointer.
12709 (ia64_secondary_reload_class): Delete case GR_REGS.
12710 * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
12711 Do not allocate a scratch register.
12712 (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
12713
a544524a
JH
127142004-01-28 Jan Hubicka <jh@suse.cz>
12715
12716 * gcse.c (bypass_block): Prevent edges to be unified when we are
12717 about to emit compenstation code.
12718
1b8f8174
NC
127192004-01-28 Nick Clifton <nickc@redhat.com>
12720
12721 * config/arm/arm.c (arm_expand_builtin): Force second argument of
12722 the setcwx insn into a register.
12723
faceece3
RS
127242004-01-28 Richard Sandiford <rsandifo@redhat.com>
12725
12726 * config/fp-bit.c (pack_d): When using paired doubles to implement
12727 a long double, round the high part separately.
12728 (unpack_d): Fix the case in which the high part is a power of two
12729 and the low part is a nonzero value of the opposite sign.
12730
28b24176
KH
127312004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12732
12733 * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12734 (TARGET_STRUCT_VALUE_RTX): Likewise.
12735 (c4x_external_libcall): Likewise.
12736 (c4x_struct_value_rtx): Likewise.
12737 * config/c4x/c4x.h: Remove.
12738 (STRUCT_VALUE_REGNUM): Likewise.
12739 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
12740
9184f892
KH
127412004-01-28 Kazu Hirata <kazu@cs.umass.edu>
12742
12743 * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
12744 (TARGET_STRUCT_VALUE_RTX): Likewise.
12745 * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
12746 (STRUCT_VALUE): Likewise.
12747 (PROMOTE_PROTOTYPES): Likewise.
12748
4cce9dd8
RS
127492004-01-27 Roger Sayle <roger@eyesopen.com>
12750
12751 * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
12752 CONST_INT before using INTVAL.
12753
590fcf48
UW
127542004-01-27 Ulrich Weigand <uweigand@de.ibm.com>
12755
12756 * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
12757 * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
12758 frame if !TARGET_BACKCHAIN.
2ffe0e02 12759 * config/s390/s390.md ("allocate_stack"): Use pattern only if
590fcf48
UW
12760 TARGET_BACKCHAIN.
12761 * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
12762
826b47cc
ZW
127632004-01-27 Zack Weinberg <zack@codesourcery.com>
12764
12765 * ia64.c (ia64_function_arg): When placing HFAs in integer
12766 registers, do not special case the mode used for complex
12767 types. Do not advance int_regs until the current register
12768 is full.
12769
83810fcb
RS
127702004-01-27 Richard Sandiford <rsandifo@redhat.com>
12771
12772 PR target/7297
12773 * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
12774
2d9db8eb
DE
127752004-01-27 David Edelsohn <edelsohn@gnu.org>
12776
12777 * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
12778 slow, unaligned loads and stores while debugging. Fix formatting.
12779
39e453d7
DE
127802004-01-27 David Edelsohn <edelsohn@gnu.org>
12781
12782 * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
12783 of computing wmode.
12784 (restore_stack_nonlocal): Same.
12785
6097b0c3 127862004-01-27 Devang Patel <dpatel@apple.com>
826b47cc 12787
6097b0c3 12788 * Makefile.in (dwarf2out.o): Depend on input.h
826b47cc 12789 * dbxout.c (dbx_debug_hooks): Add new empty hook for
6097b0c3
DP
12790 imported_module_or_decl.
12791 (xcoff_debug_hooks): Same.
12792 * sdbout.c (sdb_debug_hooks): Same.
12793 * vmsdbgout.c (vmsdbg_debug_hooks): Same.
12794 * debug.c (do_nothing_debug_hooks): Same.
12795 (debug_nothing_tree_tree): New function.
12796 * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
12797 * dwarf2out.c: Include input.h.
12798 (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
12799 (remove_child_TAG): New function.
12800 (dwarf_tag_name): Handle DW_TAG_imported_module.
12801 (gen_subprogram_die): Equate decl number to declaration die. Do not
12802 remove all children dies while reusing declaration die for definition.
12803 Instead, selectively remove only formal parameters.
12804 (gen_variable_die): Equate variable decl to declaration die.
12805 (gen_field_die): Equate field decl to line number.
12806 (force_namespace_die): Replace it with ...
12807 (force_decl_die): ... this.
12808 (force_type_die): New function.
12809 (setup_namespace_context): Replace use of force_namespace_die() with
12810 force_decl_die().
12811 (gen_namespace_die): Same.
12812 (dwarf2out_imported_module_or_decl): New function.
12813
e6aecf8e 128142004-01-27 Bob Wilson <bob.wilson@acm.org>
826b47cc 12815
e6aecf8e
BW
12816 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
12817 on CQImode and CHImode incoming arguments in register a7.
12818 (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
12819 * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
12820 * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
12821 xtensa_copy_incoming_a7 before reload.
826b47cc 12822
02307675
R
128232004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
12824
12825 * coverage.c (get_coverage_counts): Give a different message
12826 if flag_guess_branch_prob is set.
12827 * predict.c (counts_to_freqs): Return an int.
12828 (estimate_bb_frequencies): If counts_to_freqs returns zero,
12829 calculate estimates.
12830
69a45040
KH
128312004-01-27 Kazu Hirata <kazu@cs.umass.edu>
12832
12833 * config/iq2000/iq2000-protos.h: Remove the prototype for
12834 iq2000_setup_incoming_varargs.
12835 * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12836 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12837 (TARGET_PROMOTE_PROTOTYPES): Likewise.
12838 (TARGET_STRUCT_VALUE_RTX): Likewise.
12839 (TARGET_RETURN_IN_MEMORY): Likewise.
12840 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12841 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12842 (iq2000_return_in_memory): Likewise.
12843 (iq2000_setup_incoming_varargs): Make it static. Receive the
12844 first argument by reference.
12845 * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
12846 (PROMOTE_FUNCTION_RETURN): Likewise.
12847 (PROMOTE_PROTOTYPES): Likewise.
12848 (RETURN_IN_MEMORY): Likewise.
12849 (STRUCT_VALUE): Likewise.
12850 (SETUP_INCOMING_VARARGS): Likewise.
12851 (STRICT_ARGUMENT_NAMING): Likewise.
12852
9cdfc8e7
JM
128532004-01-24 James A. Morrison <ja2morri@uwaterloo.ca>
12854
826b47cc 12855 * fixinc/fixinc.c (test_test): Initialize res.
9cdfc8e7
JM
12856 (start_flexer): Initialize pz_cmd_save.
12857
60ffd2fe
ZW
128582004-01-27 Zack Weinberg <zack@codesourcery.com>
12859
12860 * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
12861 SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
12862
52ad4d7b
ZW
128632004-01-27 Zack Weinberg <zack@codesourcery.com>
12864
12865 PR 7198
12866 * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
12867 (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
12868 (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
12869 Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
12870 Possibly rename pattern for consistency.
12871 Remove ??? comments suggesting that this be done.
12872 (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
12873 New patterns.
12874 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
12875 (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
12876 (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
12877 (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
12878 Update to match.
12879
b034930f
ILT
128802004-01-27 Ian Lance Taylor <ian@wasabisystems.com>
12881
12882 * config/arm/arm.c (output_return_instruction): Only restore IP
12883 into SP if frame_pointer_needed.
12884
be446dfc
EB
128852004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
12886
12887 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
12888 for SCmode and DCmode if ARCH32.
12889 (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
12890 * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
12891 if ARCH32.
12892 (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
12893 if ARCH32.
12894 (BASE_OUTGOING_VALUE_REG): Likewise.
12895
1b4bda70
EB
128962004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
12897
12898 PR target/10904
12899 PR target/13058
12900 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
12901 Forbid mode changes from SImode for lower FP regs if ARCH64.
12902
1194fc79
R
129032004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
12904
12905 * Makefile.in (bt-load.o): Depend on except.h.
12906 * bt-load.c (except.h): #include.
12907 (compute_defs_uses_and_gen): If insn at end of BB can throw
12908 within this function, consider registers used by it unavailable for
12909 btr migration.
12910 (move_btr_def): If insn at end of BB can throw, insert before rather
12911 than after.
12912
12913 * flags.h (flag_btr_bb_exclusive): Declare.
12914 * toplev.c (flag_btr_bb_exclusive): New variable.
12915 (f_options): Add btr-bb-exclusive.
12916 * bt-load.c (augment_live_range): Restore old behaviour if
12917 flag_btr_bb_exclusive is set.
12918 * common.opt: Add entry for -fbtr-bb-exclusive.
12919 * opts.c (common_handle_options): Same.
12920 * doc/invoke.texi: Document -fbtr-bb-exclusive.
52ad4d7b 12921
1194fc79
R
12922 * bt-load.c (btrs_live_at_end): New variable.
12923 (compute_defs_uses_and_gen): Compute its pointed-to array.
12924 (clear_btr_from_live_range, add_btr_to_live_range): Update it.
12925 (augment_live_range): When augmenting with a new dominator,
12926 use only its btrs_live_at_end set, but also add in the full set
12927 of the old dominator.
12928 (btr_def_live_range): Use btrs_live_at_end.
12929 (move_btr_def): Set other_btr_uses_before_def, and move new set
12930 to the end of the basic block, if appropriate.
12931 (migrate_btr_defs): Allocate and free btrs_live_at_end.
52ad4d7b 12932
1194fc79
R
12933 * bt-load.c (basic_block_freq): Remove outdated comment.
12934
895ea8f0
AM
129352004-01-27 Alan Modra <amodra@bigpond.net.au>
12936
12937 * config/rs6000/rs6000.h: Correct target_flags free bits comment.
12938 (PREDICATE_CODES): Remove duplicate.
12939 * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
12940 (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
12941 (MASK_PROFILE_KERNEL): Adjust define.
12942
4137ba7a
JJ
129432004-01-27 Jakub Jelinek <jakub@redhat.com>
12944
12945 * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
12946 of long string literals from 32 bytes to sizeof (void *) when !-Os
12947 and to 1 with -Os.
12948
a4bb41cc
KH
129492004-01-26 Kazu Hirata <kazu@cs.umass.edu>
12950
12951 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
12952 constant addresses in the normal mode.
12953
1c62e7b2
KG
129542004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12955
12956 * system.h (CHAR_BITFIELD): Delete.
12957 (BOOL_BITFIELD): New.
12958 * c-decl.c (c_scope): Use BOOL_BITFIELD.
12959 * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
12960
96ab60fc
KH
129612004-01-26 Kazu Hirata <kazu@cs.umass.edu>
12962
12963 * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12964 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12965 (TARGET_PROMOTE_PROTOTYPES): Likewise.
12966 (TARGET_STRUCT_VALUE_RTX): Likewise.
12967 (TARGET_RETURN_IN_MEMORY): Likewise.
12968 (arc_return_in_memory): Likewise.
12969 * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
12970 (PROMOTE_FUNCTION_RETURN): Likewise.
12971 (RETURN_IN_MEMORY): Likewise.
12972 (STRUCT_VALUE): Likewise.
12973
6d4b0a5d
RH
129742004-01-26 Richard Henderson <rth@redhat.com>
12975
12976 * c-parse.in (extension): Use itype.
12977 (SAVE_EXT_FLAGS): Don't allocate a tree.
12978 (RESTORE_EXT_FLAGS): Don't read a tree.
12979
18874af6
JH
129802004-01-26 Jan Hubicka <jh@suse.cz>
12981
12982 * cselib.c (discard_useless_values): Clear out value pointer pointing
12983 to datastructure to be recycled.
12984
501f88de
JH
129852004-01-25 Jan Hubicka <jh@suse.cz>
12986
12987 * genextract.c (main): Do not output the memset when not checking.
12988
d6456562
KH
129892004-01-26 Kazu Hirata <kazu@cs.umass.edu>
12990
12991 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
12992 switch statement instead of a chain of if statements.
12993
5cea9d5d
JL
129942004-01-26 Jeff Law <law@redhat.com>
12995
12996 * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add
12997 acute accents for Petur Runolfsson's entry.
12998
04e9daaf
KH
129992004-01-26 Kazu Hirata <kazu@cs.umass.edu>
13000
13001 * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
13002 (TARGET_RETURN_IN_MEMORY): Likewise.
13003 * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
13004 (RETURN_IN_MEMORY): Likewise.
13005
40ca90bf 130062004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9 13007
52ad4d7b
ZW
13008 * config/rs6000/rs6000.c (rs6000_emit_move): split slow
13009 unaligned load/store into smaller loads and stores.
6c8066b9 13010
40ca90bf 130112004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9 13012
52ad4d7b
ZW
13013 * function.c (assign_parms): Do not assign
13014 long long argument to memory in prologue if
13015 is it loaded into register.
6c8066b9 13016
40ca90bf 130172004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9
FJ
13018
13019 PR middle-end/13779
52ad4d7b
ZW
13020 * expr.c (emit_group_load): split constant
13021 correctly into register components of PARALLEL insn.
6c8066b9 13022
40ca90bf 130232004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9
FJ
13024
13025 * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
13026 Use adjust_address_nv directly with appropriate mode.
13027 (restore_stack_nonlocal): Ditto.
13028
4c45af42
KH
130292004-01-26 Kazu Hirata <kazu@cs.umass.edu>
13030
13031 * config/xtensa/xtensa-protos.h: Remove the prototype for
13032 xtensa_builtin_saveregs.
13033 * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13034 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13035 (TARGET_PROMOTE_PROTOTYPES): Likewise.
13036 (TARGET_STRUCT_VALUE_RTX): Likewise.
13037 (TARGET_RETURN_IN_MEMORY): Likewise.
13038 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13039 (xtensa_builtin_saveregs): Make it static.
13040 (xtensa_return_in_memory): New.
13041 * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
13042 (PROMOTE_FUNCTION_RETURN): Likewise.
13043 (PROMOTE_PROTOTYPES): Likewise.
13044 (STRUCT_VALUE): Likewise.
13045 (RETURN_IN_MEMORY): Likewise.
13046 (EXPAND_BUILTIN_SAVEREGS): Likewise.
13047
1cc9f5f5
KH
130482004-01-26 Kazu Hirata <kazu@cs.umass.edu>
13049
13050 * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
13051 (arm_setup_incoming_varargs): Likewise.
13052 * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
13053
558d352a
KH
130542004-01-26 Kazu Hirata <kazu@cs.umass.edu>
13055
13056 * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
13057 (cris_setup_incoming_varargs): Likewise.
13058 * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
13059
2001a5cf
KH
130602004-01-26 Kazu Hirata <kazu@cs.umass.edu>
13061
13062 * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
13063 (ns32k_struct_value_rtx): Likewise.
13064 * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
13065 NS32K_STRUCT_VALUE_REGNUM.
13066
f9ba5949
KH
130672004-01-26 Kazu Hirata <kazu@cs.umass.edu>
13068
13069 * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13070 (TARGET_PROMOTE_PROTOTYPES): Likewise.
13071 (TARGET_STRUCT_VALUE_RTX): Likewise.
13072 (arm_struct_value_rtx): Likewise.
13073 * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
13074 (STRUCT_VALUE): Likewise.
13075 (STRUCT_VALUE_REGNUM): Likewise.
13076 (PROMOTE_PROTOTYPES): Likewise.
13077
351a758b
KH
130782004-01-26 Kazu Hirata <kazu@cs.umass.edu>
13079
13080 * config/ia64/ia64-protos.h: Remove the prototype for
13081 ia64_setup_incoming_varargs and ia64_return_in_memory.
13082 * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
13083 (TARGET_RETURN_IN_MEMORY): Likewise.
13084 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13085 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13086 (ia64_setup_incoming_varargs): Adjust the arguments to meet
13087 the requirement of TARGET_SETUP_INCOMING_VARARGS.
13088 (ia64_return_in_memory): Make it static. Change the return
13089 type to bool from int. Add an argument.
13090 (ia64_struct_value_rtx): New.
13091 * config/ia64/ia64.h: Remove commented-out definitions of
13092 PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
13093 PROMOTE_PROTOTYPES.
13094 (RETURN_IN_MEMORY): Remove.
13095 (STRUCT_VALUE_REGNUM): Likewise.
13096 (STRICT_ARGUMENT_NAMING): Likewise.
13097
a7bba6ca
EB
130982004-01-26 Eric Botcazou <ebotcazou@libertysurf.fr>
13099
13100 PR target/13666
13101 * config/sparc/sparc.c (function_arg_union_value): New function.
13102 (function_arg): Use it to deal with unions.
13103 (function_value): Likewise. Define 'regbase' only for ARCH64.
13104 Replace a conditional statement by a simpler one.
13105
6865f4cd
RS
131062004-01-26 Richard Sandiford <rsandifo@redhat.com>
13107
13108 * config/mips/mips.c (mips16_optimize_gp): Delete.
13109 (mips_reorg): Don't call it.
13110
2d6d0eb5
MH
131112004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13112
13113 * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
13114 (floatunsqihf2): Remove operand 6.
13115 (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
13116 fix patterns.
13117 (ldi_conditional, ldf_conditional): Validate operands.
13118
8f422192
MH
131192004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13120
13121 * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
13122 (HAVE_GAS_HIDDEN): Undefine as interim measure.
52ad4d7b 13123
9c3602e4
MH
131242004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13125
13126 * config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
13127 memory references if TARGET_EXPOSE_LDP nonzero.
13128
a026b9d6
MH
131292004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13130
13131 * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
52ad4d7b 13132
b7bbb574
MH
131332004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13134
13135 * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
13136 invalid operand combinations.
13137
1e903c61
MH
131382004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13139
13140 * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
13141 c4x_legitimate_address_p. Fix post_modify check.
b7bbb574 13142
1e903c61
MH
13143 * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
13144 * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
52ad4d7b 13145
3f12cd9b
KH
131462004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13147
13148 * config/pa/pa-protos.h: Remove the prototype for
13149 hppa_builtin_saveregs. Add a prototype for
13150 pa_return_in_memory.
13151 * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
13152 (TARGET_PROMOTE_PROTOTYPES): Likewise.
13153 (TARGET_STRUCT_VALUE_RTX): Likewise.
13154 (TARGET_RETURN_IN_MEMORY): Likewise.
13155 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13156 (pa_struct_value_rtx): Likewise.
13157 (pa_return_in_memory): Likewise.
13158 * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
13159 PA_STRUCT_VALUE_REGNUM.
13160 (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
13161 (EXPAND_BUILTIN_SAVEREGS): Remove.
13162 (PROMOTE_PROTOTYPES): Likewise.
13163 (PROMOTE_FUNCTION_RETURN): Likewise.
13164
f289e226
KH
131652004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13166
13167 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
13168 (TARGET_STRUCT_VALUE_RTX): Likewise.
13169 (vax_struct_value_rtx): Likewise.
13170 * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
13171 VAX_STRUCT_VALUE_REGNUM.
13172 (PROMOTE_PROTOTYPES): Remove.
13173
12fb52cf 131742004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
52ad4d7b
ZW
13175
13176 * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref.
13177
fdcf1e1e
CD
131782003-04-25 Chris Demetriou <cgd@broadcom.com>
13179
13180 * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
13181 and MIPS64 have HI/LO interlocks. Update comment.
13182
7e43c821
KH
131832004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13184
13185 * config/stormy16/stormy16-protos.h: Remove the prototype for
13186 xstormy16_setup_incoming_varargs.
13187 * config/stormy16/stormy16.c
13188 (xstormy16_setup_incoming_varargs): Remove.
13189 (xstormy16_return_in_memory): New.
13190 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13191 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13192 (TARGET_PROMOTE_PROTOTYPES): Likewise.
13193 (TARGET_STRUCT_VALUE_RTX): Likewise.
13194 (TARGET_RETURN_IN_MEMORY): Likewise.
13195 * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
13196 (PROMOTE_FUNCTION_RETURN): Likewise
13197 (PROMOTE_PROTOTYPES): Likewise
13198 (RETURN_IN_MEMORY): Likewise
13199 (STRUCT_VALUE): Likewise
13200 (SETUP_INCOMING_VARARGS): Likewise
13201
62973ffe
RS
132022004-01-25 Richard Sandiford <rsandifo@redhat.com>
13203
13204 * config/mips/mips.c (mips_offset_within_object_p): New function.
13205 (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
13206 SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the
13207 ABI has 64-bit pointers and the object file only allows 32-bit symbols.
13208
8e67da21
KH
132092004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13210
13211 * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
13212 (PROMOTE_FUNCTION_RETURN): Likewise.
13213
9024ea92
KH
132142004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13215
13216 * config/mn10300/mn10300-protos.h: Remove the prototype for
13217 mn10300_builtin_saveregs.
13218 * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
13219 (TARGET_STRUCT_VALUE_RTX): Likewise.
13220 (TARGET_RETURN_IN_MEMORY): Likewise.
13221 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13222 (mn10300_return_in_memory): Likewise.
13223 (mn10300_builtin_saveregs): Make it static.
13224 * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
13225 (RETURN_IN_MEMORY): Likewise.
13226 (STRUCT_VALUE): Likewise.
13227 (EXPAND_BUILTIN_SAVEREGS): Likewise.
13228
20b4e8ae
EB
132292004-01-25 Eric Botcazou <ebotcazou@act-europe.fr>
13230
13231 PR bootstrap/13853
13232 * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
13233
cff555dc
KH
132342004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13235
13236 * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
13237 using ccr.
13238
30f58b01
KH
132392004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13240
13241 * config/i860/i860-protos.h: Remove the prototype for
13242 i860_saveregs.
13243 * config/i860/i860.c (i860_saveregs): Make it static.
13244 (i860_struct_value_rtx): New.
13245 (TARGET_STRUCT_VALUE_RTX): Likewise.
13246 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13247 * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
13248 I860_STRUCT_VALUE_REGNUM.
13249 (EXPAND_BUILTIN_SAVEREGS): Remove.
13250
341ec191
KH
132512004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13252
13253 * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
13254 (TARGET_RETURN_IN_MEMORY): Likewise.
13255 (m68hc11_struct_value_rtx): Likewise.
13256 (m68hc11_return_in_memory): Likewise.
13257 * config/m68hc11/m68hc11.h: Remove a commented-out definition
13258 of PROMOTE_PROTOTYPES.
13259 (RETURN_IN_MEMORY): Remove.
13260 (STRUCT_VALUE_REGNUM): Likewise.
13261
344caf1b
KH
132622004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13263
13264 * config/mmix/mmix-protos.h: Remove the prototype for
13265 mmix_setup_incoming_varargs.
13266 * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13267 (TARGET_STRUCT_VALUE_RTX): Likewise.
13268 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13269 (mmix_setup_incoming_varargs): Make it static.
13270 (mmix_struct_value_rtx): New.
13271 * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
13272 Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
13273 (STRUCT_VALUE_REGNUM): Remove.
13274 (SETUP_INCOMING_VARARGS): Likewise.
13275
0c8da560
KH
132762004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13277
13278 * config/mips/mips-protos.h: Remove the prototypes for
13279 mips_setup_incoming_varargs and mips_return_in_memory.
13280 * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13281 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13282 (TARGET_PROMOTE_PROTOTYPES): Likewise.
13283 (TARGET_STRUCT_VALUE_RTX): Likewise.
13284 (TARGET_RETURN_IN_MEMORY): Likewise.
13285 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13286 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13287 (mips_setup_incoming_varargs): Match the prototype for
13288 TARGET_SETUP_INCOMING_VARARGS.
13289 (mips_return_in_memory): Make it static. Add argument fntype.
13290 (mips_strict_argument_naming): New.
13291 * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
13292 (PROMOTE_FUNCTION_ARGS): Likewise.
13293 (PROMOTE_FUNCTION_RETURN): Likewise.
13294 (STRUCT_VALUE): Likewise.
13295 (RETURN_IN_MEMORY): Likewise.
13296 (SETUP_INCOMING_VARARGS): Likewise.
13297 (STRICT_ARGUMENT_NAMING): Likewise.
13298
49ca372c
KH
132992004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13300
13301 * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
13302 (TARGET_RETURN_IN_MEMORY): Likewise.
13303 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13304 (ip2k_return_in_memory): Likewise.
13305 (ip2k_setup_incoming_varargs): Likewise.
13306 * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
13307 (STRUCT_VALUE): Likewise.
13308 (STRUCT_VALUE_INCOMING): Likewise.
13309 (SETUP_INCOMING_VARARGS): Likewise.
13310
b069302c
KH
133112004-01-25 Kazu Hirata <kazu@cs.umass.edu>
13312
13313 * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
13314 (TARGET_RETURN_IN_MEMORY): Likewise.
13315 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13316 (avr_return_in_memory): Remove.
13317 * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
13318 (STRUCT_VALUE): Likewise.
13319 (STRUCT_VALUE_INCOMING): Likewise.
13320 (STRICT_ARGUMENT_NAMING): Likewise.
13321
e6d83128
JH
133222004-01-25 Jan Hubicka <jh@suse.cz>
13323
13324 * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
13325
bcbc6b7f
RS
133262004-01-25 Richard Sandiford <rsandifo@redhat.com>
13327
13328 * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
13329 (mips_regno_mode_ok_for_base_p): Declare.
13330 * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
13331 (FRAME_POINTER_REGNUM): Renumber to 78.
13332 (FIRST_PSEUDO_REGISTER): Update comment accordingly.
13333 (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
13334 (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
13335 (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
13336 (REG_MODE_OK_FOR_BASE_P): Likewise.
13337 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
13338 entry for 77 to "$arg" and entry for 78 to "$frame".
13339 (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
13340 (mips_reg_mode_ok_for_base_p): Remove.
13341 (mips_regno_mode_ok_for_base_p): New function, derived from old
13342 BASE_REG_P macro. Don't enforce the mips16 stack pointer
13343 restrictions unless we're being strict.
13344 (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
13345
1f52178b
KH
133462004-01-24 Kazu Hirata <kazu@cs.umass.edu>
13347
13348 * c-common.h: Fix comment typos.
13349 * c-decl.c: Likewise.
13350 * cgraphunit.c: Likewise.
13351 * combine.c: Likewise.
13352 * et-forest.c: Likewise.
13353 * flow.c: Likewise.
13354 * function.c: Likewise.
13355 * ifcvt.c: Likewise.
13356 * integrate.c: Likewise.
13357 * jump.c: Likewise.
13358 * postreload.c: Likewise.
13359 * varray.c: Likewise.
13360
56ae1316
KH
133612004-01-24 Kazu Hirata <kazu@cs.umass.edu>
13362
13363 * doc/frontends.texi: Update copyright.
13364 * doc/gcov.texi: Likewise.
13365 * doc/gty.texi: Likewise.
13366 * doc/sourcebuild.texi: Likewise.
13367 * doc/standards.texi: Likewise.
13368
b1dccb28
HB
133692004-01-24 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
13370
13371 PR target/12978
13372 * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
13373 Remove movstrqi_small because it conflicts with movstrqi_large.
13374
a2fef3a4
KH
133752004-01-24 Kazu Hirata <kazu@cs.umass.edu>
13376
13377 * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13378 (TARGET_STRUCT_VALUE_RTX): Likewise.
13379 (cris_struct_value_rtx): Likewise.
13380 * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
13381 (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
13382 STRUCT_VALUE_REGNUM.
13383 (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
13384
1f44254c
ILT
133852004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
13386
13387 PR bootstrap/13848
13388 * cse.c (cse_cc_succs): Change the mode of the source expression
13389 as soon as decide we need a new mode. Don't permit changing modes
13390 if we found a match in a successor block.
13391 (cse_condition_code_reg): Save original mode of source expression
13392 so that we know whether we have to change the mode in other
13393 insns.
13394
fdb1c7b3
JH
133952004-01-24 Jan Hubicka <jh@suse.cz>
13396
13397 * emit-rtl.c (change_address, adjust_address_1, offset_address,
13398 widen_memory_access): Return early when there is nothing to change.
13399
5473cfa7
JJ
134002004-01-24 Jakub Jelinek <jakub@redhat.com>
13401
13402 * simplify-rtx.c (simplify_relational_operation): Don't
13403 simplify address == constant into address + -constant == 0.
13404
a5153056
KH
134052004-01-24 Kazu Hirata <kazu@cs.umass.edu>
13406
13407 * gcc.c (process_command): Don't internationalize the
13408 Copyright message.
13409 * mips-tfile.c (main): Likewise.
13410
174b84e5
AT
134112004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
13412
13413 * cse.c: (cse_cc_succs) Fix comparison warning.
13414
16537909
KH
134152004-01-24 Kazu Hirata <kazu@cs.umass.edu>
13416
13417 * config/h8300/h8300.md: Remove extraneous USE in expanders.
13418
d0022200
KH
134192004-01-24 Kazu Hirata <kazu@cs.umass.edu>
13420
13421 * config/h8300/h8300-protos.h: Provide prototypes for
13422 h8300_legitimate_constant_p and h8300_legitimate_address_p.
13423 * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
13424 (h8300_rtx_ok_for_base_p): Likewise.
13425 (h8300_legitimate_address_p): Likewise.
13426 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
13427 h8300_legitimate_constant_p.
13428 (RTX_OK_FOR_BASE_P): Remove.
13429 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
13430
ca04c5a9
KH
134312004-01-24 Kazu Hirata <kazu@cs.umass.edu>
13432
13433 * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
13434 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
13435 (REG_OK_FOR_INDEX_STRICT_P): Likewise.
13436 (REG_OK_FOR_BASE_STRICT_P): Likewise.
13437 (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
13438 (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
13439 (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
13440 (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
13441
3e2a0bd2
JH
134422004-01-24 Jan Hubicka <jh@suse.cz>
13443
13444 * cselib.c (remove_useless_values): Do not access discarded values.
13445
b1adf557
JM
134462004-01-24 Joseph S. Myers <jsm@polyomino.org.uk>
13447
13448 * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
13449 arrays.
13450
55cd4633
KH
134512004-01-23 Kazu Hirata <kazu@cs.umass.edu>
13452
13453 * recog.c: Fix a typo in copyright.
13454
bbf294a5
AP
134552004-01-23 Andrew Pinski <apinski@apple.com>
13456
13457 * config/rs6000/rs6000.md (call): Fix misappiled patch.
13458 (call_value): Likewise.
13459
a475bff7
RH
134602004-01-23 Richard Henderson <rth@redhat.com>
13461
52ad4d7b
ZW
13462 PR opt/12941
13463 * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
13464 (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
13465 if SHIFT_COUNT_TRUNCATED is set.
a475bff7 13466
3712281f
BW
134672004-01-23 Bob Wilson <bob.wilson@acm.org>
13468
13469 * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
13470 separate real and imaginary parts.
13471 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
13472
99e5c00b
HP
134732004-01-23 Hartmut Penner <hpenner@de.ibm.com>
13474
13475 PR target/13674
13476 * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
13477 loading into GPR.
13478
8b07361e
JH
134792004-01-23 Jan Hubicka <jh@suse.cz>
13480
a74ff877
JH
13481 * emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing
13482 change.
13483
8b07361e
JH
13484 * alloc-pool.c (align_four): Kill.
13485 (create_alloc_pool): Align size to eight.
13486 (free_alloc_pool, free_pool): Invalidate deallocated data.
13487
e129d93a
ILT
134882004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
13489
13490 PR gcc/1532
13491 * cse.c (cse_change_cc_mode): New static function.
13492 (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
13493 (cse_condition_code_reg): New function.
13494 * rtl.h (cse_condition_code_reg): Declare.
13495 * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
13496 * target.h (struct gcc_target): Add fixed_condition_code_regs and
13497 cc_modes_compatible.
13498 * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13499 (TARGET_CC_MODES_COMPATIBLE): Define.
13500 (TARGET_INITIALIZER): Add new initializers.
13501 * targhooks.c (default_cc_modes_compatible): New function.
13502 * targhooks.c (default_cc_modes_compatible): Declare.
13503 * hooks.c (hook_bool_intp_intp_false): New function.
13504 * hooks.h (hook_bool_intp_intp_false): Declare.
13505 * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13506 (TARGET_CC_MODES_COMPATIBLE): Define.
13507 (ix86_fixed_condition_code_regs): New static function.
13508 (ix86_cc_modes_compatible): Likewise.
13509 * doc/tm.texi (Condition Code): Document new hooks.
13510
f6c930a3
RO
135112004-01-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13512
13513 * fixinc/inclhack.def (bad_lval): Renamed to ...
13514 (alpha_bad_lval): ... this.
13515 Removed file list.
13516 Restrict to alpha*-dec-osf*.
13517 * fixinc/fixincl.x: Regenerate.
13518 * fixinc/tests/base/dirent.h: Remove, moving test ...
13519 * fixinc/tests/base/testing.h: ... here, reflecting new name.
13520
04b8f97f
ZW
135212004-01-23 Zack Weinberg <zack@codesourcery.com>
13522
30cab869 13523 PR c/13814
04b8f97f
ZW
13524 * c-decl.c (diagnose_mismatched_decls): Also discard a
13525 built-in if we encounter an old-style definition with the
13526 same name.
13527
1ab1739c
JJ
135282004-01-23 Jakub Jelinek <jakub@redhat.com>
13529
13530 * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
13531 set to default{32,64}.
13532
02731d29
JJ
135332004-01-21 Jakub Jelinek <jakub@redhat.com>
13534
13535 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
13536 [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
13537
0a944ef6 135382004-01-23 Eric Botcazou <ebotcazou@act-europe.fr>
04b8f97f 13539 Olivier Hainque <hainque@act-europe.fr>
0a944ef6
EB
13540
13541 * fold-const.c (fold_binary_op_with_conditional_arg): Only
13542 build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
13543
0bfb39ef
DJ
135442004-01-23 Daniel Jacobowitz <drow@mvista.com>
13545
13546 * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
13547 size for minipool references.
13548
25348c94
RS
135492004-01-23 Roger Sayle <roger@eyesopen.com>
13550
13551 * real.c (real_floor, real_ceil): Tweak to allow input and output
13552 arguments to overlap.
13553 (real_round): New function to implement round(3m) semantics.
13554 * real.h (real_round): Prototype here.
13555 * builtins.c (fold_builtin_round): New function to constant fold
13556 round, roundf and roundl.
13557 (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
13558
0f2b41b2
AO
135592004-01-23 Alexandre Oliva <aoliva@redhat.com>
13560
13561 PR optimization/13819
04b8f97f 13562 * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
0f2b41b2
AO
13563 introduced by 2004-01-20's Jan Hubicka's copy_insn change.
13564 (sh_handle_sp_switch_attribute): Remove warning.
13565
72613dfa
JH
135662003-11-30 Jan Hubicka <jh@suse.cz>
13567
13568 * i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets.
13569
7be4d808
R
135702004-01-23 J"orn Rennecke <joern.rennecke@superh.com>
13571
13572 * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
13573 may or may not return non-NIL.
13574 * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
13575 check CANNOT_CHANGE_MODE_CLASS
13576
23bd7a93
JH
135772004-01-23 Jan Hubicka <jh@suse.cz>
13578
13579 * basic-block.h (PROP_POSTRELOAD): New macro.
13580 (CLEANUP_LOG_LINKS): New.
13581 * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
13582 * toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg.
13583
13584 * cselib.c (value_pool): New.
13585 (new_cselib_val): Use pool.
13586 (cselib_init): Initialize value_pool
13587 (cselib_finish): Free pool.
13588
5c4f4b18
EB
135892004-01-23 Eric Botcazou <ebotcazou@libertysurf.fr>
13590
13591 * config/sparc/sparc.c (scan_record_type): New function.
13592 (function_arg_slotno): Use it to determine which kinds of
13593 registers the record can be passed in.
13594
95f576c1
JM
135952004-01-22 James A. Mmorrison <ja2morri@uwaterloo.ca>
13596
13597 * config/pa/fptr.c: Fix old-style definition.
13598
4c442790
PB
135992004-01-22 Paolo Bonzini <bonzini@gnu.org>
13600
13601 PR optimization/13724
13602 * cse.c (fold_rtx) <SUBREG>: Fold a SUBREG to zero if it
13603 represents the zero bits produced by a ZERO_EXTEND operation.
13604
dc4bbaf7
RS
136052004-01-22 Roger Sayle <roger@eyesopen.com>
13606
13607 PR optimization/13821
13608 * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
13609 correctly calculate the lowpart offset of the contracted subreg.
13610
b00567b0
ILT
136112004-01-22 Ian Lance Taylor <ian@wasabisystems.com>
13612
13613 * doc/invoke.texi (Optimize Options): Note that --param arguments
13614 are subject to change without notice.
13615
d0d969f8
RO
136162004-01-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13617
13618 * config.gcc (mips-sgi-irix6*o32): Removed.
13619 * config/mips/iris6-o32-as.h: Likewise.
13620 * config/mips/iris6-o32-gas.h: Likewise.
13621 * config/mips/iris6-o32.h: Likewise.
13622
7cf240d5
JH
136232004-01-22 Jan Hubicka <jh@suse.cz>
13624
13625 * cfgcleanup.c (first_pass): New static variable.
13626 (try_forward_edges): Add work limiting check for threading.
13627 (try_crossjump_bb): Add work limiting check for crossjumping.
13628 (try_optimize_cfg): Maintain first pass variable.
13629
b16417d6
BW
136302004-01-22 Bob Wilson <bob.wilson@acm.org>
13631
13632 * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
13633 handles complex and vector modes.
13634
c8796654
KH
136352004-01-22 Kazu Hirata <kazu@cs.umass.edu>
13636
13637 * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
13638 (REG_OK_FOR_BASE_P_STRICT): Likewise.
13639 (STRICT): Likewise.
13640
10176e28
DJ
136412004-01-22 Daniel Jacobowitz <drow@mvista.com>
13642
13643 * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
13644 (genrtl_for_stmt): Remove emit_nop calls.
13645
7bff636b
JDA
136462004-01-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13647
13648 PR target/13713
13649 PR target/13324
13650 * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
13651 movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
13652 clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
13653
980e61bb
DJ
136542004-01-22 Daniel Jacobowitz <drow@mvista.com>
13655
13656 * config/arm/arm.c: Include "debug.h".
04b8f97f 13657 (thumb_pushpop): Take two new arguments. Add some commentary.
980e61bb
DJ
13658 Output frame information when pushing.
13659 (thumb_exit, thumb_unexpanded_epilogue): Update calls to
13660 thumb_pushpop.
13661 (thumb_output_function_prologue): Likewise. Accumulate a CFA
13662 offset, and pass it to thumb_pushpop. Output CFI information.
13663 (thumb_expand_prologue): Add some frame-related markers and notes.
13664
0067d121
UW
136652004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
13666
13667 * config/s390/s390.c (s390_frame_info): Allow large frame sizes
13668 for TARGET_64BIT.
13669 (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
13670 * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
13671
bb51e270
RS
136722004-01-22 Roger Sayle <roger@eyesopen.com>
13673 Paolo Bonzini <bonzini@gnu.org>
13674
13675 * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
13676 (subreg_lsb): Change to call new subreg_lsb_1 helper function.
13677 * rtl.h (subreg_lsb_1): Prototype here.
13678 * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
13679 sign extensions.
13680
9c49953c
KH
136812004-01-22 Kazu Hirata <kazu@cs.umass.edu>
13682
13683 * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
13684 macro need not be defined if jump-tables should contain
13685 relative addresses only when -fPIC or -fPIC is in effect.
13686
c582d54a
JH
136872004-01-22 Jan Hubicka <jh@suse.cz>
13688
13689 * alias.c (reg_base_value): Turn into varray.
13690 (reg_base_value_size): Kill.
13691 (old_reg_base_value): New deletable varray.
13692 (alias_invariant_size): New variable.
13693 (REG_BASE_VALUE): Update to use varray.
13694 (find_base_value): Likewise.
13695 (record_set): Likewise.
13696 (record_base_value): Likewise.
13697 (memrefs_conflict_p): Likewise.
13698 (record_set): Likewise
13699 (record_base_value): Likewise.
13700 (memrefs_conflict_p): Use alias_invariant_size.
13701 (init_alias_analysis): Use varray; set alias_invariant_size;
13702 rescale other arrays to be sized by maxreg.
13703 (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
13704
8a98812c
EB
137052004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
13706
13707 * config/sparc/sparc.c (function_arg_slotno): Use
13708 FLOAT_TYPE_P to detect FP fields in structures.
13709 (function_arg_record_value_1): Likewise.
13710 (function_arg_record_value_2): Likewise.
13711
0de456a5
JH
137122004-01-22 Jan Hubicka <jh@suse.cz>
13713
13714 * function.c (allocate_struct_function): Do not initialize expr, emit
13715 and varasm.
13716 (prepare_function_start): Do it here.
13717 * c-parse.in (maybe_type_qual): Do not produce line number notes.
13718
1fd05073
EB
137192004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
13720
13721 PR target/13559
13722 * config/sparc/sparc.c (function_arg_record_value_3): Revert
13723 to 'word_mode' once the first slot has been filled.
13724
b2f24c85
EB
137252004-01-22 Olivier Hainque <hainque@act-europe.fr>
13726
13727 * config/sparc/sparc.c (function_arg_record_value_1): Fix
13728 computation of the number of integer registers required.
13729
b4e0dd8e
KH
137302004-01-21 Kazu Hirata <kazu@cs.umass.edu>
13731
13732 * config/i386/i386.md: Simplify certain comparisons of
13733 const_int.
13734
5cc5eddc
AP
137352004-01-21 Andrew Pinski <apinski@apple.com>
13736
13737 PR target/13785
04b8f97f 13738 * config/rs6000/rs6000.md (call_value): Force operand
5cc5eddc
AP
13739 1 not operand 0 into a register.
13740
711d8c91
KH
137412004-01-21 Kazu Hirata <kazu@cs.umass.edu>
13742
13743 * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
13744 unwind-dw2-fde.h: Update copyright.
13745
d1885651
JDA
137462004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13747
13748 * pa-protos.h: Update copyright.
13749 * pa.h: Likewise.
13750 * pa.md: Likewise.
13751
40ca90bf 137522004-01-21 Caroline Tice <ctice@apple.com>
ec13ba83 13753
6ed854f1 13754 PR target/12308
04b8f97f 13755 * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
ec13ba83
CT
13756 flags register.
13757 (fix_truncdfdi2): Likewise.
13758 (fix_truncsfdi2): Likewise.
13759 (*fix_truncdi_1): Likewise.
13760 (fix_truncxfsi2): Likewise.
13761 (fix_truncdfsi2): Likewise.
13762 (fix_truncsfsi2): Likewise.
13763 (*fix_truncsi_1): Likewise.
13764 (fix_truncxfhi2): Likewise.
13765 (fix_truncdfhi2): Likewise.
13766 (fix_truncsfhi2): Likewise.
13767 (*fix_trunchi_1): Likewise.
04b8f97f 13768
d9221e01
KH
137692004-01-21 Kazu Hirata <kazu@cs.umass.edu>
13770
13771 * alias.c, basic-block.h, c-common.c, c-common.h,
13772 c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
13773 calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
13774 combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
13775 cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
13776 defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
13777 expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
13778 genautomata.c, genconditions.c, genemit.c, genflags.c,
13779 gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
13780 ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
13781 langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
13782 line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
13783 ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
13784 rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
13785 target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
13786 unwind.h, varray.c, varray.h: Update copyright.
13787
6d6b0a12
KH
137882004-01-21 Kazu Hirata <kazu@cs.umass.edu>
13789
13790 * config/h8300/coff.h: Update copyright.
13791 * config/h8300/elf.h: Likewise.
13792 * config/h8300/h8300-protos.h: Likewise.
13793 * config/h8300/h8300.c: Likewise.
13794 * config/h8300/h8300.h: Likewise.
13795 * config/h8300/h8300.md: Likewise.
13796
4b60eb3b
JDA
137972004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13798
13799 * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
13800 ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
13801 ultrix_unistd): New hacks.
13802 * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
13803 ULTRIX_CONST2_CHECK): Add checks.
13804 * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
13805 * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
13806 * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
13807 * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
13808 * fixinc/tests/base/locale.h: New file.
13809 * fixinc/fixincl.x: Rebuilt.
13810
bbf5a54d
AJ
138112004-01-21 Andreas Jaeger <aj@suse.de>
13812 Michael Matz <matz@suse.de>
13813
13814 * doc/extend.texi (Extended Asm): Clarify memory clobber.
13815
bfccaa6f
JJ
138162004-01-21 Jakub Jelinek <jakub@redhat.com>
13817
13818 * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
13819 _Jv_RegisterClasses through a function pointer.
13820
c3cda381
FH
138212004-01-21 Falk Hueffner <falk@debian.org>
13822
13823 PR target/12898
13824 * config/alpha/alpha.c (alpha_emit_set_const_1): If
13825 no_new_pseudos, use gen_rtx_SET directly for SImode constants
13826 which need multiple instructions to emit.
13827
2a2001be
IK
138282004-01-21 Inaoka Kazuhiro <inaoka.kazuhiro@renesas.com>
13829
13830 * config/m32r/m32r.h (CPP_SPEC): Define.
13831
1ef82ef2
ZW
138322004-01-21 Zack Weinberg <zack@codesourcery.com>
13833
13834 * c-decl.c (merge_decls): Kill different_binding_level and
13835 different_tu arguments; simplify throughout.
13836 (duplicate_decls): Likewise.
13837 (pushdecl, merge_translation_unit_decls): Update calls to
13838 duplicate_decls.
13839
13544b81
KG
138402004-01-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13841
13842 * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
13843 $(SYSTEM_H).
13844 (print-rtl1.o): Depend on $(SYSTEM_H).
13845
a541f69d
KC
138462004-01-20 Kelley Cook <kcook@gcc.gnu.org>
13847
13848 PR bootstrap/12730
13849 * configure.ac: Delete definition and subsitution of docdir.
13850 Add info, man, srcman and srcinfo to target hooks. Create doc/
13851 directory.
13852 * configure: Regenerate.
13853 * Makefile.in: Don't substitute docdir and delete all references
13854 throughout.
13855 (MAKEINFOFLAGS): Define.
13856 (stmp-docobjdir): Delete.
13857 (INFOFILES, MANFILES): Define.
13858 (info): Call lang.info, srcinfo and lang.srcinfo.
13859 (generated-manpages): Call lang.man, srcman and lang.srcman.
13860 (srcinfo, srcman): New rules to copy back files to source directory.
13861 (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
13862 (install-man): Revamp rule.
13863 (clean): Update dvi directory.
13864 (distclean): Delete TAGS from front end directorys.
13865 (maintainer-clean): Delete all document files in source directory.
13866
13867 objc/Make-lang.in (objc.man, objc.info): Dummy entries.
13868 (objc.srcman, objc.srcinfo): Likewise.
13869
793146e3
BK
138702004-01-20 Bruce Korb <bkorb@gnu.org>
13871
13872 * fixinc/inclhack.def(math_exception): bypass only for glibc.
13873 (matherr_decl): rename & relocate as exception_structure.
13874 This fix must precede the math_exception fix.
13875
fdb33708
RS
138762004-01-20 Roger Sayle <roger@eyesopen.com>
13877
13878 * fold-const.c (fold_convert): Rename to fold_convert_const.
13879 (fold_convert_const): Change arguments to take a tree_code,
13880 a type and the operand/expression to be converted. Return
13881 NULL_TREE if no simplification is possible. Add support for
13882 FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
13883 (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
13884 Adjust call to fold_convert to match new fold_convert_const.
13885 Avoid modifying the tree passed to fold in-place.
13886
34c80057
AM
138872004-01-21 Alan Modra <amodra@bigpond.net.au>
13888
13889 * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
13890 * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
13891 * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
13892
a4295210
JDA
138932004-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13894
13895 * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
13896 * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
13897 Likewise. Handle frames larger than 0x7fffffff on 64-bit ports.
13898 (emit_move_sequence): Check scratch_reg first in various if statements.
13899 Extend source simplification to handle all 64-bit CONST_INTs.
13900 (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
13901 frame size.
13902 (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
13903 frame offset calculations.
13904 * pa.h (NEW_HP_ASSEMBLER): Add comment.
13905 (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
13906 LEGITIMATE_64BIT_CONST_INT_P): Define.
13907 (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat
13908 any CONST_INT as legitimate during and after reload.
13909 (VAL_32_BITS_P, INT_32_BITS): Define.
13910 (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
13911
3e89ed8d
JH
139122004-01-20 Jan Hubicka <jh@suse.cz>
13913
13914 * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
13915 emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
13916 containing hard regs are shared.
13917 (gen_hard_reg_clobber): New function.
13918 (hard_reg_clobbers): New array.
13919 * genemit.c (gen_exp): Use gen_hard_reg_clobber.
13920 (copy_rtx): Do not copy clobbers containing hard regs.
13921 * rtl.h (gen_hard_reg_clobber): Declare.
13922
9b57b627
JH
139232004-01-20 Jan Hubicka <jh@suse.cz>
13924
13925 * varray.c: Include hashtab.h
13926 (varray_descriptor): New structure.
13927 (hash_descriptor, eq_descriptor, varray_descriptor,
13928 print_statistics): New static functions
13929 (varray_init, varray_grow): Update statistics
13930 (dump_varray_statistics): New function.
13931 * varray.h (dump_varray_statistics): Declare.
13932 * toplev.c (finalize): Call it.
13933 * Makefile.in (varray.o): Add dependency.
13934
6a59927d
JH
139352004-01-20 Jan Hubicka <jh@suse.cz>
13936
13937 * cselib.c: Include alloc-pool.h
13938 (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
13939 (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
13940 (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
13941 unchain_one_elt_loc_list_pool, unchain_one_value,
13942 new_cselib_val): Simplify using allocpool.
13943 (cselib_init): Initialize allocpools.
13944 (cselib_finish): Finish allocpools.
13945 * Makefile.in (cselib.o): Depend on alloc-pool.h
13946
3c53850d
RS
139472004-01-20 Richard Sandiford <rsandifo@redhat.com>
13948
13949 * config/mips/mips.c (mips_load_call_address): Make the call insn
13950 use $gp if it could be calling a lazy binding stub.
13951
101ad855
KH
139522004-01-20 Kazu Hirata <kazu@cs.umass.edu>
13953
13954 * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
13955 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13956 (TARGET_STRUCT_VALUE_RTX): Likewise.
13957 * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
13958 (PROMOTE_FUNCTION_RETURN): Remove.
13959 (STRUCT_VALUE): Remove.
13960
c099ba28
DC
139612004-01-20 Denis Chertykov <denisc@overta.ru>
13962
03b82c00 13963 PR bootstrap/13735
c099ba28
DC
13964 * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
13965 register as pointer after reload.
13966
c8b6fae3
ZD
139672004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
13968
13969 PR optimization/12440
13970 * loop.c: Include ggc.h.
13971 (loop_optimize): Run garbage collector between optimization of loops.
13972 * Makefile.in (loop.o): Add GGC_H dependency.
13973
c72d6c26
HP
139742004-01-20 Hartmut Penner <hpenner@de.ibm.com>
13975
1ef82ef2 13976 * gcc/config/rs6000/rs6000.c (function_arg) Handle
c72d6c26
HP
13977 vector register special in function without prototype.
13978 (function_arg_advance): Vector parameters get always
13979 GPRs allocated for the linux64 target.
13980
91e736f9
KI
139812004-01-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
13982
13983 * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
13984 not TARGET_M32RX_MASK.
13985
4043d6fb
EB
139862004-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
13987
13988 PR target/13557
13989 * config/sparc/sparc.c (function_arg): Reorder the cases.
13990
50f59cd7
PB
139912004-01-19 Per Bothner <per@bothner.com>
13992
13993 Move cpp_reader's line_maps field to a shared global.
13994 * cpphash.h (cpp_reader): Rename line_maps field to line_table
13995 and change the type to a pointer rather than a struct.
13996 * cppinit.c (cpp_push_main_field): Adjust accordingly.
13997 * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
13998 Likewise.
13999 * cppfiles.c (validate_pch): Likewise.
14000 * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
14001 Likewise.
14002 * cpperror.c (print_location): Likewise.
14003 * cpplib.h (cpp_create_reader): New line_maps pointer parameter.
14004 * cppinit.c (cpp_create_reader): Handle new parameter.
14005 (cpp_destroy): Don't free line_maps - that's no longer our job.
14006 * input.h (line_table): New variable.
14007 * toplev.c (line_table): Declare variable.
14008 (general_init): Initialize line_table.
14009 * c-opts.c (c_common_init_options): Pass line_table to
14010 cpp_create_reader.
14011 * fix-header.c (read_scan_file): New local variable line_table.
14012 Initialize, and pass it to cpp_create_reader.
14013 * Makefile.in (LIBS, LIBDEPS): Add libcpp.a.
14014 (C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a.
14015
140162004-01-19 Per Bothner <per@bothner.com>
9132fbb7
PB
14017
14018 Implement a cache for linemap_lookup.
14019 * line-map.h (struct_line_maps): Add cache field.
14020 * line-map.c (linemap_init): Zero cache field.
14021 (linemap_add): Set cache field to offset of newly allocated map.
14022 (linemap_lookup): Use and set cache field.
14023
26d107db
KK
140242004-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
14025
14026 PR optimization/13567
14027 * cse.c (cse_basic_block): Call cse_insn with a non-null
14028 libcall_insn for the last SET insn of a no-confilict block.
14029
e165d61b
KC
140302004-01-20 Kelley Cook <kcook@gcc.gnu.org>
14031
1ef82ef2 14032 * Makefile.in (target_noncanonical, program_transform_name): Use
e165d61b 14033 immediate define instead of deferred.
1ef82ef2 14034 (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
e165d61b
KC
14035 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
14036 GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
14037 deferred backquote.
14038
53cd18ec
JM
140392004-01-20 Joseph S. Myers <jsm@polyomino.org.uk>
14040
14041 * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
14042 true unconditionally.
14043 * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
14044 Remove.
14045 (build_unary_op, build_modify_expr): Don't handle extended
14046 lvalues.
14047 (build_component_ref, build_conditional_expr): Call non_lvalue
14048 instead of pedantic_non_lvalue.
14049 (build_c_cast): Don't condition use of non_lvalue on pedantic.
14050 * fold-const.c (fold): Don't check pedantic directly for
14051 COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are
14052 passed to pedantic_non_lvalue.
14053 * doc/extend.texi: Remove documentation of extended lvalues.
14054
9ce79a7a
RS
140552004-01-19 Roger Sayle <roger@eyesopen.com>
14056
14057 PR optimization/5263
14058 * simplify-rtx.c (associative_constant_p): Delete.
14059 (simplify_associative_operation): Rewrite to linearize terms, and
14060 attempt to simplify new term against both left and right subterms.
14061 (simplify_binary_operation): Call swap_commutative_operands_p on
14062 op0 and op1, not trueop0 and trueop1. Move the initialization of
14063 trueop0 and trueop1 down to where first needed.
14064 (simplify_relational_operation): Likewise.
14065 * rtlanal.c (commutative_operand_precedence): Also order constant
14066 operands using avoid_constant_pool_reference.
14067
62e88293
RH
140682004-01-19 Richard Henderson <rth@redhat.com>
14069
1ef82ef2
ZW
14070 * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
14071 don't check memory mode.
14072 (unaligned_memory_operand): Likewise.
14073 (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
14074 abort for op0 not MEM.
62e88293 14075
1ef82ef2
ZW
14076 * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
14077 is not a reg, copy to a scratch first.
14078 (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
14079 unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
14080 unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
14081 (reload_inqi, reload_inhi): Fix mode of op0.
14082 (reload_inqi_help, reload_inhi_help, reload_outqi_help,
14083 reload_outhi_help): Likewise. Use define_insn_and_split.
62e88293 14084
1ef82ef2
ZW
14085 * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
14086 as well as $29 dead.
62e88293 14087
2f3321ca
EB
140882004-01-19 Eric Botcazou <ebotcazou@libertysurf.fr>
14089
14090 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit
14091 "tls_object" for thread-local objects.
14092 * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
14093 "#tls" for thread-local sections.
14094 * configure.ac (thread-local checks): Specify --fatal-warnings in
14095 every binutils-specific checks. For sparc*-*-*, test whether the
14096 OS is Solaris and the tools are native and act accordingly.
14097 * configure: Rebuild.
14098
6fe37bc4
JL
140992004-01-19 Jeff Law <law@redhat.com>
14100
14101 * contrib.texi: Update Paolo Carlini's entry. New entries for
14102 Jerry Quinn and Petur Runolfsson.
1ef82ef2 14103
68f48f39
RS
141042004-01-19 Roger Sayle <roger@eyesopen.com>
14105
14106 * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
14107 size, don't use the larger zero-extending loads.
14108
5c9948f4
RH
141092004-01-19 Richard Henderson <rth@redhat.com>
14110
14111 * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
14112 * alpha.md (UNSPEC_NT_LDA): Remove.
14113 (UNSPEC_CVTLQ, cvtlq): New.
14114 (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
14115 (extendsidi2_fix): Remove.
14116 (extendsidi2 splitter): Use cvtlq.
14117 (extendsidi2 fp peepholes): Remove.
14118 (cvtql): Use SFmode instead of SImode.
14119 (fix_trunc?fsi): Update to match.
14120 (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
14121 (movsi): Rename from movsi_nofix, remove f alternatives.
14122 (movsi_nt_vms): Similarly.
14123 (movsi_fix, movsi_nt_vms_fix): Remove.
14124 (nt_lda): Remove.
14125 * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
14126
9b0436b7
JH
141272004-01-19 Jan Hubicka <jh@suse.cz>
14128
14129 * cgraph.c (cgraph_remove_node): Fix removal from linked list.
14130 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
14131 list.
14132 (cgraph_remove_unreachable_nodes): New function
14133 (cgraph_decide_inlining_of_small_function): Fix pasto.
14134 (cgraph_decide_inlining_incrementally): Fix pasto.
14135 (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
14136
8c80adb7
SB
141372004-01-19 Steven Bosscher <stevenb@suse.de>
14138
14139 * gengtype.c (header_file): Make it static.
14140 (write_types_process_field, write_enum_defn): Minor whitespace fixes.
14141 * gengtype.h (header_file): No longer extern.
14142
0ede749d
KH
141432004-01-18 Kazu Hirata <kazu@cs.umass.edu>
14144
14145 * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
14146 * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
14147 * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
14148
41cbdcd0
KH
141492004-01-18 Kazu Hirata <kazu@cs.umass.edu>
14150
14151 * stmt.c (HAVE_casesi): Define it not already defined.
14152 (HAVE_tablejump): Likewise.
14153 (expand_end_case_type): Resort to the binary tree method if
14154 neither casesi or tablejump is available.
14155
5cfc5f84
DJ
141562004-01-18 Daniel Jacobowitz <drow@mvista.com>
14157
14158 * final.c (final_scan_insn): Make non-static again.
14159 * output.h (final_scan_insn): Re-add prototype.
14160 * config/arc/arc.c (arc_output_function_epilogue): Add NULL
14161 to final_scan_insn call.
14162 * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
14163 * config/mips/mips.c (mips_output_conditional_branch): Likewise.
14164 * config/pa/pa.c (output_lbranch, output_call): Likewise.
14165 * config/sh/sh.c (print_slot): Likewise.
14166 * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
14167 (output_sibcall, sparc_flat_function_epilogue): Likewise.
14168
3348b696
JH
141692004-01-18 Jan Hubicka <jh@suse.cz>
14170
14171 * basic-block.h (try_redirect_by_replacing_jump): Declare.
14172 * cfgcleanup.c (try_optimize_cfg): Use it.
14173 * cfgrtl.c (try_redirect_by_replacing_jump): Export.
14174 (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
14175 Kill hack.
14176 (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
14177
14178 Revert:
14179 2004-01-16 Geoffrey Keating <geoffk@apple.com>
14180
14181 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14182 even after reload, just don't remove the actual jump tables.
14183
72d89d35
KH
141842004-01-18 Kazu Hirata <kazu@cs.umass.edu>
14185
14186 * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
14187
07b50aad
KH
141882004-01-18 Kazu Hirata <kazu@cs.umass.edu>
14189
14190 * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
14191 the size of a pointer in bytes.
14192
6e46ab25
RS
141932004-01-18 Roger Sayle <roger@eyesopen.com>
14194
14195 * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
14196 live "next" variable, which could lead to an infinite loop.
14197
3ce5437a
AP
141982004-01-18 Andrew Pinski <pinskia@physics.uc.edu>
14199
b4be9e8e
AP
14200 * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
14201 block.
14202
3ce5437a
AP
14203 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14204 Check for NULL in the chain and remove repeated code.
14205
20c361f3
JH
142062004-01-18 Jan Hubicka <jh@suse.cz>
14207
14208 * coverage.c (checksum_string): Rename to ...
14209 (coverage_checksum_string): ... this one, Use crc32_string; recognize
14210 names containing random number and zero the number out in order to get
14211 match.
14212
cacb5bba
RS
142132004-01-18 Richard Sandiford <rsandifo@redhat.com>
14214
14215 * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
14216
daf2f129
JM
142172004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
14218
14219 * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
14220 doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
14221 doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
14222 doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
14223 doc/trouble.texi: Remove trailing whitespace.
14224
b85aed9e
RS
142252004-01-18 Richard Sandiford <rsandifo@redhat.com>
14226
1c0f3fac 14227 PR target/7618
b85aed9e
RS
14228 * config/mips/mips.c: Include cfglayout.h.
14229 (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
14230 (mips_unspec_offset_high): Add temporary register argument.
14231 (mips_load_call_address): New function, split out from...
14232 (mips_expand_call): ...here.
14233 (mips_output_cplocal): New function.
14234 (mips_output_function_prologue, mips_output_function_epilogue): Use it.
14235 (mips_emit_loadgp): New function, split out from...
14236 (mips_expand_prologue): ...here.
14237 (mips_output_mi_thunk): New function.
14238
e5d95b69
BI
142392004-01-17 Bernardo Innocenti <bernie@develer.com>
14240
14241 * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
14242 mcpu32): Remove redundant checks for implied target predefines.
14243
19d66194
AP
142442004-1-17 Andrew Pinski <pinskia@physics.uc.edu>
14245
14246 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14247 Return type is unsigned int not int.
14248 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14249 Likewise.
14250
95fef11f
JM
142512004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
14252
14253 * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
14254 doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
14255 "GNU/Linux" and "Microsoft Windows" terminology.
14256
3ab51846
JM
142572004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
14258
14259 * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
14260 doc/cppopts.texi, doc/extend.texi, doc/install.texi,
14261 doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
14262 doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
14263 @smallexample instead of @example.
14264
cfbed37c
ZL
142652004-01-17 Ziemowit Laski <zlaski@apple.com>
14266
14267 * objc/objc-act.c (build_objc_method_call): Use target
1ef82ef2 14268 hooks instead of macros to determine if ..._stret
cfbed37c
ZL
14269 dispatchers should be used (NeXT runtime only).
14270
bef5105b
RS
142712004-01-17 Roger Sayle <roger@eyesopen.com>
14272
14273 * builtins.c (expand_builtin_expect_jump): Fix mistake in my
14274 last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
14275
dd3adcf8
DJ
142762004-01-17 Daniel Jacobowitz <drow@mvista.com>
14277
14278 * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
14279 (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
14280 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
14281 macros.
14282 * reload1.c (emit_reload_insns): Use them.
14283 * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
14284 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
14285 for NULL PATTERN.
14286
589fe865
DJ
142872004-01-17 Daniel Jacobowitz <drow@mvista.com>
14288
14289 * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
14290 (final_scan_insn): Update to take an additional SEEN argument. Emit
14291 a line note after the prologue. Make static.
14292 (line_note_exists): Remove.
14293 (final): Don't initialize line_note_exists. Update call to
14294 final_scan_insn.
14295 * output.h (final_scan_insn): Remove prologue.
14296 * function.c (set_insn_locators): Update comment.
14297 (thread_prologue_and_epilogue_insns): Add a comment.
14298
95727fb8
AP
142992004-01-17 Andrew Pinski <pinskia@physics.uc.edu>
14300
14301 PR target/10781
14302 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14303 Prototype.
14304 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14305 New function.
14306 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
14307 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
14308 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
14309
f2e16e97
JH
143102004-01-17 Jan Hubicka <jh@suse.cz>
14311
26c0473b
JH
14312 * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
14313 commit.
14314
f2e16e97
JH
14315 * toplev.c (HAVE_conditional_execution): Provide default.
14316 (rest_of_handle_reorder_blocks): For conditional_execution target
14317 update liveness once after all transformations
14318 (rest_of_compilation): Do crossjumping before ce3.
14319
f103e34d
GK
143202004-01-17 Geoffrey Keating <geoffk@apple.com>
14321
14322 * alias.c (new_alias_set): Mark last_alias_set for PCH.
14323 (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
14324 for PCH.
14325 (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
14326 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
14327 (get_TOC_alias_set): Mark 'set' for PCH.
14328
ab530ea8
GK
143292004-01-16 Geoffrey Keating <geoffk@apple.com>
14330
14331 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14332 even after reload, just don't remove the actual jump tables.
14333
53dd3be3 143342004-01-17 J. Brobecker <brobecker@gnat.com>
e7d23ce3
B
14335
14336 * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
14337 Remove checks for is_ada() and TREE_UNSIGNED.
14338 (subrange_type_die): Emit a byte_size attribute if the subrange
14339 type size is different from the base type size.
14340 (modified_type_die): Replace call to is_ada_subrange_type() by
14341 call to is_subrange_type().
14342
8582b18a
AP
143432004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
14344
14345 * config/sh/sh.c: Include ggc.h.
14346
73e61092
GK
143472004-01-16 Geoffrey Keating <geoffk@apple.com>
14348
14349 * Makefile.in (MD5_H): New.
14350 (fold-const.o): Depend on md5.h.
14351 (dwarf2out.o): Likewise.
14352 (cppfiles.o): Likewise.
14353 * cppfiles.c: Include md5.h.
14354 (should_stack_file): Check against list read from PCH file.
14355 (struct pchf_data): New.
14356 (pchf): New variable.
14357 (struct pchf_adder_info): New.
14358 (pchf_adder): New.
14359 (pchf_save_compare): New.
14360 (_cpp_save_file_entries): New.
14361 (_cpp_read_file_entries): New.
14362 (struct pchf_compare_data): New.
14363 (pchf_compare): New.
14364 (check_file_against_entries): New.
14365 * cpphash.h (_cpp_save_file_entries): Prototype.
14366 (_cpp_read_file_entries): Prototype.
14367 * cpppch.c (cpp_write_pch_state): Write the list of headers.
14368 (cpp_read_state): Read the list of headers.
14369
3b75d796
JH
143702004-01-17 Jan Hubicka <jh@suse.cz>
14371
14372 * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
14373 builtin_expect specially.
14374 * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
14375 (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
14376 * invoke.texi (max-inline-insns-single): Set to 100.
14377 (large-function-insns): Set to 3000.
14378
cf551fba
EC
143792004-01-16 Eric Christopher <echristo@redhat.com>
14380 Chandrakala Chavva <cchavva@redhat.com>
14381
14382 * cppcharset.c (one_iso88591_to_utf8): New function.
14383 (convert_iso88591_utf8): Ditto. Use.
14384 (conversion_tab): Use.
14385 (_cpp_input_to_utf8): New function.
14386 (_cpp_init_iconv_buffer): Ditto.
14387 (_cpp_close_iconv_buffer): Ditto.
14388 * cpphash.h: Prototype new functions.
14389 (cpp_buffer): Add input_cset_desc.
14390 * cppinit.c: Add input_charset default.
14391 * cpplib.c (cpp_push_buffer): Support init and
14392 close of iconv.
14393 * cpplib.h (cpp_options): Add input_charset.
14394
510d1e80
KH
143952004-01-16 Kazu Hirata <kazu@cs.umass.edu>
14396
14397 * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
14398 * config/alpha/unicosmk.h: Remove a commented-out definition
14399 of ASM_OUTPUT_SECTION_NAME.
14400 * config/stormy16/stormy16.h: Likewise.
14401
fb2c2608
RO
144022004-01-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
14403
14404 * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
14405 (alpha___extern_prefix_sys_stat): ... this.
14406 Apply to <sys/mount.h>, too.
14407 Tweak to match more variations.
14408 * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
14409
14410 * fixinc/inclhack.def (alpha___extern_prefix,
cf551fba 14411 alpha___extern_prefix_standards): New hacks to obey
c53bdcf5 14412 __PRAGMA_EXTERN_PREFIX.
fb2c2608
RO
14413 * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
14414 test.
14415 * fixinc/tests/base/standards.h: Likewise.
cf551fba 14416
fb2c2608
RO
14417 * fixincl/inclhack.def (alpha_pthread): Tweak to match more
14418 variations.
14419 New testcase.
14420 * fixinc/tests/base/pthread.h: Handle it.
cf551fba 14421
fb2c2608
RO
14422 * fixincl/inclhack.def (bad_lval): Sort file list.
14423 Add many missing files up to Tru64 UNIX V5.1B.
14424 * gcc/fixinc/tests/base/libgen.h: Renamed to ...
14425 * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
14426 order.
cf551fba 14427
fb2c2608
RO
14428 * fixinc/fixincl.x: Regenerate.
14429
79a76d65
MM
144302004-01-16 Mark Mitchell <mark@codesourcery.com>
14431
14432 * version.c (version_string): Change to 3.5.0.
14433 * doc/include/gcc-common.texi (version-GCC): Likewise.
14434
965514bd
JH
144352004-01-16 Jan Hubicka <jh@suse.cz>
14436
14437 * i386.md (load_tp_di): Fix pasto.
14438
14439 PR opt/13608
14440 * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
14441
14442 * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
14443 pp_c_character_constant, pp_c_floating_constant,
14444 pp_c_additive_expression, pp_c_shift_expression,
14445 pp_c_equality_expression, pp_c_and_expression,
14446 pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
14447 pp_c_logical_and_expression): Remove inline modifier.
14448 * dwarf2out.c (get_AT): Likewise.
14449 * et-forest.c (et_splay): Likewise.
14450 * ra.h (ra_alloc, ra_calloc): Likewise
14451
87b483a1
KH
144522004-01-16 Kazu Hirata <kazu@cs.umass.edu>
14453
14454 * config/frv/frv-protos.h: Fix comment formatting.
14455 * config/frv/frv.c: Likewise.
14456 * config/frv/frv.h: Likewise.
14457 * config/frv/frv.md: Likewise.
14458 * config/frv/frvbegin.c: Likewise.
14459 * config/frv/frvend.c: Likewise.
14460
16201823
KH
144612004-01-16 Kazu Hirata <kazu@cs.umass.edu>
14462
14463 * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
14464 * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
14465 LINKER_DOES_NOT_WORK_WITH_DWARF2.
14466 (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
14467
115df136
R
144682004-01-16 J"orn Rennecke <joern.rennecke@superh.com>
14469
5ed5fd90 14470 PR 11864
115df136
R
14471 * postreload.c (reload_cse_simplify_operands): Don't remove
14472 implicit extension from LOAD_EXTEND_OP.
14473
e24e7211
JH
144742004-01-16 Jan Hubicka <jh@suse.cz>
14475
8c80adb7
SB
14476 PR opt/11350
14477 * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
e24e7211 14478 after reload.
8c80adb7
SB
14479 * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
14480 rtl_try_redirect_by_replacing_branch): Likewise.
e24e7211 14481
b0fadda7
GK
144822004-01-15 Geoffrey Keating <geoffk@apple.com>
14483
b604074c
GK
14484 PR pch/13689
14485 * alias.c (struct alias_set_entry): Mark for GC.
14486 (alias_sets): Make static, mark for GC.
14487 (record_alias_subset): Use GC to allocate alias structures.
14488 * varray.c (element): Make generic varrays GCed.
14489
a6dd4094
GK
14490 PR pch/13361
14491 * c-typeck.c (constructor_asmspec): Delete.
14492 (struct initializer_stack): Delete field 'asmspec'.
14493 (start_init): Delete saving of asmspec.
14494 (finish_init): Don't update constructor_asmspec.
14495 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14496 * stmt.c (expand_asm): Duplicate strings from tree.
14497 (expand_asm_operands): Likewise.
14498 * tree.c (tree_size): Update computation of size of STRING_CST.
14499 (make_node): Don't make STRING_CST nodes.
14500 (build_string): Allocate string with tree node.
14501 * tree.def (STRING_CST): Update comment.
14502 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14503 (tree_string): Place contents of string in tree node.
14504 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14505 from tree.
14506
b0fadda7
GK
14507 * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
14508 altivec operands.
14509
e0a21ab9
KH
145102004-01-15 Kazu Hirata <kazu@cs.umass.edu>
14511
14512 * c-common.h: Fix comment formatting.
14513 * c-cppbuiltin.c: Likewise.
14514 * c-pragma.c: Likewise.
14515 * calls.c: Likewise.
14516 * collect2.c: Likewise.
14517 * cppcharset.c: Likewise.
14518 * cpptrad.c: Likewise.
14519 * dbxout.c: Likewise.
14520 * defaults.h: Likewise.
14521 * dwarf2out.c: Likewise.
14522 * fold-const.c: Likewise.
14523 * genautomata.c: Likewise.
14524 * genconditions.c: Likewise.
14525 * genflags.c: Likewise.
14526 * gengtype.c: Likewise.
14527 * integrate.c: Likewise.
14528 * loop.c: Likewise.
14529 * predict.c: Likewise.
14530 * sdbout.c: Likewise.
14531
f57fc998
ZW
145322004-01-15 Zack Weinberg <zack@codesourcery.com>
14533
14534 * config/ia64/ia64.md (*movti_internal): C output template
14535 extracted to ia64.c.
14536 (*movti_internal_reg): Delete.
14537 (reload_inti, reload_outti): Use the correct mode on operand 2
14538 in the first place, don't fix it up in the output template.
14539 (movtf, reload_ointf, reload_outtf): New expanders.
14540 (*movtf_internal): New define_insn_and_split.
14541 * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
14542 make static; do not hand TFmode CONST_DOUBLEs to split_double.
14543 (ia64_split_tmode_move): New function, body mostly pulled
14544 from ia64.md:*movti_internal.
14545 (ia64_function_arg_words): New function, extracted common
14546 logic from ia64_function_arg et seq.
14547 (ia64_function_arg_offset): Likewise. Handle correctly the
14548 case of a scalar quantity 16 bytes wide with only 8-byte alignment.
14549 (ia64_function_arg, ia64_function_arg_partial_nregs)
14550 (ia64_function_arg_advance): Use ia64_function_arg_words and
14551 ia64_function_arg_offset.
14552 (ia64_function_value): TCmode does not go in float regs.
14553 (ia64_secondary_reload_class): Also handle TFmode.
14554 * config/ia64/ia64-protos.h: Remove prototype for
14555 ia64_split_timode; add prototype for ia64_split_tmode_move.
14556
e9c4897b
KC
145572004-01-15 Kelley Cook <kcook@gcc.gnu.org>
14558
14559 * Makefile.in (MAINT): Make it an immediate assignment.
14560
5a67e41f
KH
145612004-01-15 Kazu Hirata <kazu@cs.umass.edu>
14562
14563 * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
14564
340f6494
KH
145652004-01-15 Kazu Hirata <kazu@cs.umass.edu>
14566
14567 * config/h8300/coff.h: Replace Hitachi with Renesas.
14568 * config/h8300/elf.h: Likewise.
14569 * config/h8300/h8300-protos.h: Likewise.
14570 * config/h8300/h8300.c: Likewise.
14571 * config/h8300/h8300.h: Likewise.
14572 * config/h8300/h8300.md: Likewise.
14573 * config/h8300/lib1funcs.asm: Likewise.
14574
c954844a
AP
145752004-01-15 Andrew Pinski <apinski@apple.com>
14576
14577 * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
14578 around it.
14579
34bf1fe3
KH
145802004-01-15 Kazu Hirata <kazu@cs.umass.edu>
14581
14582 * config/h8300/h8300.c (h8300_return_in_memory): New.
14583 (TARGET_STRUCT_VALUE_RTX): Likewise.
14584 (TARGET_RETURN_IN_MEMORY): Likewise.
14585 * config/h8300/h8300.h (STRUCT_VALUE): Remove.
14586 (RETURN_IN_MEMORY): Likewise.
14587
e5396f90
RE
145882004-01-15 Richard Earnshaw <rearnsha@arm.com>
14589
14590 PR optimization/13375
14591 * gcse.c (handle_avail_expr): Just return if the source is not a
14592 single set.
14593
46049cff
RE
145942004-01-15 Richard Earnshaw <rearnsha@arm.com>
14595 Daniel Jacobowitz <drow@mvista.com>
14596
14597 * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
14598 (EQUIV): Define.
14599 (ARM_FUNC_ALIAS): New macro.
14600 * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
14601 * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
14602
2fabc3d6
JDA
146032004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14604
14605 PR optimization/12372
14606 * calls.c (expand_call): Add call_fusage data for stack arguments in
14607 constant calls.
14608
3c9eb5f4
AM
146092004-01-15 Alan Modra <amodra@bigpond.net.au>
14610
14611 * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static.
14612 (rs6000_elf_declare_function_name): Formatting.
14613 * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
14614
c7866154
JH
146152004-01-15 Jan Hubicka <jh@suse.cz>
14616
14617 PR bootstrap/13692
14618 * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
14619 previous patch.
14620
ad5d827d
RH
146212004-01-15 Richard Henderson <rth@redhat.com>
14622
14623 * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
14624 integer regs of the same call-savedness.
14625
66e07510
AS
146262004-01-15 Andreas Schwab <schwab@suse.de>
14627
14628 PR bootstrap/13562
14629 * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
14630 status for NOTB/NOTW/NEGW methods.
14631
7c12f388
KH
146322004-01-15 Kazu Hirata <kazu@cs.umass.edu>
14633
14634 * doc/invoke.texi: Update dump file names. Fix a typo.
14635
4a7bb550
KH
146362004-01-15 Kazu Hirata <kazu@cs.umass.edu>
14637
14638 * builtins.c (expand_builtin_va_end): Don't use
14639 EXPAND_BUILTIN_VA_END.
14640 * system.h (EXPAND_BUILTIN_VA_END): Poison.
14641 * config/d30v/d30v.h: Remove a commented-out definition of
14642 EXPAND_BUILTIN_VA_END.
14643 * config/stormy16/stormy16.h: Likewise.
14644
430fff02
KH
146452004-01-15 Kazu Hirata <kazu@cs.umass.edu>
14646
14647 * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
14648 * targhooks.c (default_struct_value_rtx): Don't use
14649 STRUCT_VALUE_INCOMING_REGNUM.
14650
03787dfd
KC
146512004-01-15 Kelley Cook <kcook@gcc.gnu.org>
14652
14653 PR bootstrap/12744
14654 * configure.in: Revamp enable-generated-files-in-srcdir rule to define
14655 GENINSRC and not parsedir. Define srcextra as a langhook.
14656 * configure: Regenerate.
14657 * Makefile.in: Suppress default .l.c rule. Don't substitute
14658 parsedir and delete all references throughout. Conditionally define
14659 rule for srcextra dependent on GENINSRC.
14660 (stmp-docobjdir): Delete.
14661 (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
14662 (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
14663 and gengtype-yacc.h back to source directory.
14664 (maintainer-clean): Delete all parse files in source directory.
14665 (distclean): Delete generated files.
14666
14667 * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
14668 (objc-parse.c, objc-parse.y): Don't use parsedir.
14669 (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
14670 directory if requested.
14671 (po-generated): Don't use parsedir.
14672 (objc.maintainer-clean): Delete above files from source directory.
14673
04ab46a4
KH
146742004-01-14 Kazu Hirata <kazu@cs.umass.edu>
14675
14676 * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
14677
d624465f
KH
146782004-01-14 Kazu Hirata <kazu@cs.umass.edu>
14679
14680 * doc/tm.texi: Replace RETURN_IN_MEMORY with
14681 TARGET_RETURN_IN_MEMORY.
14682
e1be55d0
JH
146832004-01-15 Jan Hubicka <jh@suse.cz>
14684
14685 * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
14686 * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
14687 functions accepting SSE arguments
14688 (function_arg): Warn only when asked to warn.
14689 * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
14690
f560bf91
JM
146912004-01-14 Joseph S. Myers <jsm@polyomino.org.uk>
14692
14693 * c-parse.in (stmts_and_decls): Make label at end of compound
14694 statement a hard error.
14695
95c755e9
JH
146962004-01-14 Jan Hubicka <jh@suse.cz>
14697
14698 * cgraph.c (create_edge): Use local.redefined_extern_inline.
14699 * cgraph.h (cgraph_local_info): Sort fields by size; add
14700 redefined_extern_inline
14701 (cgraph_global_info): Sort fields by size.
14702 (cgraph_node): Likewise.
14703 * cgraphunit.c (cgraph_finalize_function): Se
14704 local.redefined_extern_inline on redefinition.
14705 (cgraph_analyze_function): Use it; fix formating.
14706
84568e14
JH
147072004-01-14 Jan Hubicka <jh@suse.cz>
14708
14709 PR c++/10776
14710 * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
14711 outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
14712 bitmaps
14713 (cache_size): New variable
14714 (add_dependence): Update use; canonize early memory locations
14715 (sched_analyze_1): Likewise.
14716 (sched_analyze_2): Likewise.
14717 (init_dependency_caches): Initialize bitmaps.
14718 (free_dependency_caches): Free bitmaps
14719
3a179764
KH
147202004-01-14 Kazu Hirata <kazu@cs.umass.edu>
14721
14722 * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
14723 targetm.calls.strict_argument_naming().
14724 * target.h: Likewise.
14725
b298f00f
RH
147262004-01-14 Richard Henderson <rth@redhat.com>
14727
14728 PR debug/13231
14729 * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
14730 instructions.
14731
1bddbeb4
RH
147322004-01-14 Richard Henderson <rth@redhat.com>
14733
14734 PR c++/12491
14735 * except.c (struct eh_region): Add u.fixup.resolved.
14736 (resolve_one_fixup_region): Split out from ...
14737 (resolve_fixup_regions): ... here.
14738
4eb31d4f
KH
147392004-01-14 Kazu Hirata <kazu@cs.umass.edu>
14740
14741 * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
14742
16f425fc
KH
147432004-01-14 Kazu Hirata <kazu@cs.umass.edu>
14744
14745 * config/alpha/alpha.h (STRUCT_VALUE): Remove.
14746 * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
14747 (STRUCT_VALUE): Remove.
14748
4850c982 147492004-01-14 Steven Bosscher <stevenb@suse.de>
616f6d84
SB
14750
14751 * system.h: Poison PROMOTED_MODE
14752 * integrate.c (expand_inline_function): Don't mention the
14753 PROMOTED_MODE.
14754 * loop.c (update_giv_derive): Same.
14755 * tree.h (DECL_RTL): Same.
14756
f9654065
R
147572004-01-14 J"orn Rennecke <joern.rennecke@superh.com>
14758
14759 PR target/9365
14760 * sh.c (gen_block_redirect): Add special handling of RETURN.
14761 (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
14762 far branch target (i.e. it's a return).
14763
abbe8578
KH
147642004-01-14 Kazu Hirata <kazu@cs.umass.edu>
14765
14766 * regrename.c (find_oldest_value_reg): Fix a warning.
14767
192c8d78
RE
147682004-01-14 Richard Earnshaw <rearnsha@arm.com>
14769
14770 PR bootstrap/12527
14771 * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
14772 Move linux-gas.h and linux-elf.h before aout.h.
14773 * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
14774 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
14775
e512ab39
KH
147762004-01-14 Kazu Hirata <kazu@cs.umass.edu>
14777
14778 * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
14779 (CONST_INT, VOIDmode, ...).
14780
684bcee5
RE
147812004-01-14 Richard Earnshaw <rearnsha@arm.com>
14782
f57fc998 14783 * regrename.c (find_oldest_value_reg): If the replacement uses
684bcee5
RE
14784 multiple hard registers, check that all of them are in CLASS.
14785
e7844ffb
JH
147862004-01-14 Jan Hubicka <jh@suse.cz>
14787
14788 * alias.c (get_alias_set): Initialize alias set to 0 when subset is
14789 impossible.
14790
73e232f0
KC
147912004-01-14 Kelley Cook <kcook@gcc.gnu.org>
14792
14793 * Makefile.in: Define MAINT from --enable-maintainer-mode.
14794
4d774ff8
HP
147952004-01-14 Hartmut Penner <hpenner@de.ibm.com>
14796
14797 * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
14798 Calculate always vrsave_mask if TARGET_ALTIVEC.
14799 (rs6000_emit_prologue): Emit code for vrsave
14800 only if TARGET_ALTIVEC_VRSAVE.
14801 (rs6000_emit_epilogue): Likewise.
14802
fa1090f5
EB
148032004-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
14804
14805 * config/sparc/sparc.md (tie_add32): Fix pasto.
14806 (tie_add64): Likewise.
14807
79551a56
ZD
148082004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
14809
14810 * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
14811
5b8d96f1
KH
148122004-01-13 Kazu Hirata <kazu@cs.umass.edu>
14813
14814 * config/iq2000/iq2000-protos.h: Fix comment formatting.
14815 * config/iq2000/iq2000.c: Likewise.
14816 * config/iq2000/iq2000.md: Likewise.
14817
b98d154e
B
148182004-01-14 J. Brobecker <brobecker@gnat.com>
14819
14820 * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
14821 (subrange_type_die): Add handle for nameless subrange types.
14822
1a793acf
KH
148232004-01-13 Kazu Hirata <kazu@cs.umass.edu>
14824
14825 * config/h8300/h8300-protos.h: Replace do_movsi with
14826 h8300_expand_movsi.
14827 * config/h8300/h8300.c (do_movsi): Change to
14828 h8300_expand_movsi.
14829 * config/h8300/h8300.md (movsi): Replace do_movsi with
14830 h8300_expand_movsi.
14831 (movsf): Likewise.
14832
81ad9ded
KH
148332004-01-13 Kazu Hirata <kazu@cs.umass.edu>
14834
14835 * config/h8300/h8300.c (dosize): Change to
14836 h8300_emit_stack_adjustment. Update callers.
14837
3f0063ab
KH
148382004-01-13 Kazu Hirata <kazu@cs.umass.edu>
14839
14840 * config/h8300/h8300.md (movstrictqi): Add an alternative with
14841 the source being post_inc. Tighten the predicate for the
14842 destination to register_operand.
14843 (movstricthi): Likewise.
14844
abf843c4
KH
148452004-01-13 Kazu Hirata <kazu@cs.umass.edu>
14846
14847 * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
14848 * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
14849 * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
14850
4b589eab
JH
148512004-01-14 Jan Hubicka <jh@suse.cz>
14852
d34cb6a1
JH
14853 Partial fix PR c++/12850
14854 * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
14855 at zero nest level.
4b589eab 14856
9ff2cabc
BI
148572004-01-13 Bernardo Innocenti <bernie@develer.com>
14858
14859 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
f57fc998 14860 pseudo-register.
9ff2cabc 14861
a4d8ec65
DP
148622004-01-13 Devang Patel <dpatel@apple.com
14863
14864 PR debug/7078
f57fc998 14865 * dbxout.c (dbxout_symbol_name): Emit mangled names for
a4d8ec65 14866 NAMESPACE_DECL memebers.
f57fc998 14867
bfaba7a9
AP
148682004-01-13 Andrew Pinski <pinskia@physics.uc.edu>
14869
14870 PR c++/12709
14871 * c-common.c (finish_fname_decls): Use the chain only if the
14872 tree is an expr_stmt.
14873
dfa849f3
VM
148742004-01-13 Vladimir Makarov <vmakarov@redhat.com>
14875
616f6d84 14876 * rtl.def: Add comment about new option in automata_option.
f57fc998 14877
dfa849f3
VM
14878 * genautomata.c (PROGRESS_OPTION): New macro.
14879 (progress_flag): New global variable.
14880 (gen_automata_option): Process `progress'.
14881 (transform_insn_regexps, check_unit_distributions_to_automata,
14882 make_automaton, NDFA_to_DFA, build_automaton, create_automata,
14883 expand_automata, write_automata): Print about the progress only if
14884 progress_flag. Remove fflush.
14885 (initiate_automaton_gen): Process command line flag `-progress'.
14886
14887 * doc/md.texi: Describe the new option.
f57fc998 14888
9405162e
ZD
148892004-01-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
14890
14891 * cfg.c (dump_bb): Dump entry edges.
14892
f954388e
RE
148932004-01-13 Richard Earnshaw <rearnsha@arm.com>
14894
f57fc998 14895 * arm.c (thumb_legitimate_address_p): Only allow constant pool
f954388e
RE
14896 references from SImode.
14897 * arm.md (thumb_movhi_insn): Don't allow minipool references.
14898
0fe7abcc
KH
148992004-01-13 Kazu Hirata <kazu@cs.umass.edu>
14900
14901 * system.h (TEXT_SECTION): Poison.
14902 * varasm.c (text_section): Don't use TEXT_SECTION.
14903 * config/sh/sh.c (sh_file_start): Fix a comment typo.
14904 * doc/tm.texi (TEXT_SECTION): Remove.
14905
fdb07791
BE
149062004-01-13 Ben Elliston <bje@wasabisystems.com>
14907
14908 * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
14909
56067bbe
JW
149102004-01-12 James E Wilson <wilson@specifixinc.com>
14911
14912 * unwind-libunwind.c: Delete.
14913
bc298aa7
ZW
149142004-01-12 Zack Weinberg <zack@codesourcery.com>
14915
14916 PR 13656
14917 * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
14918 oldtype is set, set *newtypep or *oldtypep too. Do not set
14919 them at the very end.
14920 (validate_proto_after_old_defn): Restructure for comprehensibility;
14921 make error messages clearer.
14922
12a08b40
ZW
149232004-01-12 Zack Weinberg <zack@codesourcery.com>
14924
14925 * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
14926 (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
14927 * varray.c: No need to prototype error.
14928 (varray_check_failed): Wrap long string onto two lines.
14929 (varray_underflow): New function.
14930
faed5cc3
SB
149312004-01-13 Steven Bosscher <stevenb@suse.de>
14932
14933 PR c++/13376
14934 * function.h (struct function): Kill `name' field.
14935 (current_function_name): Make it an extern function.
14936 * function.c (current_function_name): New function.
14937 * graph.c: Update all uses of current_function_name.
14938 * gcse.c: Likewise.
14939 * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
14940 config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
14941 * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
14942 instead of a strcmp with "main".
14943
2d327012
JH
149442004-01-13 Jan Hubicka <jh@suse.cz>
14945
0bb03c11
JH
14946 * c-decl.c (diagnose_mismatched_decls): Fix warning calls.
14947
2d327012
JH
14948 * cgraphunit.c (cgraph_optimize_function): Always do
14949 optimize_inline_calls when there is always_inline callee.
14950 (cgraph_decide_inlining): Fix formating.
14951 * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
14952 functions.
14953 (expand_call_inline): Likewise.
14954 * toplev.h (sorry): Fix prototype.
14955
04cc79bb
RS
149562004-01-12 Roger Sayle <roger@eyesopen.com>
14957
14958 * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
14959 conditional jumps that drop through to unconditional jumps or the
14960 end of the sequence.
14961
3416f5c2
JH
149622004-01-13 Jan Hubicka <jh@suse.cz>
14963
14964 * alias.c (new_alias_set): Construct the alias_set varray.
14965 (init_alias_once): Don't do it here.
14966
f92ed976
ME
149672004-01-12 Marc Espie <espie@openbsd.org>
14968
14969 * system.h: handle YYBYACC like YYBISON.
14970
ff2aaa93
JM
149712004-01-12 Jonathan Merriman <jonm@dualitymedia.com>
14972
14973 PR target/10847
14974 * config.gcc: No longer includes conflicting header sparc/sol2.h when
14975 building on sparc64-*-openbsd*.
14976
c5ff9123
AP
149772004-01-12 Andrew Pinski <pinskia@physics.uc.edu>
14978
14979 PR debug/13539
14980 * dbxout.c (dbxout_type): Protected inheritance is not
14981 private but protected.
14982
3cd2a183
RS
149832004-01-12 Richard Sandiford <rsandifo@redhat.com>
14984
14985 * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
14986
5c881655
KH
149872004-01-12 Kazu Hirata <kazu@cs.umass.edu>
14988
14989 PR optimization/12508.
14990 * combine.c (try_combine): Remove a dead set in a parallel
14991 even if its destination is a subreg.
14992
14993 Revert:
14994 2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
14995 * combine.c (simplify_set): Don't move a subreg in SET_SRC to
14996 SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
14997
a42f8ae7 149982004-01-12 Geoffrey Keating <geoffk@apple.com>
affad9a4
GK
14999
15000 * real.c: Update copyright date.
15001 * emit-rtl.c: Likewise.
15002 * rtl.h: Likewise.
15003 * dwarf2out.c: Likewise.
15004 * config/rs6000/darwin-ldouble.c: Likewise.
15005 * config/rs6000/rs6000.md: Likewise.
15006
4274207b
DE
150072004-01-12 David Edelsohn <edelsohn@gnu.org>
15008
15009 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
15010 TFmode to SImode libfuncs.
15011
06e4eab5
RS
150122004-01-12 Roger Sayle <roger@eyesopen.com>
15013
15014 PR middle-end/11397
15015 * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
15016
432f982f
JH
150172004-01-12 Jan Hubicka <jh@suse.cz>
15018
15019 PR opt/12826
15020 * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
15021 stored.
15022
15023 PR opt/12863
15024 * cfgcleanup.c (label_is_jump_target_p): Move to...
15025 * rtlanal.c (label_is_jump_target_p): ... here.
15026 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru
15027 edges unified with branch edges.
15028
8064d930
RE
150292004-01-12 Richard Earnshaw <rearnsha@arm.com>
15030
15031 * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
15032 high word of an integral CONST_DOUBLE.
15033
1c48f4be 150342004-01-12 Paul Brook <paul@codesourcery.com>
0786ca87
PB
15035
15036 * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
15037
68d2b0bb 150382004-01-12 J"orn Rennecke <joern.rennecke@superh.com>
07d7d2f4
R
15039
15040 PR target/13585
15041 * sh-protos.h (check_use_sfunc_addr): Declare.
15042 * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
15043 * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
15044
c65ecebc
JH
150452004-01-12 Jan Hubicka <jh@suse.cz>
15046
9ddb66ca
JH
15047 * alias.c: Invlude varray.h
15048 (alias_sets): Turn into varray.
15049 (get_alias_set_entry): Use VARRAY; mark inline.
15050 (mems_in_disjoint_alias_sets_p): Mark inline.
15051 (record_alias_subset): Use varray.
15052 (init_alias_once): Initialize varray.
15053 (new_alias_set): Grow array.
15054 * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
15055
150562004-01-12 Jan Hubicka <jh@suse.cz>
15057
15058 Partial fix for PR opt/10776 II
c65ecebc
JH
15059 * cselib.c: Include params.h
15060 (cselib_invalidate_mem): Limit amount of nonconflicting memory
15061 locations.
15062 * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
15063 * Makefile.in (cselib.o): Depend on params.h
15064
c0657872
RS
150652004-01-12 Richard Sandiford <rsandifo@redhat.com>
15066
15067 * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
15068 simplify_unary_operation if the operand has a known mode.
15069
d2288d5d
HP
150702004-01-12 Hartmut Penner <hpenner@de.ibm.com>
15071
b40ee5d6 15072 PR target/13534
d2288d5d
HP
15073 * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
15074 predicate to handle 'ld' conform addresses.
15075 * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
15076 contraint.
15077 (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
15078 are memory contraints.
12a08b40 15079 * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
d2288d5d 15080 New prototype.
12a08b40 15081 * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
d2288d5d
HP
15082 Change 'o' to 'Y' constraint.
15083 (*movdf_softfloat64): Ditto.
12a08b40 15084
c223cf45
BI
150852004-01-12 Bernardo Innocenti <bernie@develer.com>
15086
15087 * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
15088 brace-enclosed syntax in all C output statements.
15089
5fc921c1
DE
150902004-01-12 David Edelsohn <edelsohn@gnu.org>
15091
15092 PR target/13401
15093 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
15094 Objective-C language type value is 14.
15095
48568ec7
MO
150962004-01-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
15097
15098 PR c/12148
15099 * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
15100 `int' in a number of places to make sure we always have a SImode
15101 and not a HImode. Add a 'L' suffix to a number of constants.
15102
124c9423
JDA
151032004-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15104
15105 * pa.c: Don't include obstack.h.
15106
15107 * pa.md: Correct constraint in pattern for loading PIC label address.
15108
c924f70c
KK
151092004-01-11 Kaz Kojima <kkojima@gcc.gnu.org>
15110
15111 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
15112 before defining.
15113
53efeb8d
SB
151142004-01-11 Steven Bosscher <stevenb@suse.de>
15115
1eee14b9 15116 PR fortran/9972
53efeb8d
SB
15117 * toplev.c (rest_of_handle_inline): Also consider functions
15118 for deferral if the language is GNU F77.
15119
d4968a11
ZW
151202004-01-11 Zack Weinberg <zack@codesourcery.com>
15121
15122 * c-decl.c (diagnose_arglist_conflict): Add missing space to
15123 diagnostic messages.
15124
1759c760
JJ
151252004-01-11 Jakub Jelinek <jakub@redhat.com>
15126
15127 PR middle-end/13392
15128 * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
15129 to drop through label. Don't fall back to SCC even when conditional
15130 jump has not been found.
15131
0bcf8261
JH
151322004-01-11 Jan Hubicka <jh@suse.cz>
15133
fb544601
JH
15134 * invoke.texi: Fix syntax error in previous patch.
15135
0bcf8261
JH
15136 Partial fix for PR opt/10776
15137 * Makefile.in (reload.o): Include param.h
15138 * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
15139 * reload.c: Include params.h.
15140 (find_equiv_reg): Work limiting check.
15141 * invoke.texi: Document.
15142
bd9131c0
RS
151432004-01-11 Richard Sandiford <rsandifo@redhat.com>
15144
15145 * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
15146 out-of-bounds accesses to string constants. Simplify mips16
15147 case accordingly.
15148
6732ee60
RS
151492004-01-11 Richard Sandiford <rsandifo@redhat.com>
15150
15151 PR optimization/13469
15152 * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
15153 reload_cse_regs (-fnon-call-exceptions only).
15154
14bc6742
KH
151552004-01-11 Kazu Hirata <kazu@cs.umass.edu>
15156
15157 * config/mcore/lib1.asm: Fix comment formatting.
15158 * config/mcore/mcore-elf.h: Likewise.
15159 * config/mcore/mcore.c: Likewise.
15160 * config/mcore/mcore.h: Likewise.
15161 * config/mcore/mcore.md: Likewise.
15162
3c6e6fbf
ZW
151632004-01-10 Zack Weinberg <zack@codesourcery.com>
15164
15165 * c-decl.c (duplicate_decls): Break apart into...
15166 (diagnose_arglist_conflict, validate_proto_after_old_defn)
15167 (locate_old_defn, diagnose_mismatched_decls, merge_decls):
15168 ... these new functions. Restructure for comprehensibility.
15169 Remove various archaic special cases. Always report the
15170 location of the previous declaration when a diagnostic is issued.
15171 (redeclaration_error_message): Fold into diagnose_mismatched_decls.
15172 (match_builtin_function_types): Delete unnecessary forward declaration.
15173
1e8dcb41
ZW
151742004-01-10 Zack Weinberg <zack@codesourcery.com>
15175
15176 * genautomata.c (make_automaton, NDFA_to_DFA):
15177 Print progress bars with '.' characters instead of '*'.
15178 (build_automaton): Change notes to match.
15179
a2ab189d
KH
151802004-01-10 Kazu Hirata <kazu@cs.umass.edu>
15181
15182 * config/m32r/m32r.md: Use define_constants for unspec and
15183 unspec_volatile.
15184
cf7cb67e
JH
151852004-01-10 Jan Hubicka <jh@suse.cz>
15186
c8fdcfae 15187 PR opt/11635
cf7cb67e
JH
15188 * expr.c (expand_expr_real): More curefully expand union casts.
15189
0574200c
KH
151902004-01-10 Kazu Hirata <kazu@cs.umass.edu>
15191
15192 * config/m32r/m32r.md (flush_icache): Use 1 for
15193 unspec_volatile.
15194
a2a0019f
DE
151952004-01-10 David Edelsohn <edelsohn@gnu.org>
15196 James E Wilson <wilson@specifixinc.com>
15197
15198 PR debug/12860
15199 * dbxout.c (dbxout_symbol): Remove initialization of
15200 current_sym_code, current_sym_value, and current_sym_addr.
15201 (dbxout_symbol_location): Same.
15202 (dbxout_prepare_symbol): Zero current_sym_code,
15203 current_sym_value, and current_sym_addr.
15204
bb3f5384
RS
152052004-01-10 Richard Sandiford <rsandifo@redhat.com>
15206
15207 * tree.c (get_unwidened): Reorder conditions so that the null pointer
15208 check is done first.
15209
fbfb16e2
EC
152102004-01-09 Eric Christopher <echristo@redhat.com>
15211
15212 * toplev.c (rest_of_handle_cfg): Add reg_scan pass
15213 if we're running mark_constant_function.
15214
cc23f3c7
JB
152152004-01-09 Jeff Bailey <jbailey@nisa.net>
15216
15217 PR target/12561
15218 * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
15219
975421be
AP
152202004-01-09 Andrew Pinski <pinskia@physics.uc.edu>
15221
15222 PR debug/11231
a2a0019f
DE
15223 * dbxout.c (dbxout_type_fields): Return if any item is
15224 error_mark_node or the type is error_mark_node.
975421be 15225
7e4bd541
GK
152262004-01-09 Geoffrey Keating <geoffk@apple.com>
15227
f01519dd
GK
15228 * config/rs6000/darwin-ldouble.c: Add big comment explaining
15229 exactly what is expected as a 'long double'.
15230 (_xlqadd): When a value to be returned is representable as a
15231 'double', just return it directly, do not construct it using a union.
15232 Also, correct final fixup.
15233 (_xlqmul): Likewise.
15234 (_xlqdiv): Likewise.
15235 * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
15236
7e4bd541
GK
15237 * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
15238
47069ecb
RH
152392004-01-09 Richard Henderson <rth@redhat.com>
15240
15241 * recog.c (constrain_operands): Validate mem operands.
15242
9813058e
JW
152432004-01-09 James E Wilson <wilson@specifixinc.com>
15244
15245 * gcc.c (init_spec): Remove -lunwind from shared case.
15246 * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
15247
b0fd7d27
SE
152482004-01-09 Steve Ellcey <sje@cup.hp.com>
15249
15250 * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
15251 * configure: Regenerate
15252
3897f229
JM
152532004-01-09 Joseph S. Myers <jsm@polyomino.org.uk>
15254
15255 PR c/11234
15256 * c-typeck.c (build_c_cast): If pedantic, warn for conversions
15257 between function and object pointers.
15258 (digest_init): When comparing a pointer to function type to the
15259 target type, only apply TREE_TYPE once to the pointer to function
15260 type.
15261 * except.c (for_each_eh_label_1): Treat data as a pointer to a
15262 function pointer rather than casting it to a function pointer.
15263 (for_each_eh_label): Update caller.
15264 * recog.h (struct insn_data): Use a struct or union for output.
15265 * genoutput.c (output_insn_data): Update.
15266 * final.c (get_insn_template): Update.
15267
0fab64a3
MM
152682004-01-09 Mark Mitchell <mark@codesourcery.com>
15269
15270 * expr.h (expand_expr): Make it a macro, not a function.
15271 (expand_expr_real): New function.
15272 * expr.c (store_expr): Adjust logic for deciding whether or not to
15273 copy the value returned by expand_expr.
15274 (expand_expr): Rename to ...
15275 (expand_expr_real): ... this. Add alt_rtl parameter. Adjust
15276 calls to language hooks.
15277 * c-common.h (c_expand_expr): Adjust prototype.
15278 * c-common.c (c_expand_expr): Add alt_rtl parameter.
15279 * langhooks-def.h (lhd_expand_expr): Change prototype.
15280 * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
15281 * langhooks.h (lang_hooks): Change type of expand_expr.
15282 * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
15283 (last_expr_alt_rtl): Likewise.
15284 (expand_expr_stmt_value): Set last_expr_alt_rtl.
15285 (clear_last_expr): Clear it.
15286 (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
15287 (expand_end_bindings): Save and restor last_expr_alt_rtl.
15288 * tree.def (RTL_EXPR): Give it an additional operand.
15289 * tree.h (RTL_EXPR_ALT_RTL): New macro.
9813058e 15290
df68f43b
KI
152912004-01-09 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
15292
15293 * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
900a35c8 15294 * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
df68f43b 15295
58ebda9c
KH
152962004-01-09 Kazu Hirata <kazu@cs.umass.edu>
15297
15298 PR target/13380.
15299 * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
15300 or (ne:SI (reg:CC 17) (const_int 0)).
15301 Be specific about modes wherever possible.
15302
81ad38a6
KH
153032004-01-09 Kazu Hirata <kazu@cs.umass.edu>
15304
15305 * config/m32r/m32r.c (m32r_expand_block_move): Call
15306 gen_movestrsi_internal with two more arguments.
15307 (m32r_output_block_move): Adjust operand numbers.
15308 Properly update the source and destination pointers.
15309 * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
15310 'r+'. Change the set detinations to match_operand.
15311
b816f339
KH
153122004-01-09 Kazu Hirata <kazu@cs.umass.edu>
15313
15314 * final.c (FIRST_INSN_ADDRESS): Remove.
15315 (shorten_branches): Don't use FIRST_INSN_ADDRESS.
15316 * system.h (FIRST_INSN_ADDRESS): Poison.
15317 * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
15318 * config/m32r/m32r-protos.h: Remove the prototype for
15319 m32r_first_insn_address.
15320 * config/m32r/m32r.c (m32r_first_insn_address): Remove.
15321 * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
15322 * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
15323
de99511b
B
153242004-01-09 J. Brobecker <brobecker@gnat.com>
15325
15326 * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
15327 we just created.
15328 (is_ada_subrange_type): DIEs for enumeration subtypes should be
15329 emitted as subrange types too.
15330 (subrange_type_die): Add handling of enumeration subtypes.
15331
90e4e4c5
RH
153322004-01-08 Richard Henderson <rth@redhat.com>
15333
15334 PR opt/12441
15335 Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
9813058e
JW
15336 * i386.c (aligned_operand): Be prepared for SUBREGed registers.
15337 (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
15338 (ix86_address_cost): Be prepared for SUBREGed registers.
15339 (legitimate_address_p): Accept SUBREGed registers.
90e4e4c5 15340
a6a5e4c9
KC
153412004-01-08 Kelley Cook <kcook@gcc.gnu.org>
15342
15343 * Makefile.in: Rename configure.in to configure.ac
15344 * doc/sourcebuild.texi: Likewise.
15345 * configure: Regenerate.
15346 * config.in: Regenerate.
15347
588f75d0
SH
153482004-01-08 Stuart Hastings <stuart@apple.com>
15349
15350 * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
15351
6242fcd8
JH
153522004-01-08 Jan Hubicka <jh@suse.cz>
15353
15354 * cgraphunit.c (cgraph_decide_inlining): Fix typo.
15355
a29077da
GK
153562004-01-08 Geoffrey Keating <geoffk@apple.com>
15357
ecb62ae7
GK
15358 * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
15359 (UNSPEC_FIX_TRUNC_TF): New constant.
15360 (movtf_internal): Make splitter active only when insn is active.
15361 (extenddftf2): Rewrite to properly load zero into low part.
15362 (extenddftf2_internal): New.
15363 (extendsftf2): Rewrite.
15364 (truncdftf2): Correct length.
15365 (floatditf2): Delete.
15366 (fix_trunc_helper): New.
15367 (fix_trunctfdi2): Use fix_trunc_helper.
15368 (fix_trunctfsi2): Likewise.fix_trunc
15369 (fix_trunctfsi2_internal): New.
15370
a29077da
GK
15371 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
15372 addresses are legitimate on Darwin even when flag_pic.
15373 (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
15374 non-offsettable addresses for loads of TFmode constants.
15375
cb1f9d03
KI
153762004-01-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
15377
15378 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
15379 variables in the appropriate bss section.
15380
7ddb6568
AM
153812004-01-09 Alan Modra <amodra@bigpond.net.au>
15382
15383 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
15384 target_flags has MASK_POWERPC64 when -m64.
15385 * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
15386 to 620, 630, power3, power4 and rs64a entries.
15387 * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
15388
effdb493
RS
153892004-01-08 Richard Sandiford <rsandifo@redhat.com>
15390
15391 * simplify-rtx.c (simplify_immed_subreg): Fix construction of
15392 floating-point constants.
15393
fbfd77b8
JB
153942004-01-08 J. Brobecker <brobecker@gnat.com>
15395
15396 * dwarf2out.c (subrange_type_die): Add context_die parameter.
15397 Create the subrange_type DIE using the given context DIE.
15398 (modified_type_die): Update call to subrange_type_die.
15399
154002004-01-08 Zack Weinberg <zack@codesourcery.com>
7ce27103
ZW
15401
15402 * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
15403 Add multiple-include guard.
15404
ce1f50b2
HP
154052004-01-08 Hartmut Penner <hpenner@de.ibm.com>
15406
7ce27103
ZW
15407 * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
15408 all vector constant loadable by vsplt*.
ce1f50b2
HP
15409 (output_vec_const_move): Likewise.
15410
bca63328
JM
154112004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
15412
15413 PR c/6024
15414 * c-typeck.c (comptypes): Only treat enumerated types in the same
15415 translation unit as compatible with each other when they are the
15416 same type.
15417 * doc/extend.texi: Update.
15418
85b58ca5
JM
154192004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
15420
15421 PR c/12165
15422 * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
15423 array type from the array element type.
15424
93c9d1ba
AM
154252004-01-07 Alan Modra <amodra@bigpond.net.au>
15426
15427 * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
15428 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
15429 * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
15430 (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
15431 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
15432
deae8de6
EC
154332004-01-06 Eric Christopher <echristo@redhat.com>
15434
15435 * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
15436 (DWARF2_DEBUGGING_INFO): Define.
15437 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
15438 * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
15439 * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
15440 for irix as.
15441 (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
15442 * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
15443 * config/mips/iris5gas.h: Ditto.
15444 (DBX_DEBUGGING_INFO): Remove.
15445 (DWARF2_DEBUGGING_INFO): Ditto.
15446 (MIPS_DEBUGGING_INFO): Ditto.
15447 (PREFERRED_DEBUGGING_TYPE): Ditto.
15448 * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
15449 (PREFERRED_DEBUGGING_TYPE): Ditto.
15450 (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
15451 * config/mips/elf64.h: Ditto.
15452
fed2b316
JH
154532004-01-06 Jan Hubicka <jh@suse.cz>
15454
15455 * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
15456 (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
15457
64d961b8
GK
154582004-01-06 Geoffrey Keating <geoffk@apple.com>
15459
084f5a35
GK
15460 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
15461 (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
15462 * config/rs6000/darwin-ldouble.c: New.
deae8de6 15463
550d1387
GK
15464 * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
15465 for constants.
15466 (constant_subword): Delete.
15467 * rtl.h (constant_subword): Delete prototype.
15468 (immed_double_const): Is not in varasm.c.
15469 * simplify-rtx.c (simplify_immed_subreg): New.
15470 (simplify_subreg): Use simplify_immed_subreg.
15471
0c90aa3c
GK
15472 * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
15473 than trying to generate RTL directly.
15474 (fix_trunctfsi2): Use expand_fix rather than trying to generate
15475 RTL directly.
15476
64d961b8
GK
15477 * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
15478
72b38561
DE
154792004-01-06 David Edelsohn <edelsohn@gnu.org>
15480
15481 * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
15482 function into a separate macro.
15483 (read_only_data_section): Add void argument.
15484 (private_data_section): Same.
15485 (read_only_private_data_section): Same.
15486 (toc_section): Same.
15487
9a609388
JH
154882004-01-06 Jan Hubicka <jh@suse.cz>
15489
0aaae060
JH
15490 * invoke.texi: Remove typo in last change.
15491
9a609388
JH
15492 PR target/10301
15493 * config.gcc: Accept opteron and athlon-64 as variants
15494 of k8.
15495 * i386.c (override_options): Likewise.
15496 * invoke.texi (i386 -mtune): Expand documentation.
15497
5d3cc252
KH
154982004-01-06 Kazu Hirata <kazu@cs.umass.edu>
15499
15500 * alias.c: Fix comment typos.
15501 * builtins.c: Likewise.
15502 * cfg.c: Likewise.
15503 * df.c: Likewise.
15504 * dominance.c: Likewise.
15505 * dwarf2out.c: Likewise.
15506 * emit-rtl.c: Likewise.
15507 * expr.c: Likewise.
15508 * final.c: Likewise.
15509 * fold-const.c: Likewise.
15510 * gcse.c: Likewise.
15511 * genattrtab.c: Likewise.
15512 * genrecog.c: Likewise.
15513 * gensupport.c: Likewise.
15514 * ggc-zone.c: Likewise.
15515 * integrate.c: Likewise.
15516 * local-alloc.c: Likewise.
15517 * loop.c: Likewise.
15518 * recog.c: Likewise.
15519 * regmove.c: Likewise.
15520 * reg-stack.c: Likewise.
15521 * reorg.c: Likewise.
15522 * rtlanal.c: Likewise.
15523 * rtl.h: Likewise.
15524 * sched-ebb.c: Likewise.
15525 * simplify-rtx.c: Likewise.
15526 * toplev.c: Likewise.
15527 * varasm.c: Likewise.
15528
95ea367d
KH
155292004-01-06 Kazu Hirata <kazu@cs.umass.edu>
15530
15531 * doc/install.texi: Fix typos.
15532 * doc/invoke.texi: Likewise.
15533 * doc/md.texi: Likewise.
15534
f26ef713
KI
155352004-01-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
15536
15537 * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
15538
bcf17554
JH
155392004-01-06 Jan Hubicka <jh@suse.cz>
15540
15541 * i386.c (init_cumulative_args): Add handling of MMX_REGPARM.
15542 (function_arg_advance): Do not pass aggregates in SSE; deal handling
15543 of MMX_REGPARM.
15544 (function_arg): Add new warnings about ABI changes; fix SSE_REGPARM;
15545 add MMX_REGPARM.
15546 * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
15547 (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
15548 (MMX_REGPARM_MAX): Similarly for -mmmx.
15549
24746a42
KH
155502004-01-05 Kazu Hirata <kazu@cs.umass.edu>
15551
15552 * config/sh/linux.h: Fix comment formatting.
15553 * config/sh/netbsd-elf.h: Likewise.
15554 * config/sh/sh.c: Likewise.
15555 * config/sh/sh.h: Likewise.
15556 * config/sh/vxworks.h: Likewise.
15557
f7e7e318
KH
155582004-01-05 Kazu Hirata <kazu@cs.umass.edu>
15559
15560 * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
15561 * toplev.c (output_file_directive): Don't use
15562 ASM_OUTPUT_MAIN_SOURCE_FILENAME.
15563
80a08664
SB
155642004-01-05 Steven Bosscher <s.bosscher@student.tudelft.nl>
15565
15566 * toplev.c: Fix broken checkin of 2003-12-30.
15567
02fef853 155682004-01-05 Daniel Berlin <dberlin@dberlin.org>
deae8de6 15569
02fef853
DB
15570 * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
15571 (USING_MMAP): We don't support non-mmap.
15572 (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
15573 large objects.
15574 (struct page_entry): Remove bytes_free.
15575 (struct page_table_chain): Remove.
15576 (struct globals): Remove page_table member.
15577 (loookup_page_table_entry): Function deleted.
15578 (set_page_table_entry): Ditto.
15579 (ggc_allocated_p): No longer need page table lookups.
15580 (ggc_marked_p): Ditto.
15581 (alloc_small_page): Don't care about bytes_free anymore.
15582 (alloc_large_page): Round up size.
15583 (ggc_alloc_zone_1): Mark large objects as such, and calculate
deae8de6 15584 their size the new way.
02fef853
DB
15585 Remove page table lookups and setting.
15586 (ggc_get_size): Calculate large object size the new way.
15587 (sweep_pages): Redo to account for fact that we no longer have
15588 bytes_free.
15589 (ggc_collect): No longer need to reincrement bytes_free.
15590 (ggc_pch_alloc_object): Handle new large objects properly.
15591 (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
15592
60b799fd
KH
155932004-01-05 Kazu Hirata <kazu@cs.umass.edu>
15594
15595 * doc/invoke.texi: Remove a page break.
15596
908c8c7e
KH
155972004-01-05 Kazu Hirata <kazu@cs.umass.edu>
15598
15599 * config/avr/avr.c (avr_output_function_prologue): Remove an
15600 extra pair of curly braces.
15601
8596d0a1
KH
156022004-01-05 Kazu Hirata <kazu@cs.umass.edu>
15603
15604 * config/mn10300/mn10300.c: Fix comment formatting.
15605 * config/mn10300/mn10300.h: Likewise.
15606
1e2d4dc1
RK
156072004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
15608
15609 * tree.h: Update documentation on nothrow_flag.
15610 * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
15611 types.
15612
b6e69d94
KH
156132004-01-05 Kazu Hirata <kazu@cs.umass.edu>
15614
15615 * doc/invoke.texi: Remove traces of dead ports.
15616
1cf959cb
RS
156172004-01-05 Richard Sandiford <rsandifo@redhat.com>
15618
15619 * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
15620 option.
15621
f6149877
RS
156222004-01-05 Richard Sandiford <rsandifo@redhat.com>
15623
15624 PR target/12945
15625 * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
b56c0023 15626 counter labels.
f6149877
RS
15627 * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
15628 (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
15629 string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check
15630 the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
15631 (mips_symbol_insns): Don't trust the local/global classification.
15632 (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
15633 (override_options): Make -mabicalls -fno-unit-at-a-time imply
15634 -mno-explicit-relocs.
15635 (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
15636 between local and global symbols.
15637
a6008bd8
RS
156382004-01-05 Richard Sandiford <rsandifo@redhat.com>
15639
15640 * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
15641 (mips_preferred_reload_class): Declare.
15642 * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
15643 (EXTRA_CONSTRAINT): Update accordingly.
15644 (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
15645 * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
15646 (mips_preferred_reload_class): New function. Prefer LEA_REGS if
15647 mips_dangerous_for_la25_p.
15648 (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
15649 if mips_dangerous_for_la25_p.
15650
d7b3c085
BI
156512004-01-05 Bernardo Innocenti <bernie@develer.com>
15652
15653 * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
deae8de6 15654 warning.
d7b3c085 15655
ca9bc441
NN
156562004-01-04 Nathanael Nerode <neroden@gcc.gnu.org>
15657
15658 * configure.ac: Use AC_PROG_CPP_WERROR.
15659 * configure: Regenerate.
15660
016d7f3e
ZW
156612004-01-04 Zack Weinberg <zack@codesourcery.com>
15662
15663 * .cvsignore: Add autom4te.cache.
15664
5a4b3afd
RS
156652004-01-04 Richard Sandiford <rsandifo@redhat.com>
15666
15667 * doc/invoke.texi: Revamp documentation of MIPS options. Remove
15668 -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
15669 -m4650, -mfix7000 and -(m)no-crt0. Put endianness options first,
15670 then architecture options, then ABI options. General rewording.
15671
928a5ba9
JM
156722004-01-04 Joseph S. Myers <jsm@polyomino.org.uk>
15673
15674 PR c/3414
15675 * doc/extend.texi: Clarify definition of malloc attribute.
15676
dc0bfe6a
JH
156772004-01-04 Jan Hubicka <jh@suse.cz>
15678
15679 * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
15680 * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
15681 * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
15682 (cgraph_inline_p): Add extra argument reason.
15683 * cgraphunit.c: Minor formating fixes.
15684 cgraph_first_inlined_callee): New functions.
15685 (record_call_1): Record builtins too.
15686 (cgraph_analyze_function): Update inline_failed messages.
15687 (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
15688 cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
15689 (cgraph_check_inline_limits): Likewise; Add argument reason.
15690 (cgraph_set_inline_failed): New static function.
15691 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
15692 reasons.
15693 (cgraph_inline_p): Add new argument reason.
15694 * tree-inline.c (expand_call_inline): Update warning.
15695
ba479fd2
NN
156962004-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
15697
914c5af7
NN
15698 * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
15699 with modern equivalents.
15700 * configure: Regenerate.
15701
016d7f3e
ZW
15702 * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
15703 * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
15704 * configure: Regenerate.
78c9cb99 15705
d44f1a00
NN
15706 * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
15707
ba479fd2
NN
15708 * configure.in: Rename to configure.ac.
15709 * configure.ac: Renamed from configure.in; make minimum necessary
15710 changes for autoconf 2.5x.
15711 * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
15712 * configure: Regenerate with autoconf 2.57.
15713
031a26c5
KH
157142004-01-03 Kazu Hirata <kazu@cs.umass.edu>
15715
15716 * config/mips/linux.h: Fix comment formatting.
15717 * config/mips/mips.c: Likewise.
15718 * config/mips/mips.h: Likewise.
15719 * config/mips/mips.md: Likewise.
15720 * config/mips/netbsd.h: Likewise.
15721 * config/mips/windiss.h: Likewise.
15722
b87cfcfb
RH
157232004-01-02 Richard Henderson <rth@redhat.com>
15724
15725 * config/i386/i386.md (fp constant pool splitter): Reorg suppression
15726 for sse and 387; add suppression for mmx.
15727
36579663
AP
157282004-01-02 Andrew Pinski <pinskia@physics.uc.edu>
15729
9d85830f
AP
15730 * loop.c (loop_optimize): Free all loops_info's mems.
15731
016d7f3e 15732 * c-typeck.c (finish_init): Free spelling_base before
36579663 15733 setting it again.
016d7f3e 15734
36579663
AP
15735 * cfgloop.c (flow_loops_find): Always free the sbitmap
15736 headers.
15737
15738 * predict.c (estimate_probability): Free bbs after being
15739 done with it.
15740
3864b6fe
KH
157412004-01-02 Kazu Hirata <kazu@cs.umass.edu>
15742
15743 * config/mn10300/mn10300.h (PREDICATE_CODES): Add
15744 const_8bit_operand and call_address_operand.
15745
8b6bd5d7
JH
157462004-01-02 Jan Hubicka <jh@suse.cz>
15747
15748 * cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls
15749 when there is nothing to inline but warnings are requested.
15750 (cgraph_decide_inlining): Fix memory leak.
15751
9b9bd3b2
JH
157522004-01-02 Jan Hubicka <jh@suse.cz>
15753
15754 * expr.c (store_constructor): Fix pasto in previous patch.
15755
43f3a59d
KH
157562004-01-02 Kazu Hirata <kazu@cs.umass.edu>
15757
15758 * config/i386/cygming.h: Fix comment formatting.
15759 * config/i386/djgpp.h: Likewise.
15760 * config/i386/gthr-win32.c: Likewise.
15761 * config/i386/i386-interix.h: Likewise.
15762 * config/i386/i386.c: Likewise.
15763 * config/i386/i386.h: Likewise.
15764 * config/i386/openbsd.h: Likewise.
15765 * config/i386/winnt.c: Likewise.
15766 * config/i386/xm-mingw32.h: Likewise.
15767
daef8bbd
JM
157682004-01-02 Joseph S. Myers <jsm@polyomino.org.uk>
15769
15770 * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
15771 copyright and last modification dates.
15772
7e081a0c
AJ
157732004-01-02 Andreas Jaeger <aj@suse.de>, Gerald Pfeifer <gp@suse.de>
15774
15775 * doc/install.texi (Specific): Mention x86_64.
15776
ac3f5df7
HPN
157772004-01-01 Hans-Peter Nilsson <hp@bitrange.com>
15778
15779 * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
15780 Call force_operand on plus_constant result.
15781
997404de
JH
157822004-01-01 Jan Hubicka <jh@suse.cz>
15783
15784 * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
15785 * expr.c (store_constructor): Use vec_init pattern.
15786 * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
15787 * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
15788 (vec_set_optab, vec_extract_optab, vec_init_optab): New.
15789 * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
15790 New patterns.
15791 (sse2_unpc?pd): Fix pattern.
15792 (sse2_movlpd): Kill.
15793 (sse2_movsd): Deal with movlpd too.
15794 * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
15795 (ix86_expand_vector_init): New.
15796 * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
15797 * md.texi (vec_set, vec_extract): Document
15798
b684a3df
JH
157992003-12-31 Jan Hubicka <jh@suse.cz>
15800
15801 PR opt/13473
15802 * recog.c (validate_replace_rtx_1): Take care for RTL sharing inside
15803 ASM input operands
15804
15805 PR opt/12617
15806 * toplev.c (dump_file_index): Reorder ce3 and bbro.
15807 (dump_file): Likewise.
15808 (rest_of_compilation): Likewise.
15809
15810 PR debug/13367
15811 * cgraph.c (cgraph_function_possibly_inlined): Even with
15812 flag_really_no_inline we inline always_inline functions.
15813 * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
15814 for non-always_inline functions when there is flag_really_no_inline.
15815 (cgraph_decide_inlining): Limit work done when not inlining.
15816 (cgraph_decide_inlining_incrementally): Likewise.
15817 (cgraph_optimize_function): Check whether something got inlined.
15818 * c-objc-common.c (c_disregard_inline_limits): Do not always inline
15819 extern inline functions when not inlining.
15820
15821 * opts.c (decode_options): Disable crossjumping at -O1
15822 * invoke.texi (-O1): Document change.
a55f4481 15823
cd14f58c 15824See ChangeLog.10 for earlier changes.
This page took 2.28845 seconds and 5 git commands to generate.