e74d3c7ff6742cd4ee72cbd3c089d376fef8c8e2
[gcc.git] / gcc / ChangeLog
1 2000-09-19 Richard Henderson <rth@cygnus.com>
2
3 * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
4 if the tree has side effects.
5 (warn_if_unused_value): Do not warn about void constructs.
6
7 * c-decl.c (poplevel): Invoke warn_about_unused_variables.
8
9 * unroll.c (copy_loop_body): Update LABEL_NUSES before
10 calling invert_jump.
11
12 2000-09-18 Geoff Keating <geoffk@cygnus.com>
13
14 * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
15 into anything.
16
17 2000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18
19 * Makefile.in (c-common.o): Depend on diagnostic.h.
20
21 * c-common.c: Include diagnostic.h.
22 (tfaff): Delete.
23 (status_warning): New function.
24 (check_format_info, maybe_read_dollar_number, check_format_types,
25 finish_dollar_format_checking, check_function_format): Accept a
26 `status' parameter. All callers changed.
27
28 * c-common.h (check_function_format): Accept a `status' parameter.
29
30 * c-typeck.c: Update call to `check_function_format'.
31
32 2000-09-18 Richard Henderson <rth@cygnus.com>
33
34 * c-decl.c (c_expand_body): Call mark_varargs before
35 expand_function_start.
36
37 2000-09-18 Geoff Keating <geoffk@cygnus.com>
38
39 * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
40 * config/rs6000/eabi-ci.asm: Likewise.
41
42 2000-09-18 Richard Henderson <rth@cygnus.com>
43
44 * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
45 for BImode.
46
47 2000-09-18 Jim Wilson <wilson@cygnus.com>
48
49 * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
50 before passing it to fold_rtx_mult_add.
51
52 * unroll.c (final_giv_value): Pass increment through
53 extend_value_for_giv before passing it to emit_iv_add_mult.
54
55 * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
56 paradoxical subreg, then directly substitute the replacement and
57 return.
58
59 Mon 18-Sep-2000 22:12:44 BST Neil Booth <NeilB@earthling.net>
60
61 * cpp.texi: Update documentation, including some clarifications,
62 the treatment of various newline combinations, and space between
63 backslash and newline.
64
65 Mon Sep 18 21:00:47 2000 J"orn Rennecke <amylaar@redhat.co.uk>
66
67 * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
68 Replace ASM_OUTPUT_LABELREF with assemble_name.
69
70 Mon Sep 18 20:26:50 2000 J"orn Rennecke <amylaar@redhat.co.uk>
71
72 * sh.c (addsubcosts): CONST is not cheap.
73 (find_barrier): For Sh1, take alignment after jumps into account.
74
75 2000-09-15 Andrew Haley <aph@redhat.com>
76
77 * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
78 remove all SETs of SUBREGs of hard registers.
79 * function.c (purge_hard_subreg_sets): New function.
80 (purge_single_hard_subreg_set): New function.
81 * rtl.h: (purge_hard_subreg_sets): New function.
82
83 2000-09-18 Richard Henderson <rth@cygnus.com>
84
85 * config/ia64/ia64-protos.h: Update.
86 * config/ia64/ia64.c (signed_inequality_operator): New.
87 (ia64_expand_compare): New.
88 (ia64_register_move_cost): Handle PR_REGS moves.
89 (ia64_secondary_reload_class): Require a GR when moving to a PR.
90 (struct reg_write_state): Add written_by_and/or.
91 (struct reg_flags): Add is_and/or.
92 (rws_update): Set them.
93 (rws_access_regno): Test them to allow parallel comparisons.
94 (rtx_needs_barrier): Recognize parallel comparisons.
95 (emit_insn_group_barriers): Set prev_insn after a call stop bit.
96 Call recog_memoized; ignore pred_rel_mutex.
97 (emit_predicate_relation_info): Don't call find_basic_blocks here.
98 (ia64_reorg): Do it here instead.
99 * config/ia64/ia64.h: s/CCmode/BImode/g
100 (MODES_TIEABLE_P): Don't tie BImode.
101 (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
102 (CONST_COSTS): Pick sensible values for CONST_INT based on context.
103 (RTX_COSTS): Make multiply 4 insns.
104 (MEMORY_MOVE_COST): New.
105 (PREDICATE_CODES): Update.
106 * config/ia64/ia64.md: s/CCmode/BImode/g
107 (movcci, movbi): New.
108 (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
109 (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
110 (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
111 (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
112 (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
113 (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
114 (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
115 (mulsi, muldi): Use xmpy not xma.
116 (cmpbi): New.
117 (movcc, movcc_internal): Remove.
118 (branch expanders): Use ia64_expand_compare.
119 (setcc expanders): Likewise.
120 (cmov insns): Use move_operand and ia64_move_ok.
121 (pred_rel_mutex): Use unspec not unspec_volatile. Prevent the
122 scheduler from moving it past a use.
123 * config/ia64/build.hacks: Remove.
124
125 Mon 18-Sep-2000 19:21:35 BST Neil Booth <NeilB@earthling.net>
126
127 * cpphash.h (HASHSTEP): Take character rather than pointer
128 to character.
129 (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
130
131 * cpphash.c (cpp_loookup): Update for new HASHSTEP.
132
133 * cpplex.c (auto_expand_name_space, trigraph_replace,
134 backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
135 IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
136 BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
137 KNOWN_DIRECTIVE): Delete.
138
139 (handle_newline, check_long_token, skip_escaped_newlines,
140 unterminated): New functions.
141 (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
142
143 (parse_identifier): Was parse_name, new implementation.
144 (skip_line_comment, skip_block_comment, skip_whitespace,
145 parse_number, parse_string, trigraph_ok, save_comment,
146 adjust_column, _cpp_get_line): New implementations.
147
148 (lex_token): New function. Lexes a token at a time, looking
149 forwards. Contains most of the guts of the old lex_line.
150 (lex_line): New implementation, using lex_token to obtain
151 individual tokens.
152 (cpp_scan_buffer): Use the token's line, not the list's line.
153
154 * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
155 New implementations.
156 (do_assert): Don't bother setting the answer's list's line.
157 (cpp_push_buffer): Initialise new pfile and read_ahead members
158 of struct cpp_buffer.
159
160 * cpplib.h (cppchar_t): New typedef.
161 (struct cpp_buffer): read_ahead, pfile and col_adjust are
162 new members.
163 (struct lexer_state): New structure that determines the state
164 and behaviour of the lexer.
165 (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
166 (struct cpp_reader): New member "state". Rename
167 multiline_string_line and multiline_string_column. Delete
168 col_adjust, in_lex_line members.
169 (CPP_BUF_COLUMN): Update.
170
171 2000-09-18 Richard Henderson <rth@cygnus.com>
172
173 * combine.c (simplify_comparison): Shift a NOT out of a single
174 bit test.
175
176 * combine.c (if_then_else_cond): Canonicalize BImode true to
177 STORE_FLAG_VALUE.
178 * explow.c (trunc_int_for_mode): Likewise.
179
180 * combine.c (combine_simplify_rtx): Use gen_unary to distribute
181 the NOT for De Morgan's rule.
182 * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
183 of a comparison to the reverse comparison.
184
185 * combine.c (try_combine): Allow split to create a single insn.
186
187 * machmode.def: Add BImode. Add a column for bitsize.
188 * machmode.h (DEF_MACHMODE): Adjust for extra column.
189 (GET_MODE_BITSIZE): Use it.
190 * rtl.c (DEF_MACHMODE): Adjust for extra column.
191 (mode_bitsize): New.
192 (mode_mask_array): Use bitsize.
193 * combine.c (combine_simplify_rtx): Require inner and outer
194 modes to match on nonzero_bits optimizations.
195
196 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
197
198 * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
199 its entry in spill_reg_store.
200 * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
201 * sh.c (reg_no_subreg_operand): New function.
202 * sh-protos.h (reg_no_subreg_operand): Declare it.
203 * sh.h (PREDICATE_CODES): Add it.
204 * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
205 input operand that needs to be in fpul.
206 (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
207 * sh.c (find_barrier): Take into account that machine_dependent_reorg
208 might add new insns.
209
210 2000-09-18 Alexandre Oliva <aoliva@redhat.com>
211
212 * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
213 MAYBE_DEAD.
214 (sh_expand_epilogue): Take the PIC register into account when
215 computing the frame size.
216
217 * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
218 * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
219 LABEL_REFs with a PIC-safe unspec.
220
221 2000-09-18 Will Cohen <wcohen@redhat.com>
222
223 * extend.texi (Zero Length): State that static initializers for
224 zero-length arrays are not allowed.
225
226 * c-typeck.c (process_init_element): Flag initializers for zero
227 length arrays.
228
229 * tree.c (integer_all_onesp): Ignore TREE_INT_CST_HIGH if prec is
230 exactly HOST_BITS_PERWIDE_INT.
231
232 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
233
234 * c-common.c (check_format_info): Properly save the argument
235 number and parameter for $ operand number formats in case width
236 and precision arguments are also used. Allow printf width and
237 precision arguments to have operand numbers even if none was
238 specified for the main format, since this is OK for %*.*m. Only
239 object to missing $ operand number if the format used requires an
240 argument.
241
242 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
243
244 * c-common.c (format_char_info): Add 'W' flag to comment.
245 (print_char_table, scan_char_table): Use it.
246 (check_format_info): Use the 'W' flag to determine whether a
247 format argument is written into.
248
249 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
250
251 * c-common.c (check_format_types): Reorganise and clean up,
252 checking earlier for ERROR_MARKs and making cur_type into its
253 TYPE_MAIN_VARIANT where convenient.
254
255 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
256
257 * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
258
259 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
260
261 * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
262
263 * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
264 * i386.c (struct builtin_description): New.
265 (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
266 (mmx_reg_operand): Declare MODE arg as unused.
267 (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
268 ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
269 ix86_expand_binop_builtin, ix86_expand_store_builtin,
270 ix86_init_builtins, ix86_expand_builtin): New functions.
271 * i386.h (ix86_builtins): New enumeration.
272 (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
273 * i386.md (attr length_immediate): 0 for mmx/sse types.
274 (attr prefix_0f): 1 for mmx/sse types.
275 (setcc_2): Remove "*" so we get gen_setcc_2.
276 (emms): Account for changed register numbering. Set "memory" attr
277 to unknown.
278 (sfence): Set "memory" attr to unknown.
279
280 2000-09-18 Andreas Jaeger <aj@suse.de>
281
282 * configure.in: Define _GNU_SOURCE only when using the GNU C
283 Library.
284 * configure: Regenerated.
285 * config.in: Regenerated.
286
287 2000-09-17 Mark Mitchell <mark@codesourcery.com>
288
289 * cppinit.c (cpp_init): Don't use ANSI prototypes.
290 * flow.c (flow_dump_loop): Likewise.
291 (flow_loops_dump): Likewise.
292
293 * c-typeck.c (c_start_case): Fix typo.
294
295 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
296
297 * c-decl.c (grokdeclarator): Don't give a warning about defaulting
298 to int for plain complex which defaults to complex double. Do
299 warn about defaulting to complex double if pedantic. Warn about
300 complex integer types if pedantic. Warn about complex types if
301 pedantic and not in C99 mode.
302 * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
303 for complex conjugation.
304
305 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
306
307 * contrib.texi: Update my entry.
308
309 Sun Sep 17 18:48:32 2000 Denis Chertykov <denisc@overta.ru>
310
311 * config/avr/avr.md (mcu_enhanced): New attribute.
312 (mcu_mega): Likewise.
313 (extendhisi2): Use mcu_enhanced.
314 (zero_extendhisi2): Likewise.
315 (call_insn): Use mcu_enhanced and mcu_mega.
316 (call_value_insn): Likewise.
317 (*sbrx_branch): Use mcu_mega.
318 (*sbrx_and_branchsi): Likewise.
319 (*sbrx_and_branchhi): Likewise.
320 (*tablejump_lib): Likewise.
321
322 Sun Sep 17 10:46:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
323
324 * alias.c (true_dependence): Allow non-unchanging read to conflict
325 with unchanging write.
326
327 * expr.c (store_constructor_field): Accept ALIAS_SET arg.
328 (store_constructor): Pass alias_set to it.
329
330 * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
331 TYPE_MAIN_VARIANT of ERROR_MARK.
332 * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
333
334 * simplify-rtx.c (simplify_unary_operation): Add cases
335 FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
336
337 2000-09-17 Bernd Schmidt <bernds@redhat.co.uk>
338
339 * expr.h (emit_library_call, emit_library_call_value): Delete
340 declarations.
341 * rtl.h (enum libcall_type): New.
342 (emit_library_call, emit_library_call_value): Change fn_type arg to
343 be of type enum libcall_type.
344 * calls.c: Likewise for the function definitions. Several callers
345 throughout changed to use the new enumeration appropriately.
346 (emit_library_call_value_1): Likewise. Put back code to make libcall
347 blocks of equal form, but only use it for the two new higher
348 enumeration values.
349
350 2000-09-16 Mark Mitchell <mark@codesourcery.com>
351
352 Convert the C front-end to use function-at-a-time mode.
353 * c-common.h: Include splay-tree.h.
354 (C_DECLARED_LABEL_FLAG): New macro.
355 (struct language_function): Add x_scope_stmt_stack and
356 x_function_name_declared_p.
357 (RECHAIN_STMTS): Move definition.
358 (lang_statment_code_p): Likewise.
359 (lang_expand_stmt): Likewise.
360 (lang_expand_decl_stmt): New variable.
361 (lang_expand_function_end): Likewise.
362 (current_scope_stmt_stack): New function.
363 (add_decl_stmt): Likewise.
364 (add_scope_stmt): Likewise.
365 (mark_stmt_tree): Likewise.
366 (struct c_lang_decl): New structure.
367 (DECL_SAVED_TREE): Define.
368 (c_mark_lang_decl): New function.
369 (c_expand_start_cond): Change prototype.
370 (c_finish_then): New function.
371 (c_finish_else): Likewise.
372 (current_function_name_declared): Remove.
373 (set_current_function_name_declared): Likewise.
374 (mark_c_language_function): Declare.
375 (case_compare): Likewise.
376 (c_add_case_label): Likewise.
377 (c_expand_expr): Likewise.
378 (c_safe_from_p): Likewise.
379 * c-common.c (lang_expand_function_end): New variable.
380 (struct if_elt): Add if_stmt.
381 (c_expand_start_cond): Add the if-statement to the statement-tree,
382 rather than generating RTL.
383 (c_finish_then): New function.
384 (c_expand_start_else): Don't generate RTL.
385 (c_finish_else): New function.
386 (c_expand_expr_stmt): Don't generate RTL.
387 (statement_code_p): Add SCOPE_STMT.
388 (case_compare): New function.
389 (c_add_case_label): Likewise.
390 (mark_stmt_tree): Likewise.
391 (c_mark_lang_decl): Likewise.
392 (mark_c_language_function): Likewise.
393 (c_expand_expr): Likewise.
394 (c_safe_from_p): Likewise.
395 * c-decl.c (c_stmt_tree): New variable
396 (c_scope_stmt_stack): Likewise.
397 (c_function_name_declared_p): Likewise.
398 (lang_expand_expr_stmt): Remove.
399 (poplevel): Don't call output_inline_function for nested
400 functions.
401 (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
402 `extern' function.
403 (redeclaration_error_message): Change means of computing whether
404 or not a function is nested.
405 (lookup_label): Don't call label_rtx.
406 (init_decl_processing): Add more GC roots.
407 (start_decl): Add DECL_STMTs to the statement-tree, rather than
408 calling rest_of_decl_compilation.
409 (finish_decl): Don't call expand_decl.
410 (store_parm_decls): Begin the statement-tree, but don't generate
411 RTL.
412 (finish_function): Tie off the statement-tree. Call c_expand_body
413 if appropriate.
414 (c_expand_body): New function.
415 (push_c_function_context): Save more information.
416 (pop_c_function_contxt): Likewise.
417 (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
418 (lang_mark_tree): Mark it.
419 (current_stmt_tree): Adjust.
420 (current_scope_stmt_stack): New function.
421 (do_case): Remove.
422 (set_current_name_declared): Likewise.
423 (c_begin_compound_stmt): Define.
424 (c_expand_decl_stmt): Likewise.
425 * c-lang.c: Include rtl.h and expr.h.
426 (lang_init): Set more language-specific hooks.
427 * c-lex.c: Include expr.h.
428 * c-parse.in: Changes throughout to add statements to the
429 statement-tree, rather than generating RTL after every statement.
430 * c-semantics.c (lang_expand_decl_stmt): Define.
431 (add_decl_stmt): New function.
432 (add_scope_stmt): Likewise.
433 (finish_stmt_tree): Tweak.
434 (genrtl_expr_stmt): Likewise.
435 (genrtl_decl_stmt): Handle local labels, and call
436 lang_expand_decl_stmt if required.
437 (genrtl_for_stmt): Fix line-number handling.
438 (genrtl_case_label): Handle cleanups.
439 (genrtl_asm_stmt): Don't call combine_strings.
440 (genrtl_compound_stmt): Simplify.
441 (expand_stmt): Handle SCOPE_STMTs.
442 * c-tree.h (struct lang_decl): New structure.
443 (C_DECLARED_LABEL_FLAG): Remove.
444 (c_begin_compound_stmt): Declare.
445 (c_expand_decl_stmt): Likewise.
446 (c_expand_start_case): Rename to c_start_case.
447 (c_finish_case): New function.
448 * c-typeck.c (start_init): Tweak setting of
449 constructor_incremental.
450 (c_expand_asm_operands): Tweak error-handling. Add to the
451 statement-tree.
452 (c_expand_return): Add to the statement-tree.
453 (c_expand_start_case): Rename to ...
454 (c_start_case): ... this.
455 (struct c_switch): New type.
456 (switch_stack): New variable.
457 (do_case): Simplify.
458 (c_finish_case): New function.
459 * dependence.c: Include expr.h.
460 (enum dependence_type): Change spelling of enumerals.
461 (check_node_dependence): Adjust.
462 * expr.h (lang_safe_from_p): Declare.
463 (safe_from_p): Likewise.
464 * expr.c (lang_safe_from_p): New variable.
465 (safe_from_p): Give it external linkage. Use lang_safe_from_p.
466 * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
467 * toplev.c (rest_of_decl_compilation): Robustify.
468 * tree.c (contains_placeholder_p): Likewise.
469 * Makefile.in: Update dependencies.
470 * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
471 * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
472 (objc_expand_function_end): New function.
473 (finish_method_def): Use it.
474 (init_objc): Initialize more language-specific hooks.
475 * objc/Make-lang.in: Update dependencies.
476
477 2000-09-16 Geoffrey Keating <geoffk@cygnus.com>
478
479 * configure.in: Define macros that affect features before
480 testing for features. Don't define _XOPEN_SOURCE.
481 * configure: Regenerated.
482 * config.in: Regenerated.
483
484 Sat Sep 16 19:42:50 EDT 2000 John Wehle (john@feith.com)
485
486 * rtlanal.c (rtx_varies_p): Volatile asms vary.
487 (rtx_unstable_p): Restructure code. Volatile asms
488 are unstable.
489
490 Sat Sep 16 14:35:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
491
492 * function.h (no_debugging_symbols): New field.
493 * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
494 Initialize no_debugging_symbols.
495 (output_inline_function): Save and restore write_symbols and set from
496 no_debugging_symbols.
497 * toplev.c (rest_of_compilation): Call save_for_inline.
498 * tree.h: Update comment.
499
500 * stor-layout.c (place_field): Don't do anything if field or
501 its type are ERROR_MARK.
502
503 Sat Sep 16 19:14:00 2000 Laurynas Biveinis <lauras@softhome.net>
504
505 * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
506 (read_include_file): Ensure inc->mmaped is initialized.
507
508 2000-09-16 Richard Henderson <rth@cygnus.com>
509
510 * cppiles.c (purge_cache): Use PTR not caddr_t.
511
512 2000-09-16 Hans-Peter Nilsson <hp@axis.com>
513
514 * gcc.c: In description for %{<S}, say the option removed is -S.
515 * invoke.texi (Spec Files): Ditto.
516
517 2000-09-16 Andreas Jaeger <aj@suse.de>
518
519 * configure.in: Always define _GNU_SOURCE to make interfaces
520 visible that were hidden by only defining _GNU_SOURCE.
521 * configure: Regenerated.
522
523 Sat 16-Sep-2000 08:13:45 BST Neil Booth <NeilB@earthling.net>
524
525 * cpplex.c (push_macro_context): Set an argument's level after
526 calling parse_args. We could loop infinitely otherwise.
527
528 2000-09-15 Tom Tromey <tromey@cygnus.com>
529
530 * configure, config.in: Rebuilt.
531 * configure.in: Check for iconv.h. Define _XOPEN_SOURCE.
532
533 2000-09-15 Greg McGary <greg@mcgary.org>
534
535 * cppmacro.c (check_trad_stringification): Check token
536 text pointers against limit before dereferencing.
537
538 2000-09-15 Joseph S. Myers <jsm28@cam.ac.uk>
539
540 * c-common.c (format_wanted_type): New structure.
541 (check_format_types): New function.
542 (check_format_info): Pass all checking of types of format
543 arguments, including width and precision arguments, to this new
544 function.
545
546 2000-09-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
547
548 * BUGS: Remove file.
549
550 2000-09-15 Jakub Jelinek <jakub@redhat.com>
551
552 * config/alpha/alpha.c (override_options): ev6 cache latencies
553 from Richard Henderson. Don't allow -mmemory-latency=L0.
554
555 * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
556 (TARGET_OPTIONS): Add tune=.
557 (alpha_tune_string): Declare.
558 * config/alpha/alpha.c (override_options): Add cpu_table.
559 Use alpha_cpu_string first to set both alpha_cpu and target_flags
560 and then alpha_tune_string to set alpha_cpu only.
561 Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
562 * config/alpha/elf.h (ASM_FILE_START): Likewise.
563 * config/alpha/osf.h (ASM_FILE_START): Likewise.
564 * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
565
566 Fri Sep 15 19:45:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
567
568 * i386-protos.h (no_comparison_operator, uno_comparison_operator):
569 Remove.
570 (ix86_comparison_operator, ix86_cc_mode): Declare
571 * i386.h (CCGC, CCGCO): New modes.
572 (SELECT_CC_MODE): Move offline to ....
573 * i386.c (ix86_cc_mode): .... here; use new modes.
574 (ix86_comparison_operator): New.
575 (fcmov_comparison_operator): Ensure proper mode.
576 (put_condition_mode): More sanity checking.
577 (ix86_match_ccmode): Handle new modes.
578 (ix86_expand_fp_compare): GEU requires CCmode.
579 (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
580 doing it by hand.
581 * i386.md (cmp?i_ccz_1): Remove
582 (cmp?i_ccno_1): Use ix86_match_ccmode.
583 (cmp?i_minus_1): New.
584 (cmpsi_1): New expander.
585 (cmpqi_ext_1): Use match_ccmode
586 (cmpqi_ext_3): New expander.
587 (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
588 (cmpqi_ext_4): Use match_ccmode.
589 (add?i_?): Use match_ccmode.
590 (add?i_6): New.
591 (test?i_ccz_1): Remove
592 (test?i_1): New.
593 (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
594 (testqi_ext_0): Use ix86_match_ccmode.
595 (*xorqi_cc_ext_1): Use ix86_match_ccmode.
596 (xorqi_cc_ext_1): New expander.
597 (shift patterns): Use CCGOCmode for all shifts except for sar.
598 (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
599 (setcc_3, jcc_3, miv?icc_c): Remove.
600
601 2000-09-15 Will Cohen <wcohen@redhat.com>
602
603 * dwarf2out.c (add_const_value_attribute): Changed array into a
604 xmalloced object, so it exists after function exit.
605 (free_AT): Added case for dw_val_class_float to free allocated
606 memory.
607
608 2000-09-15 Kazu Hirata <kazu@hxi.com>
609
610 * config/i386/i386.md: Fix a comment typo.
611 * gcc.c: Fix formatting.
612
613 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
614
615 * optabs.c (emit_libcall_block): If target is a user variable,
616 copy to a temporary first.
617 * expr.c (convert_move): When generating a libcall, make a libcall
618 block.
619 * calls.c (emit_library_call_value_1): Don't create a libcall
620 sequence here; our caller will in most cases do it.
621
622 * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
623 MACH into FPUL.
624 (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
625 * sh.md (reload_outsf): Generate recognizable patterns for
626 TARGET_SH3E.
627 (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
628 fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
629 fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
630 truncdfsf2_i4): Change not to use explicit references to fpul.
631 (floatsisf2_ie): Remove USE of fpscr.
632 (floatsisf2): Change default expansion to match this.
633 (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
634 unused patterns.
635
636 2000-09-15 Richard Henderson <rth@cygnus.com>
637
638 * expmed.c (store_bit_field): Consider naturally aligned
639 memory for direct reference.
640
641 2000-09-15 Richard Henderson <rth@cygnus.com>
642
643 * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
644 AND addresses into alias set 0.
645 (alpha_expand_unaligned_store): Likewise.
646 (alpha_expand_unaligned_load_words): Likewise.
647 (alpha_expand_unaligned_store_words): Likewise.
648
649 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
650
651 * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
652 * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
653 is defined.
654 * config/mips/mips.c (mips_va_arg): Args passed by reference have a
655 rsize of UNITS_PER_WORD.
656
657 Fri 15-Sep-2000 06:49:07 BST Neil Booth <NeilB@earthling.net>
658
659 * cpplex.c (ON_REST_ARG): Correct the test.
660 (maybe_paste_with_next): Duplicate a token that fail pasting,
661 and clear its PASTE_LEFT flag, so that nested pasting attempts
662 do not occur.
663
664 2000-09-14 Richard Henderson <rth@cygnus.com>
665
666 * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
667 * cse.c (rtx_cost): Likewise.
668 * optabls.c (expand_binop): Likewise.
669 (expand_twoval_binop, prepare_cmp_insn): Likewise.
670 * regclass.c (copy_cost): Likewise.
671 * reload1.c (reload_cse_move2add): Likewise.
672
673 2000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
674
675 * c-parse.in (reswords): Add _Complex.
676
677 2000-09-14 J. David Anglin <dave@hiauly1.hia.nrc.ca>
678
679 * gcc.1: Delete documentation for -undef preprocessor option.
680
681 2000-09-14 Alexandre Oliva <aoliva@redhat.com>
682
683 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
684 STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
685 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
686 Remove undefine before config/elfos.h.
687 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
688
689 2000-09-14 Kazu Hirata <kazu@hxi.com>
690
691 * invoke.texi (H8/300 Options): Add -ms2600.
692 * config/h8300.c (h8300_init_once): Output an error when -ms2600
693 is used without -ms.
694 * config/h8300.h (TARGET_MAC): New.
695 (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
696 (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
697 machine other than H8/S2600.
698 * config/h8300.md: Accept mac instructions on the H8/S2600 instead
699 of the H8/S2000.
700
701 2000-09-14 Alexandre Oliva <aoliva@redhat.com>, Bernd Schmidt <bernds@redhat.co.uk>
702
703 * reload.c (find_reloads_address_1): Generate reloads for auto_inc
704 pseudos that refer to the original pseudos, not only to their
705 equivalent memory locations.
706
707 Thu Sep 14 12:10:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
708
709 * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
710 when making new MEM.
711
712 * Makefile.in (LN): Remove duplicate definition.
713
714 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
715
716 From Joern Rennecke:
717 * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
718 on an insn and function_invariant_p returns nonzero for the source,
719 add a REG_EQUAL note.
720
721 Thu Sep 14 00:51:57 EDT 2000 John Wehle (john@feith.com)
722
723 * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
724 conflict with frame_pointer_rtx.
725
726 2000-09-13 Kazu Hirata <kazu@hxi.com>
727
728 * loop.c: Fix formatting.
729 * loop.h: Likewise.
730
731 2000-09-13 Richard Henderson <rth@cygnus.com>
732
733 * config/ia64/ia64.md (divsf3): New.
734 (divsf3_internal_lat, divsf3_internal_thr): New.
735 (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
736 (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
737 (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
738 (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
739 (nmadddf4_alts, nmadddf4_trunc): New.
740 (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
741 (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
742 (multf3_truncsf_alts, multf3_truncdf_alts): New.
743 (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
744 (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
745 (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
746 (nmaddtf4_truncdf_alts): New.
747 (recip_approx): Don't predicate.
748
749 2000-09-13 Richard Henderson <rth@cygnus.com>
750
751 * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
752
753 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
754
755 * flags.h (flag_dump_rtl_in_asm): Declare.
756 * toplev.c (flag_dump_rtl_in_asm): Define.
757 (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
758 if -dP is specified.
759 * rtl.h (print_rtx_head): Declare.
760 * print-rtl.c (print_rtx_head): Define.
761 (print_rtx): Print the string pointed to by print_rtx_head
762 at beginning of each dump line.
763 (print_rtl): Likewise.
764 (print_rtl_single): Likewise.
765 * final.c (final_scan_insn): Dump the insn in the assembly
766 file for debugging.
767 * gcc.1: Document -dP option.
768 * invoke.texi (Debugging Options): Likewise.
769
770 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
771
772 * md.texi (Machine Constraints): Document the 68HC11 constraints.
773 * install.texi (Configurations): Document the 68HC11&68HC12 port.
774 * invoke.texi (Option Summary, M68hc1x Options): Document the options.
775
776 Tue Sep 12 13:51:13 2000 Denis Chertykov <denisc@overta.ru>
777
778 * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
779 * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
780 (*clrstrqi): Likewise.
781 (xorhi3,xorsi3,absqi2): Likewise.
782 (one_cmplhi2,one_cmplsi2): Likewise.
783 (addsi3): Two stupid constraint alternatives removed.
784 (extendhisi2): Use `movw' for enhanced avr cores.
785 (zero_extendhisi2): Likewise.
786
787 Wed Sep 13 02:31:23 EDT 2000 John Wehle (john@feith.com)
788
789 * alias.c (find_base_term): Use frame_pointer_rtx
790 when handling an ADDRESSOF.
791
792 * cse.c (canon_hash): Handle USE of BLKmode memory.
793 (cse_insn): Outgoing arguments for a libcall don't
794 affect any recorded expressions.
795
796 2000-09-12 Tom Tromey <tromey@cygnus.com>
797
798 * configure, config.in: Rebuilt.
799 * configure.in: Check for iconv, nl_langinfo, langinfo.h.
800
801 2000-09-12 Jakub Jelinek <jakub@redhat.com>
802
803 * c-lex.c (lex_string): Use charwidth to compute bytemask.
804 * expr.c (expand_expr): Don't optimize constant array references
805 initialized with wide string constants.
806
807 2000-09-13 Michael Hayes <mhayes@cygnus.com>
808
809 * loop.c (note_set_pseudo_multiple_uses): Correct.
810
811 2000-09-12 Jim Wilson <wilson@cygnus.com>
812
813 * ifcvt.c (noce_process_if_block): If A and B are the same, and no
814 else block, and X has side-effects, then fail.
815
816 2000-09-12 Greg McGary <greg@mcgary.org>
817
818 * config/mips/mips-protos.h
819 (trap_cmp_op, mips_gen_conditional_trap): New func decls.
820 * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
821 (PREDICATE_CODES): Add "trap_cmp_op".
822 * config/mips/mips.c
823 (trap_cmp_op, mips_gen_conditional_trap): New functions.
824 * config/mips/mips.md (trap, conditional_trap): New patterns.
825
826 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
827
828 * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
829 pointer.
830
831 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
832
833 * builtins.c (built_in_decls): New array.
834 (expand_builtin_fputs): New function.
835 (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
836
837 * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
838
839 * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
840
841 * tree.h (built_in_decls): New array.
842
843 Tue Sep 12 08:53:57 2000 Jeffrey A Law (law@cygnus.com)
844
845 * convex.md: Use "+" instead of "=" for outputs wrapped in a
846 STRICT_LOW_PART.
847 * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
848
849 2000-09-12 Kazu Hirata <kazu@hxi.com>
850
851 * haifa-sched.c: Fix formatting.
852
853 * genattrtab.c: Fix formatting.
854
855 * unroll.c: Fix formatting.
856
857 2000-09-12 Bruce Korb <bkorb@gnu.org>
858
859 * fixinc/fixfixes.c: make a type for the fix procedure & use it,
860 remove obsolete code
861 * fixinc/fixincl.c: Use PARAMS, not _P_. Add no-op default to switch.
862 * fixinc/fixincl.tpl: make non-exported arrays static scope
863 * fixinc/fixincl.x: regenerate
864 * fixinc/fixlib.h: Use PARAMS, not _P_
865 * fixinc/fixtests.c: make a type for the test proc & use it
866 * fixinc/server.h: Use PARAMS, not _P_
867
868 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
869
870 * c-typeck.c (process_init_element): Avoid union init warnings on
871 floating point zero. Don't crash on unions containing structs.
872
873 2000-09-12 Alexandre Oliva <aoliva@redhat.com>
874
875 * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
876 general_movsrc_operand, and remove CONST_INT from
877 general_movdst_operand.
878
879 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
880
881 * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
882 if a reference to non-fixed hardreg is seen. Otherwise, count hard
883 regs with a higher cost.
884 (preferrable): Deal with cases where either cost or regcost is
885 MAX_COST.
886 (cse_insn): Use MAX_COST rather than 10000. Always initialize
887 regcost values.
888 (COSTS_N_INSNS): Move definition...
889 * rtl.h: ...here.
890 (MAX_COST): New macro.
891 * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
892 constant.
893
894 2000-09-11 Mark Mitchell <mark@codesourcery.com>
895
896 * c-common.h (genrtl_clear_out_block): Remove.
897 * c-semantics.c (genrtl_clear_out_block): Remove.
898 (genrtl_while_stmt): Don't call it.
899 (genrtl_for_stmt): Likewise.
900
901 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
902
903 * cppfiles.c: Move all default-#defines to top of file.
904 (open_include_file): Replace by lookup_include_file.
905 (read_with_read, read_file): Merged into read_include_file.
906 (stack_include_file, purge_cache): New functions.
907 (close_cached_fd): Delete.
908 (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
909 Cache the in-memory buffer, not the file descriptor.
910
911 * cpphash.h (struct include_file): Add buffer, st, refcnt,
912 mapped fields.
913 (xcnew): New utility macro.
914 (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
915 * cpplib.h (struct cpp_buffer): Remove mapped field.
916
917 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
918
919 * cpplex.c (parse_string): Accept backslash space newline as a
920 line continuation.
921 (lex_line): Likewise.
922 (_cpp_get_token): Remove hard limit on macro nesting.
923
924 2000-09-12 Philipp Thomas <pthomas@suse.de>
925
926 * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
927 * configure: Rebuilt.
928
929 2000-09-13 Michael Hayes <mhayes@cygnus.com>
930
931 * flow.c (split_block): Fix update of registers live at
932 end of split block.
933
934 Tue Sep 12 01:51:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
935
936 * i386.md (add?i_3, add?i_5): New.
937 (add?i_4): Rename from add?i_3; Fix compare pattern.
938 (sub?i_3, xor?i_3, ior?i_3): New.
939
940 * genrecog.c (write_tree): Output code to clear insn_extract cache.
941 * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
942 instead of extract_insn and extract_constrain_insn_cache instead of
943 extract_insn and constrain_operands.
944 * recog.c (extract_insn_cached, extract_constrain_insn_cached):
945 New functions.
946 (extract_insn): Clear which_alternative.
947 (constrain_operands): Set which_alternative to -1 when failed.
948 * recog.h (extract_constrain_insn_cached, extract_insn_cached):
949 Declare.
950
951 2000-09-11 Matthew Hiller <hiller@redhat.com>
952
953 * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
954 on operand 0 to '+'.
955 (movstricthi): Likewise.
956
957 2000-09-12 Michael Hayes <mhayes@cygnus.com>
958
959 * loop.h (LOOP_IVS): New macro.
960 (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
961 (struct loop_ivs): New.
962 (struct loop_info): Add ivs field.
963 (reg_iv_type, reg_iv_info): Delete prototype.
964 (reg_biv_class, loop_iv_list): Likewise.
965 * loop.c (record_biv, find_life_end): Pass loop argument.
966 (reg_iv_type): Remove global array and use
967 field in loop_regs structure within loop_ivs structure.
968 (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
969 (first_increment_giv, last_increment_giv): Use entry in
970 loop_ivs structure.
971 (record_initial): Pass ivs pointer.
972 * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
973
974 2000-09-12 Michael Hayes <mhayes@cygnus.com>
975
976 * loop.h (LOOP_REGS): New macro.
977 (struct loop_regs): New.
978 (struct loop_info): Add regs field.
979 * loop.c (set_in_loop): Remove global array and store
980 in loop_regs structure as part of loop_info structure.
981 (n_times_set, may_not_optimize): Likewise.
982 (reg_single_usage, moved_once): Likewise.
983 (count_one_set): Add regs argument.
984 (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
985 (set_pseudo_multiple_uses): Pass regs pointer.
986
987 2000-09-12 Michael Hayes <mhayes@cygnus.com>
988
989 * unroll.c (iteration_info): Subsume into loop_iterations.
990 * loop.h (loop_info): New field iv.
991
992 2000-09-12 Michael Hayes <mhayes@cygnus.com>
993
994 * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
995 (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
996 (flow_loops_update): New prototype.
997 (flow_loops_find): Add flags to prototype.
998 (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
999 * flow.c (flow_loop_pre_header_scan): New.
1000 (flow_loop_dump): Dump pre-header root and trace and exit dominators.
1001 (flow_loop_free): Free pre-header root and trace and exit dominators.
1002 (flow_loops_find): New argument flags.
1003 (flow_loops_update): New function.
1004 * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
1005
1006 2000-09-12 Michael Hayes <mhayes@cygnus.com>
1007
1008 * basic-block.h (split_block, update_bb_for_insn): New prototypes.
1009 * flow.c (split_block, update_bb_for_insn): New functions.
1010
1011 2000-09-11 Richard Henderson <rth@cygnus.com>
1012
1013 * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
1014
1015 2000-09-11 Richard Henderson <rth@cygnus.com>
1016
1017 * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
1018 * config/ia64/ia64.c (fr_nonimmediate_operand): New.
1019 (ia64_override_options): Prevent optimizing division for both
1020 latency and throughput.
1021 (rtx_needs_barrier): Handle frcpa.
1022 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
1023 (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
1024 (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
1025 (TARGET_SWITCHES): Add -minline-divide-min-latency and
1026 -minline-divide-max-throughput.
1027 (PREDICATE_CODES): Update.
1028 * config/ia64/ia64.md (extendsidi2): Remove * from f case.
1029 (zero_extendsidi2): Likewise. Fix typo in f case insn.
1030 (extendsfdf2): Add cases for gr<->fr and fr<->mem.
1031 (extendsftf2): Likewise.
1032 (extenddftf2): Likewise.
1033 (fix_trunctfdi2_alts): New.
1034 (fixuns_trunctfdi2_alts): New.
1035 (madd*4): Rename from madd*3.
1036 (divsi3, modsi3, udivsi3, umodsi3): New.
1037 (divsi3_internal): New.
1038 (divdi3, moddi3, udivdi3, umoddi3): New.
1039 (divdi3_internal_lat, divdi3_internal_thr): New.
1040 (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
1041 (recip_approx): New.
1042
1043 2000-09-11 Alexandre Oliva <aoliva@redhat.com>
1044
1045 * print-rtl.c (debug_call_placeholder_verbose): New variable.
1046 (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
1047 set.
1048 * integrate.c (copy_rtx_and_substitute): Don't share
1049 LEAF_REG_REMAPpable registers with the inlined function. Don't
1050 share the function value with calling sequences.
1051
1052 2000-09-11 Jakub Jelinek <jakub@redhat.com>
1053
1054 * c-decl.c (do_case): Fix a typo.
1055
1056 * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
1057 to a if the comparison is floating mode and not -ffast-math.
1058 * simplify-rtx.c (simplify_ternary_operation): Likewise.
1059
1060 Mon Sep 11 20:07:48 2000 J"orn Rennecke <amylaar@redhat.co.uk>
1061
1062 * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
1063 gen_ic_invalidate_line.
1064
1065 2000-09-11 Philip Blundell <pb@futuretv.com>
1066
1067 * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
1068
1069 Mon Sep 11 10:48:41 2000 Ulrich Drepper <drepper@redhat.com>
1070
1071 * install.texi (LANGUAGES): Update to include new languages.
1072 * INSTALL: Rebuilt.
1073
1074 2000-09-11 DJ Delorie <dj@redhat.com>
1075
1076 * gcc.c (main): Don't warn about unused -B prefixes
1077 (unused_prefix_warnings): remove
1078
1079 2000-09-11 Kazu Hirata <kazu@hxi.com>
1080
1081 * final.c: Fix formatting.
1082
1083 * integrate.c: Fix formatting.
1084
1085 2000-09-11 Geoff Keating <geoffk@cygnus.com>
1086
1087 * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
1088
1089 2000-09-11 Bernd Schmidt <bernds@redhat.co.uk>
1090
1091 * reload.c (regno_clobbered_p): Fix thinko in previous change.
1092
1093 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
1094
1095 * gcc.1: Document 68hc11 specific options.
1096
1097 2000-09-10 Geoff Keating <geoffk@cygnus.com>
1098
1099 * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
1100 (TARGET_LONG_DOUBLE_128): Define.
1101 (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
1102 (LONG_DOUBLE_TYPE_SIZE): Redefine.
1103 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
1104 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
1105 of __LONG_DOUBLE_128__.
1106 (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
1107 passed.
1108 (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
1109 (CPP_SYSV_DEFAULT_SPEC): Define.
1110 (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
1111 (INIT_TARGET_OPTABS): Define.
1112
1113 * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
1114 (RS6000_UITRUNC): Likewise.
1115 (INIT_TARGET_OPTABS): New macro.
1116 * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
1117 (trunc_defined): Delete.
1118 (output_prolog): Don't output .extern definitions for fp->int
1119 conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
1120 * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
1121 (trunc_defined): Delete.
1122 (RS6000_ITRUNC): Moved to aix.h.
1123 (RS6000_UITRUNC): Likewise.
1124 * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
1125 only emit a libcall.
1126 (fixuns_truncdfsi2): Delete.
1127 (trunc_call): Delete.
1128 (trunc_call_rtl): Delete.
1129
1130 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
1131
1132 * varasm.c (make_decl_rtl): Restore leading star on
1133 DECL_ASSEMBLER_NAME set for decls with an asmspec.
1134
1135 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
1136
1137 * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
1138 won't give a spurious error for '#pragma pack()'. Simplify
1139 control flow for readability. 'reset' action is not necessary.
1140
1141 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
1142
1143 * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
1144 SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
1145 LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
1146 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
1147
1148 * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
1149 profile.c, sdbout.c, tradcif.y, tree.c:
1150 Include defaults.h if not already included.
1151 Don't define the above macros.
1152
1153 * Makefile.in: Update dependencies.
1154
1155 2000-09-10 Mark Mitchell <mark@codesourcery.com>
1156
1157 * c-common.h (add_stmt): Change prototype.
1158 (RECHAIN_STMTS): New macro.
1159 (CASE_LABEL_DECL): Likewise.
1160 (genrtl_case_label): Change prototype.
1161 (c_expand_start_case): Remove prototype.
1162 (build_case_label): Change prototype.
1163 (decl_constant_value): Declare.
1164 * c-common.c (check_case_value): Handle C++'s extensions to C
1165 semantics.
1166 * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
1167 field.
1168 * c-parse.in (stmt): Adjust handling of return statements and case
1169 laels.
1170 * c-semantics.c (add_stmt): Return the new statement.
1171 (genrtl_return_stmt): Take the RETURN_STMT as input, not the
1172 returned expression. Directly generate RTL, rather than calling
1173 c_expand_return.
1174 (genrtl_switch_stmt): Don't call c_expand_start_case.
1175 (build_case_label): Take the LABEL_DECL as input, too.
1176 (genrtl_case_label): Just call add_case_node.
1177 (expand_stmt): Adjust calls to genrtl_return_stmt and
1178 genrtl_case_label.
1179 * c-tree.h (c_expand_start_case): Declare.
1180 * c-typeck.c (decl_constant_value): Give it external linkage.
1181 (c_expand_return): Don't call expand_return or expand_null_return;
1182 use genrtl_return_stmt instead.
1183 * stmt.c (struct nesting): Remove num_ranges field.
1184 (add_case_node): Give it external linkage.
1185 (expand_start_case): Don't set num_ranges.
1186 (expand_start_case_dummy): Don't clear it.
1187 (pushcase): Rely on add_case_node to handle `default' labels.
1188 (add_case_node): Handle `default' labels.
1189 * tree.c (tree_int_cst_compare): New function.
1190 * tree.h (tree_int_cst_compare): Declare.
1191 (add_case_node): Likewise.
1192
1193 2000-09-10 Richard Henderson <rth@cygnus.com>
1194
1195 * c-parse.in: Revert last change.
1196 (init_reswords): Do not enter disabled keywords into the ridpointers
1197 table, modulo objc weirdness.
1198 (_yylex): Return the canonical spelling for a keyword.
1199
1200 2000-09-10 Philip Blundell <philb@gnu.org>
1201
1202 * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
1203 * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
1204
1205 Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com)
1206
1207 * alias.c (find_base_term): Handle ADDRESSOF.
1208 (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
1209
1210 2000-09-10 Denis Chertykov <denisc@overta.ru>
1211
1212 * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
1213 outputting templates with many lines.
1214
1215 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
1216
1217 * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
1218 to decide whether 64-bit support must be generated.
1219
1220 2000-09-10 Richard Henderson <rth@cygnus.com>
1221
1222 * c-parse.in (asm patterns): Fix volatile check.
1223
1224 2000-09-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1225
1226 * cppmacro.c (check_trad_stringification): New function.
1227 (save_expansion): If -Wtraditional, warn about stringification of
1228 macro arguments.
1229
1230 2000-09-11 Michael Hayes <mhayes@cygnus.com>
1231
1232 * loop.h (struct loop_mem_info): Move from loop.c
1233 (struct loop_info): Add fields store_mems, mems, mems_idx,
1234 mems_allocated, unknown_address_altered,
1235 unknown_constant_address_altered, num_mem_sets, and
1236 first_loop_store_insn.
1237
1238 * loop.c (loop_store_mems): Replace with field in loop_info struct.
1239 (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
1240 (unknown_address_altered, unknown_constant_address_altered): Likewise.
1241 (num_mem_sets): Likewise.
1242 (replace_loop_mems, replace_loop_regs): New.
1243 (struct loop_replace_args): New.
1244 (load_mems): Use replace_loop_mems.
1245 (try_copy_prop): Use replace_loop_regs.
1246 (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
1247
1248 2000-09-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
1249
1250 * configure.in: Recognize m6811-elf and m6812-elf.
1251 * configure: Regenerate.
1252
1253 2000-09-09 Geoff Keating <geoffk@cygnus.com>
1254
1255 * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
1256 to operand_subword.
1257
1258 2000-09-10 Michael Hayes <mhayes@cygnus.com>
1259
1260 * loop.c (struct movables): New.
1261 (num_movables): Move into struct movables.
1262 (the_movables): Change type to struct movables.
1263 (ignore_some_movables): Change struct movable arg to struct movables.
1264 (force_movables, combine_movables, regs_match_p): Likewise.
1265 (rtx_equal_for_loop_p, move_movables): Likewise.
1266 (scan_loop): Change movables to be of type struct movables.
1267 Replace last_movable with field in movables structure.
1268
1269 2000-09-08 Zack Weinberg <zack@wolery.cumb.org>
1270
1271 * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
1272 (init_pragma): Avoid warning if pfile happens to be unused.
1273 * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never
1274 define init_pragma to nothing. Always prototype
1275 init_pragma. Prototype dispatch_pragma if !USE_CPPLIB.
1276
1277 * c-lex.c (process_directive): Always call dispatch_pragma.
1278 Initialize entering_c_header to 0.
1279
1280 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
1281
1282 * config/m68hc11/m68hc11.md: New file, machine description for
1283 68HC11 & 68HC12.
1284 * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
1285 * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
1286 * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
1287 * config/m68hc11/m68hc11-protos.h: New file.
1288 * config/m68hc11/m68hc11-crt0.S: New file, startup code.
1289 * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
1290 * config/m68hc11/xm-m68hc11.h: New file, target defs.
1291 * config/m68hc11/larith.asm: New file, libgcc routines.
1292
1293 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
1294
1295 * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
1296 (FPBIT_FUNCS): Add _usi_to_sf.
1297 * config/fp-bit.c (usi_to_float): New function.
1298 * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
1299 (usi_to_float): Add appropriate #define.
1300
1301 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
1302
1303 * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
1304 new functions.
1305 * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
1306 * i386.md (attr "type"): Add sse and mmx types.
1307 (attr "memory"): Handle them without a crash.
1308 (movsi_1, movdi_2): Allow MMX regs.
1309 (movdi splits): Don't split moves involving MMX regs.
1310 (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
1311 (movv4sf_internal, movv4si_internal, movv8qi_internal,
1312 movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
1313 movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
1314 sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
1315 sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
1316 sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
1317 addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
1318 divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
1319 sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
1320 sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
1321 vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
1322 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
1323 cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
1324 addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
1325 subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
1326 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
1327 mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
1328 mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
1329 eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
1330 smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
1331 lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
1332 mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
1333 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
1334 mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
1335 mmx_clrdi): New patterns.
1336
1337 2000-09-08 Richard Earnshaw <rearnsha@arm.com>
1338
1339 * arm.c: Don't include tm.h directly.
1340
1341 Fri Sep 8 14:34:56 MET DST 2000 Jan Hubicka <jh@suse.cz>
1342
1343 * recog.c (validate_replace_rtx_1): Fix confusion about equality
1344 testing; simplify subregs of constants and nested subregs.
1345
1346 2000-09-08 Alexandre Oliva <aoliva@redhat.com>
1347
1348 * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
1349
1350 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
1351
1352 * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
1353 VEC_CONCAT.
1354 * rtl.texi (description of USE): Add note about possible pitfalls
1355 with this rtx.
1356 From Richard Henderson:
1357 * reload1.c (choose_reload_regs): Compute need_mode properly.
1358
1359 2000-09-07 Richard Henderson <rth@cygnus.com>
1360
1361 * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
1362 (__modsi3, __umodsi3): Likewise.
1363 (__udivsi3): Likewise. Normalize the TFmode values.
1364
1365 2000-09-07 Geoff Keating <geoffk@cygnus.com>
1366
1367 * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
1368 with a prototype.
1369 * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
1370 warning.
1371
1372 Fri Sep 8 03:26:38 2000 J"orn Rennecke <amylaar@redhat.co.uk>
1373
1374 * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
1375 (cmpeqdi_t): Add output pattern.
1376 (cmpeqdi_t+1): Don't split when not optimizing.
1377 Restore proper splitting operation.
1378
1379 2000-09-07 Richard Henderson <rth@cygnus.com>
1380
1381 * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
1382 do not call dispatch_pragma.
1383
1384 2000-09-07 Jim Wilson <wilson@cygnus.com>
1385
1386 * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
1387 to CLASS_CANNOT_CHANGE_MODE.
1388 * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
1389 mode classes are different.
1390
1391 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
1392
1393 * cpplib.h (struct cpp_options): Add user_label_prefix member,
1394 left out of commit which removed cppulp.c.
1395
1396 2000-09-07 Richard Henderson <rth@cygnus.com>
1397
1398 * bb-reorder.c (fixup_reorder_chain): Add jump in new block
1399 after switch for CASE_DROPS_THROUGH.
1400
1401 2000-09-07 Richard Henderson <rth@cygnus.com>
1402
1403 * loop.c (strength_reduce): Call check_ext_dependant_givs.
1404 Properly extend the biv initial value for the giv.
1405 (record_biv): Zero ext_dependant.
1406 (record_giv): New argument ext_val. Update all callers.
1407 (general_induction_var): Likewise.
1408 (consec_sets_giv): Likewise.
1409 (simplify_giv_expr): Likewise. Fill in ext_val if we find
1410 a sign-extend, zero-extend, or truncate.
1411 (combine_givs_p): Make sure modes are compatible.
1412 (check_ext_dependant_givs): New.
1413 (extend_value_for_giv): New.
1414 * loop.h (struct induction): Add ext_dependant.
1415 * unroll.c (iteration_info): Extend the biv initial value for the giv.
1416 (find_splittable_givs): Likewise.
1417 (final_giv_value): Likewise.
1418
1419 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
1420
1421 * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
1422 REGISTER_TARGET_PRAGMAS is defined. Duplicate some
1423 definitions from cpplib.h.
1424 * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
1425 already done it.
1426 * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add
1427 documentation for REGISTER_TARGET_PRAGMAS.
1428
1429 * c-lex.c: Include cpplib.h before c-pragma.h. Define a
1430 default-pragma callback to implement -Wunknown-pragmas if
1431 USE_CPPLIB.
1432 * c-parse.in: Move all includes to top of file.
1433 * c-pragma.c: Include cpplib.h before c-pragma.h. Include
1434 tm_p.h.
1435 (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
1436 warning.
1437 (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
1438
1439 * arm.h, arm-protos.h, arm.c,
1440 c4x.h, c4x-protos.h, c4x.c,
1441 h8300.h, h8300-protos.h, h8300.c,
1442 i370.h, i370-protos.h, i370.c,
1443 i960.h, i960-protos.h, i960.c,
1444 sh.h, sh-protos.h, sh.c,
1445 v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
1446 pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
1447
1448 * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add
1449 multiple include guard.
1450 * i370.md (untyped_call): Use GEN_CALL.
1451 (umodsi3): Remove unused variable.
1452 * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
1453 * v850.c (output_move_single, output_move_double): Constify
1454 return value.
1455 (print_operand): Constify a char *.
1456 * v850.h (struct small_memory_info): Constify name member.
1457
1458 2000-09-07 Kazu Hirata <kazu@hxi.com>
1459
1460 * config/h8300.h: Fix comment typos.
1461 * config/h8300/h8300.md: Likewise.
1462 * config/h8300/lib1funcs.asm: Likewise.
1463
1464 Thu 07-Sep-2000 21:29:00 BST Neil Booth <NeilB@earthling.net>
1465
1466 * Makefile.in: Remove references to cppulp.{c,o}.
1467 * cppinit.c (initialize_builtins, cpp_start_read,
1468 cpp_handle_option): Update to use cpp_options structure.
1469 * cppulp.c: Remove.
1470
1471 2000-09-07 Joseph S. Myers <jsm28@cam.ac.uk>
1472
1473 * c-common.c (time_char_table): Allow %#b and %#h.
1474
1475 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1476
1477 * reorg.c (find_end_label): If the basic block reorder pass moves the
1478 return insn to some other place try to locate it again and put our
1479 end_of_function_label there.
1480 * reorg.c (relax_delay_slots): Check if find_end_label created a
1481 new label that invalidates the current optimazation.
1482
1483 2000-09-07 Catherine Moore <clm@redhat.com>
1484
1485 * unroll.c (unroll_loop): Check for unconditional jumps
1486 to loop continuation. Delete if n_iterations is 1.
1487 (ujump_to_loop_cont): New routine.
1488
1489 2000-09-07 Bernd Schmidt <bernds@redhat.co.uk>
1490
1491 * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
1492 MODE_VECTOR_FLOAT.
1493 * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
1494 to handle multiword modes correctly. All callers and the declaration
1495 changed.
1496
1497 2000-09-06 Mark Mitchell <mark@codesourcery.com>
1498
1499 * c-common.h (prep_stmt): Declare.
1500 (lang_expand_stmt): Likewise.
1501 * c-decl.c (lang_expand_stmt): Remove.
1502 * c-semantics.c (lang_expand_stmt): Define.
1503 (prep_stmt): New function.
1504 (expand_stmt): Handle common statement types here.
1505
1506 2000-09-07 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>, Alexandre Oliva <aoliva@redhat.com>
1507
1508 * configure.in (sh-*-linux*): Added.
1509 * configure: Rebuilt.
1510 * config/sh/t-linux: New file.
1511 * config/sh/sh.h (USERMODE_BIT): Define.
1512 (TARGET_USERMODE): Likewise.
1513 (TARGET_SWITCHES): New switches for the bits above.
1514 (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
1515 * config/sh/linux.h: New file.
1516 * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
1517 underscore on linux.
1518 (L_sdivsi3, L_udivsi3): Define for linux.
1519 (L_ic_invalidate): Define.
1520 * invoke.texi (SH Options): Document -musermode.
1521
1522 2000-09-07 Alexandre Oliva <aoliva@redhat.com>
1523
1524 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
1525 CSE unless generating PIC.
1526
1527 * config/sh/sh.md (symPLT_label2reg): Force the initialization of
1528 the PIC register.
1529
1530 2000-09-06 H.J. Lu (hjl@gnu.org)
1531
1532 * Makefile.in (clean_s1): Depend on stage_b.
1533 (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
1534 stage2. They are used for "make compare".
1535
1536 2000-09-06 Mark Mitchell <mark@codesourcery.com>
1537
1538 Move statement-tree facilities from C++ to C front-end.
1539 * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
1540 (void_zero_node): New macro.
1541 (struct stmt_tree_s): New type.
1542 (stmt_tree): New typedef.
1543 (struct language_function): New type.
1544 (last_tree): New macro.
1545 (last_expr_type): Likewise.
1546 (walk_tree_fn): New typedef.
1547 (current_stmt_tree): New function.
1548 (begin_stmt_tree): Likewise.
1549 (add_stmt): Likewise.
1550 (finish_stmt_tree): Likewise.
1551 (statement_code_p): Likewise.
1552 (lang_statement_code_p): New variable.
1553 (walk_stmt_tree): New function.
1554 (STMT_IS_FULL_EXPR_P): New macro.
1555 * c-common.c (lang_statement_code_p): New variable.
1556 (c_common_nodes_and_builtins): Initialize void_zero_node.
1557 (statement_code_p): New function.
1558 (walk_stmt_tree): Likewise.
1559 * c-decl.c (language_function): Rename to ...
1560 (c_language_function): ... this. Include language_function.
1561 (push_c_function_context): Adjust accordingly.
1562 (pop_c_function_context): Likewise.
1563 (mark_c_function_context): Likewise.
1564 (current_stmt_tree): Define.
1565 * c-semantics.c (begin_stmt_tree): New function.
1566 (add_stmt): Likewise.
1567 (prune_unused_decls): Likewise.
1568 (finish_stmt_tree): Likewise.
1569
1570 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1571
1572 * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
1573
1574 2000-09-06 Kazu Hirata <kazu@hxi.com>
1575
1576 * calls.c: Fix formatting.
1577
1578 2000-09-06 Graham Stott <grahams@cygnus.co.uk>
1579
1580 * config/i386/i386.h (ADDRESS_COST): Fix typo.
1581
1582 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
1583
1584 Integrated preprocessor.
1585
1586 * Makefile.in: Remove all references to c-parse.gperf,
1587 c-gperf.h, and c-parse.h. Remove -d from yacc command line
1588 generating c-parse.c. Update dependencies.
1589 * c-parse.gperf, c-gperf.h: Delete.
1590
1591 * c-common.c: Don't define parse_options, cpp_token, yy_cur,
1592 yy_lim, or yy_get_token. Don't define get_directive_line if
1593 USE_CPPLIB.
1594 * c-common.h: Add multiple include guard. Define RID values
1595 for every keyword in C, C++, and Objective C. Put all the
1596 modifiers first.
1597 (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
1598 * c-decl.c (c_decode_option): Handle -lang-objc here.
1599 (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
1600 (grokdeclarator): Adjust for new RID scheme.
1601 (extract_interface_info): New stub.
1602 * c-lang.c: Don't declare yy_cur or parse_options.
1603 (lang_init_options): Call cpp_init. Don't call
1604 cpp_options_init.
1605 (lang_init): Don't call check_newline if USE_CPPLIB.
1606
1607 * c-lex.c: Don't include c-parse.h. Do include timevar.h.
1608 Elide lots of unnecessary code if USE_CPPLIB. Delete code
1609 rendered unnecessary by new architecture. Move routines not
1610 shared with C++ to c-parse.in. Maintain a local idea of the
1611 line number. Handle C++ as well as C.
1612 [USE_CPPLIB]: Declare and register callbacks for #ident and
1613 for entering/leaving files.
1614 (init_c_lex, c_lex): Are now the entry points to this file.
1615 (check_newline): Break out directive handling to
1616 process_directive.
1617 (read_ucs, is_extended_char, utf8_extend_token): Moved here
1618 from C++ front end.
1619 (readescape, parse_float): Overhaul.
1620 (lex_number, lex_string, lex_charconst): Break out of c_lex
1621 (n'ee yylex).
1622 (get_fileinfo, update_header_times, dump_one_header,
1623 dump_time_statistics): New and/or moved here from C++.
1624 Support per-file data needed by C++ and per-header timing
1625 statistics (C++ only, at the moment).
1626 * c-lex.h: Update prototypes. Add multiple include guard.
1627 * c-tree.h (struct lang_identifier): Add rid_code field.
1628 (C_IS_RESERVED_WORD, C_RID_CODE): New.
1629
1630 * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
1631 reinit_parse_for_function and/or position_after_white_space.
1632 (save_filename, save_lineno): Look ahead before saving.
1633 (label -> identifier ':'): Save file and line before shifting ':'.
1634 (reservedwords): No need to call get_identifier.
1635 (init_parse, finish_parse, yyerror, yylex, yyprint,
1636 make_pointer_declarator): Are now here for C/ObjC.
1637 (rid_to_yy): Conversion table from RID constants to Yacc codes.
1638
1639 * c-pragma.c: Rewrite parsing logic to fit with cpplib's
1640 #pragma registry. Provide dummy implementation of that
1641 interface if !USE_CPPLIB.
1642 * c-pragma.h: Update to match.
1643
1644 * flags.h: Add multiple include guard.
1645 (flag_detailed_statistics): Moved here from C++.
1646 * toplev.c: Define flag_detailed_statistics.
1647
1648 * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
1649 #if USE_CPPLIB.
1650 * timevar.def (TV_CPP, TV_LEX): New.
1651 * timevar.h: Add multiple include guard.
1652
1653 * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
1654 #if USE_CPPLIB.
1655 * objc/objc-act.c: Don't mention yy_cur or parse_options.
1656 Initialize cpplib properly. Force lineno to 0 after first
1657 call to check_newline. Don't handle -lang-objc here.
1658 Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
1659
1660 2000-09-06 David Edelsohn <edelsohn@gnu.org>
1661
1662 * rs6000.md: Correct function unit definitions for cr_logical and
1663 mtjmpr.
1664 (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
1665 and use portable method for >=0 and floating point >=. Remove
1666 associated matchers.
1667
1668 2000-09-06 Mark Mitchell <mark@codesourcery.com>
1669
1670 * extend.texi: Mark named return value extension as deprecated.
1671
1672 2000-09-06 Geoff Keating <geoffk@cygnus.com>
1673
1674 * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
1675 the result.
1676
1677 2000-09-06 Gabriel Dos Reis <gdr@codesourcery.com>
1678
1679 * toplev.c (display_help): Fix thinko in documentation.
1680
1681 * diagnostic.h (output_buffer::indent_skip): New fields.
1682 (output_indentation): New macro.
1683
1684 * diagnostic.c (output_indent): New function.
1685 (output_set_prefix, clear_diagnostic_info): Use.
1686 (output_emit_prefix): Predict future indentation.
1687
1688 2000-09-06 DJ Delorie <dj@redhat.com>
1689
1690 * Makefile.in (stage_*): add more dependencies to ensure parallel
1691 builds build correctly
1692
1693 2000-09-06 Manfred Hollstein <manfredh@redhat.com>
1694
1695 * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
1696 not bootstrap-lean_f.
1697
1698 2000-09-06 Andreas Schwab <schwab@suse.de>
1699
1700 * mklibgcc.in: Emit rule for libgcc-stage-start.
1701 * Makefile.in (stage1-start, stage2-start, stage3-start,
1702 stage4-start): Don't handle libgcc here, use libgcc.mk instead.
1703
1704 2000-09-06 Bernd Schmidt <bernds@redhat.co.uk>
1705
1706 * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
1707 (update_equiv_regs): Likewise, except for the mn10200 kludge.
1708 (combine_regs): Likewise.
1709
1710 * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
1711 * cse.c: Include "basic-block.h".
1712 (struct table_elt): New field REGCOST.
1713 (CHEAP_REG): Delete macro.
1714 (COST): Return 0 for REGs.
1715 (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
1716 (notreg_cost): Return 0 for appropriate SUBREGs.
1717 (COSTS_N_INSNS): Return N * 2.
1718 (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
1719 SUBREGs.
1720 (CHEAPER): Use new function preferrable.
1721 (insert): Initialize REGCOST member.
1722 (find_best_addr): Use approx_reg_cost for estimation of register
1723 usage.
1724 (cse_insn): Likewise.
1725 * loop.c (iv_add_mult_cost): New function.
1726 (add_cost, shift_cost, mult_cost): Delete variables.
1727 (init_loop): Don't initialize add_cost; reduce copy_cost by half.
1728 (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
1729 Make code that detects autoinc opportunities slightly less optimistic.
1730 (simplify_giv_expr): If expression contains other reg that is also a
1731 giv, only increment benefit if this is the only use of that reg.
1732 (consec_sets_giv): Take that change into account.
1733 (combine_givs): Slightly more verbose output.
1734
1735 * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
1736 not the cost of an equivalent shift.
1737 * sh-protos.h (addsubcosts): Declare.
1738 * sh.c (addsubcosts): New function.
1739 * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
1740 (RTX_COSTS): Tweak. Use addsubcosts.
1741 (ADDRESS_COST): Return higher cost for reg+reg addressing.
1742
1743 2000-09-06 Geoff Keating <geoffk@cygnus.com>
1744
1745 * config/rs6000/rs6000.c (validate_condition_mode): New function.
1746 (branch_comparison_operator): Call validate_condition_mode to
1747 abort rather than returning 0.
1748 (branch_positive_comparison_operator): New function.
1749 (scc_comparison_operator): Call validate_condition_mode to abort
1750 rather than returning 0.
1751 (ccr_bit): Call validate_condition_mode. Update for
1752 new branch scheme.
1753 (print_operand): Delete %C modifier. Update %E case
1754 to use EQ bit not SO bit.
1755 (rs6000_reverse_condition): New function.
1756 (rs6000_generate_compare): New function.
1757 (rs6000_emit_sCOND): New function.
1758 (rs6000_emit_cbranch): New function.
1759 (output_cbranch): The length of a long branch insn is
1760 now only 8 bytes. Add validate_condition_mode. Use
1761 rs6000_reverse_condition. Remove cror generation.
1762
1763 * config/rs6000/rs6000.h: Update comments.
1764 (PREDICATE_CODES): Add new predicate. Update codes used
1765 by branch_comparison_operator and scc_comparison_operator.
1766 * config/rs6000/rs6000-protos.h: Add prototypes for
1767 new external functions.
1768 * config/rs6000/rs6000.md: Add new scheduling parameters
1769 for cr_logical instructions. Change length of branch
1770 instructions.
1771 (bCOND patterns): Call rs6000_emit_cbranch.
1772 (sCOND patterns): Call rs6000_emit_sCOND.
1773 (branch patterns): Change lengths to 4.
1774 (cr logical patterns): New.
1775
1776 2000-09-06 Richard Henderson <rth@cygnus.com>
1777
1778 * config/i386/i386.md (call_pop): Fix test for setting
1779 current_function_uses_pic_offset_table.
1780 (call, call_value_pop, call_value): Likewise.
1781
1782 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
1783
1784 * timevar.c (timevar_add): Delete.
1785 (timevar_get): Also count time since the selected timer was
1786 last updated. Do not examine the timevar stack if the
1787 selected timer is standalone.
1788
1789 2000-09-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1790
1791 * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
1792
1793 2000-09-05 Jason Merrill <jason@redhat.com>
1794
1795 * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
1796 for 'extern' arrays.
1797
1798 2000-09-05 Richard Henderson <rth@cygnus.com>
1799
1800 * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
1801 Eliminate final copy from non-trapping case.
1802 (__divdf3, __divsf3): Likewise.
1803
1804 2000-09-05 Richard Henderson <rth@cygnus.com>
1805
1806 * config/ia64/ia64.md (mulhi3): Fix typo last change.
1807 * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
1808
1809 2000-09-03 Donn Terry <donn@interix.com>, Laurynas Biveinis <lauras@softhome.net>
1810
1811 * Makefile.in: Restructure bootstrap stages to allow clean
1812 restart after failure.
1813
1814 2000-09-05 Richard Henderson <rth@cygnus.com>
1815
1816 * config/ia64.md (movsi and movdi patterns): Allow moves from
1817 8-bit constants to AR registers.
1818
1819 2000-09-05 Richard Henderson <rth@cygnus.com>
1820
1821 * config/ia64/ia64.md (mulhi3): New.
1822
1823 2000-09-05 Richard Henderson <rth@cygnus.com>
1824
1825 * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
1826 * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
1827 Optimization Guide, minimum latency alternative.
1828 (__moddi3, __udivdi3, __umoddi3): Likewise.
1829 (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
1830
1831 2000-09-05 Bruce Korb <bkorb@gnu.org>
1832
1833 * fixinc/fixincl.c (load_file): always read header files
1834 with sizes that are a multiple of the page size.
1835 & use libiberty's getpagesize for determining that.
1836
1837 2000-09-05 Alexandre Oliva <aoliva@redhat.com>
1838
1839 * gcse.c (hash_string_1): Add prototype.
1840 * cse.c (canon_hash_string): Likewise.
1841
1842 2000-09-04 Craig Newell <CraigN@ieee.org>
1843
1844 * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
1845
1846 2000-09-04 Andreas Schwab <schwab@suse.de>
1847
1848 * Makefile.in (STAGESTUFF): Remove libgcc.
1849 (stage1-start, stage2-start, stage3-start): Copy the contents of
1850 the libgcc directory explicitly.
1851 (mostlyclean): Clean libgcc.
1852
1853 2000-09-04 Andrew Haley <aph@redhat.com>
1854
1855 * dwarf2out.c: (stack_adjust_offset): New prototype.
1856
1857 Wed Jan 1 00:23:59 MET 1997 Jan Hubicka <jh@suse.cz>
1858
1859 * combine.c (make_extraction): Fix rtx_cost comparison to
1860 match the comment.
1861
1862 Wed Jan 1 00:17:32 MET 1997 Jan Hubicka <jh@suse.cz>
1863
1864 * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
1865 umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
1866 Add '*' to insn pattern name.
1867
1868 2000-09-04 Jakub Jelinek <jakub@redhat.com>
1869
1870 * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
1871 use posn - 1 to index into tokens array.
1872 (maybe_paste_with_next): Adjust caller.
1873
1874 2000-09-03 Geoff Keating <geoffk@cygnus.com>
1875
1876 * invoke.texi: Document the -mvxworks option for rs6000 ELF.
1877
1878 * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
1879 (REGNO_REG_CLASS): Use symbolic register
1880 names.
1881
1882 2000-09-03 Richard Earnshaw <rearnsha@arm.com>
1883
1884 * arm.c (final_prescan_insn): If the form of a jump insn isn't
1885 recognized, don't try to conditionally execute it.
1886
1887 Sun Sep 3 13:10:56 2000 Denis Chertykov <denisc@overta.ru>
1888
1889 * config/avr/avr.md ("*tablejump_lib"): New pattern.
1890 (call_value_insn): Right length claculation.
1891 (call_insn): Likewise.
1892
1893 2000-09-02 Marek Michalkiewicz <marekm@linux.org.pl>
1894
1895 * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
1896 gas_output_limited_string, gas_output_ascii, output_movqi,
1897 output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
1898 out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
1899 out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
1900 ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
1901 lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
1902 out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
1903 Add "const" as needed to remove warnings.
1904
1905 * config/avr/avr.c (avr_override_options, avr_init_once,
1906 function_prologue, function_epilogue, frame_pointer_required_p,
1907 class_likely_spilled_p, order_regs_for_local_alloc,
1908 avr_address_cost, avr_ret_register): Use K&R style arguments.
1909 (initial_elimination_offset, gas_output_limited_string):
1910 Remove ATTRIBUTE_UNUSED from the used arguments.
1911 (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
1912 Use local variables src, dest, base to access operands[].
1913 Rename reg_dest to reg_src if that's what it is.
1914 (output_movhi, output_movsisf): Optimize loading 8-bit immediate
1915 constants to LD_REGS if reg_was_0.
1916 (output_reload_insisf): Change arg 3 to insn length and set it.
1917 (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
1918 access to 16-bit I/O register pairs.
1919 (avr_address_cost): Lower cost for the above case.
1920 (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
1921 may be clobbered, also for LD_REGS.
1922 (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
1923 with a CONST_INT.
1924
1925 * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
1926
1927 * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
1928 macro to test_hard_reg_class function.
1929 (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
1930 for loading immediate constants to LD_REGS.
1931 (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
1932
1933
1934 Sat Sep 2 13:58:23 2000 Marek Michalkiewicz <marekm@linux.org.pl>
1935
1936 * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
1937 * config/avr/libgcc.S: Lost part of the previous patch.
1938
1939 2000-08-31 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1940
1941 * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
1942 object before calling pthread_mutex_init.
1943
1944 2000-09-02 Alexandre Oliva <aoliva@redhat.com>
1945
1946 * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
1947 config/sh/crtn.asm: New files.
1948 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
1949 (crt1.o, crti.o, crtn.o): New targets.
1950 * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
1951 sh/t-elf.
1952 * configure: Rebuilt.
1953 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
1954 STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
1955 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
1956 Undefine for config/elfos.h to redefine.
1957 (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
1958
1959 2000-09-02 Alexandre Oliva <aoliva@redhat.com>, Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
1960
1961 * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
1962 legitimize_pic_address, output_pic_addr_const): Declare.
1963 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
1964 (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
1965 (TARGET_SWITCHES): New switch -mprefergot.
1966 (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
1967 (PIC_OFFSET_TABLE_REGNUM): Define.
1968 (GOT_SYMBOL_TABLE): Likewise.
1969 (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
1970 (ENCODE_SECTION_INFO): Define.
1971 (FINALIZE_PIC): New macros.
1972 (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
1973 (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
1974 * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
1975 (prepare_move_operands): Call emit_pic_move or
1976 emit_pic_const_move if appropriate.
1977 (output_far_jump): For PIC, use braf and output long offset.
1978 (machine_dependent_reorg):
1979 (sh_expand_prologue): Save and initialize the PIC register.
1980 (sh_expand_epilogue): Restore it.
1981 (initial_elimination_offset): Account for it.
1982 (nonpic_symbol_mentioned_p): New function.
1983 (legitimize_pic_address): Likewise.
1984 (output_pic_addr_const): Likewise.
1985 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
1986 (call, call_value): Use them.
1987 (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
1988 symPLT_label2reg): New expands.
1989 * invoke.texi (SH Options): Document -mprefergot.
1990
1991 2000-09-01 Alexandre Oliva <aoliva@redhat.com>
1992
1993 * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
1994 * gcse.c (hash_string_1): New function.
1995 (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
1996 (expr_equiv_p) <ASM_OPERANDS>: Likewise.
1997 * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
1998 (canon_hash_string): New function.
1999 (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
2000 (exp_equiv_p) <ASM_OPERANDS>: Likewise.
2001 (fold_rtx): Use ASM_OPERANDS accessor macros.
2002 * emit-rtl.c (copy_insn_1): Likewise.
2003 * integrate.c (copy_rtx_and_substitute): Likewise.
2004 * stmt.c (expand_asm_operands): Likewise. Give an
2005 ASM_OPERANDS rtx the mode of the output reg being set from it.
2006
2007 2000-09-01 Fred Fish <fnf@be.com>
2008
2009 * fix-header.c (write_rbrac): Add putc and getc to list of
2010 functions to protect against prior definition as a macro.
2011
2012 2000-09-01 Joseph S. Myers <jsm28@cam.ac.uk>
2013
2014 * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
2015 (c_size_type_node): Define.
2016 * c-decl.c (init_decl_processing): Initialize c_size_type_node.
2017 * c-common.c (enum format_lengths, enum format_std_version,
2018 format_length_info, format_type_detail, BADLEN, NOLENGTHS,
2019 format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
2020 T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
2021 T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
2022 T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
2023 TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
2024 format_types): Define.
2025 (format_char_info, print_char_table, scan_char_table,
2026 time_char_table): Rearrange for new organization of information
2027 about format length modifiers and standard versions.
2028 (T_ST): Redefine to use c_size_type_node.
2029 (check_format_info): Obtain information about length modifiers and
2030 standard versions from tables. Adjust warning message wordings.
2031 Use the name from the user's program for `ll' and `hh' length
2032 modifiers in warning messages. Use more informative names for
2033 wanted types where available (for wchar_t, wint_t, size_t, signed
2034 size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
2035
2036 2000-09-01 Jim Wilson <wilson@cygnus.com>
2037
2038 * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
2039 * combine.c (distribute_notes): Handle REG_NORETURN.
2040 * rtl.c (reg_note_name): Add REG_NORETURN.
2041 * rtl.h (enum reg_note): Likewise.
2042
2043 * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
2044 ia64_file_start.
2045 * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
2046 (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
2047 (emit_predicate_relation_info): Handle conditional calls with
2048 REG_NORETURN.
2049 * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
2050 instead of ia64_file_start.
2051 * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
2052 * config/ia64/ia64.md (safe_across_calls_all,
2053 save_across_calls_normal): New patterns.
2054
2055 * loop.c (check_final_value): Check for biv use before checking for
2056 giv use. Check for both biv and giv uses. Always set last_giv_use
2057 if there is a giv use.
2058
2059 2000-09-01 Richard Henderson <rth@cygnus.com>
2060
2061 * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
2062 (madddi3): Likewise.
2063 (maddsi3): New.
2064
2065 Fri Sep 1 10:59:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2066
2067 * expr.c (clear_storage): Don't use emit_move_insn unless
2068 either BLKmode or proper size.
2069 (store_constructor): Don't call clear_storage if REG of wrong size.
2070
2071 * flow.c (init_propagate_block_info): Don't mark frame dead at end
2072 of function if returns wiht stack pointer depressed.
2073
2074 2000-09-01 Andrew Haley <aph@redhat.com>
2075
2076 * dwarf2out.c (stack_adjust_offset): New function.
2077 (dwarf2out_stack_adjust): Break out stack adjust logic into
2078 new stack_adjust_offset function. Look inside parallels and
2079 sequences for stack adjustments.
2080
2081 2000-08-31 Jeff Law <law@cygnus.com>
2082
2083 * arm.md: Use no_new_pseudos to determine when it is safe
2084 to create new pseudo registers.
2085
2086 * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
2087 when we can safely allocate new registers.
2088
2089 2000-08-31 Geoffrey Keating <geoffk@cygnus.com>
2090
2091 * stmt.c (expand_asm_operands): Twiddle generating_concat_p
2092 so that CONCATs are not generated for ASMs.
2093 * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
2094 not generating_concat_p.
2095 * function.c (pop_function_context_from): Reset
2096 generating_concat_p.
2097 (prepare_function_start): Likewise.
2098 * rtl.c (generating_concat_p): Define.
2099 * rtl.h (generating_concat_p): Declare.
2100 * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
2101
2102 2000-08-22 Philipp Thomas <pthomas@suse.de>
2103 Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
2104
2105 * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
2106 for translation.
2107
2108 2000-08-30 Greg McGary <greg@mcgary.org>
2109
2110 * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
2111 * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
2112 * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
2113
2114 2000-08-30 Greg McGary <greg@mcgary.org>
2115
2116 * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
2117 (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
2118 (TREE_INT_CST): New macro.
2119 * varasm.c (const_hash, compare_constant_1, record_constant_1):
2120 Use new macro TREE_INT_CST.
2121
2122 Wed 30-Aug-2000 23:18:59 BST Neil Booth <NeilB@earthling.net>
2123
2124 * contrib.texi: Add self.
2125
2126 2000-08-30 Alexandre Oliva <aoliva@redhat.com>
2127
2128 * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
2129 (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
2130 and labels.
2131
2132 2000-08-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
2133
2134 * fixinc/gnu-regex.c: Don't define `const'.
2135
2136 Tue Aug 29 22:09:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2137
2138 * expr.c (store_constructor): Allow variable bounds of array type.
2139 (expand_expr): Don't blow up if type is ERROR_MARK.
2140 * varasm.c (output_constructor): Don't access lower bound of array
2141 type unless need it if index is supplied (so it can be a variable
2142 if no index is supplied).
2143 Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
2144 Other minor cleanups.
2145
2146 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
2147
2148 * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
2149 for compilations in stage 1 and subsequent stages, respectively.
2150 * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
2151 * configure: Rebuilt.
2152 * x-vax, x-vax-gcc: Deleted.
2153
2154 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
2155
2156 * c-common.c (declare_function_name): Use func_id_node,
2157 function_id_node, and pretty_function_id_node. Do not make
2158 __func__ visible at file scope.
2159 * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
2160 CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
2161 (function_id_node, pretty_function_id_node, func_id_node): New
2162 macros.
2163 * c-decl.c (init_decl_processing): Initialize function_id_node,
2164 pretty_function_id_node, and func_id_node.
2165 (c_make_fname_decl): Correct comment.
2166
2167 * tree.h (struct tree_identifier): Constify pointer member.
2168
2169 * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
2170 * c-pragma.h (struct weak_syms): Constify name and value members.
2171 (add_weak): Constify arguments.
2172
2173 * calls.c (special_function_p): Constify a char *.
2174 (expand_call): Remove variable which is initialized and then
2175 never used.
2176 * dependence.c (struct def_use, struct induction, struct subscript):
2177 Constify 'variable' member.
2178 (get_low_bound, have_induction_variable): Constify char * argument.
2179 (find_induction_variable): Add braces to avoid dangling else.
2180 (classify_dependence): Constify char * arrays.
2181 * profile.c (output_func_start_profiler): Constify a char *.
2182 * stor-layout.c (finalize_record_size): Constify a char *.
2183 * tree.c (is_attribute_p): Constify a char *.
2184 * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
2185
2186 * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
2187 for comprehensibility. Do not call get_identifier if we did
2188 not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to
2189 create temporary string constants, not ggc_alloc_string. No
2190 need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const
2191 char * to hold IDENTIFIER_POINTERs.
2192
2193 2000-08-29 Richard Henderson <rth@cygnus.com>
2194
2195 * config/ia64/ia64.md (muldi3): Use grfr_register_operand
2196 for the inputs.
2197
2198 2000-08-29 Richard Henderson <rth@cygnus.com>
2199
2200 * reload.c (push_secondary_reload): Allow class == reload_class
2201 if we're using a reload_in/out pattern.
2202
2203 * config/ia64/ia64.md (reload_inti): Use a TImode scratch. Use
2204 the half that does not conflict with the reload register.
2205 (reload_outti): Likewise.
2206
2207 2000-08-29 Kazu Hirata <kazu@hxi.com>
2208
2209 * reload.c: Fix formatting.
2210
2211 * stmt.c: Fix formatting.
2212
2213 * gcc.c: Fix formatting.
2214
2215 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
2216
2217 * flags.h (time_report, mem_report): New global flags.
2218 * toplev.c: Define time_report and mem_report.
2219 (f_options): Add -ftime-report and -fmem-report.
2220 (compile_file): Turn on time_report if quiet_flag is off.
2221 Call ggc_print_statistics at very end if mem_report is on.
2222 * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
2223
2224 * ggc-common.c (ggc_print_statistics): Rename to
2225 ggc_print_common_statistics; all callers changed. Scale
2226 quantities above 10K to kilobytes and above 10M to megabytes.
2227 * ggc-page.c (ggc_page_print_statistics): Rename to
2228 ggc_print_statistics. Report memory consumed by internal data
2229 structures for each allocation bucket. Scale quantities above
2230 10K to kilobytes and above 10M to megabytes.
2231 * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
2232 Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
2233 Define tally_leaves always.
2234 (ggc_print_statistics): New function.
2235 * ggc.h: Adjust for renamed functions.
2236
2237 Wed Aug 30 00:11:42 2000 Denis Chertykov <denisc@overta.ru>
2238
2239 * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
2240 output_movsisf instead of which_alternative.
2241
2242 * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
2243
2244 Tue Aug 29 22:29:58 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
2245
2246 * config/avr/avr-protos.h: (avr_output_ascii) Removed.
2247 (avr_progmem_p): New prototype.
2248 (output_movsisf): Prototype declaration changed.
2249 (output_movqi): New prototype.
2250 (output_movhi): New prototype.
2251 (call_insn_operand): Likewise.
2252 (final_prescan_insn): Likewise.
2253 (avr_simplify_comparision_p): Likewise.
2254 (avr_normalize_condition): Likewise.
2255 (compare_eq_p): Likewise.
2256 (out_shift_with_cnt): Likewise.
2257 (const_int_pow2_p): Likewise.
2258 (output_reload_inhi): Prototype declaration changed.
2259
2260 * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
2261 (ldi_reg_rtx): New. rtx for r31.
2262 (avr_init_stack): Initialize as "__stack".
2263 (function_prologue): Use it.
2264 Replace all TARGET_ENHANCED with AVR_ENHANCED.
2265 (avr_mcu_name): Initialize as "avr2".
2266 (avr_enhanced_p, avr_mega_p): New variables.
2267 (mcu_types, avr_override_options): Handle all known MCU types.
2268 Also handle avr1 (only preprocess, assemble and link).
2269 (print_operand): Using of `%K' in output template removed.
2270 (out_movqi_r_mr): Optimized.
2271 (out_movhi_r_mr): Likewise.
2272 (output_movqi): New function.
2273 (output_movhi): Likewise.
2274 (out_movsi_r_mr): Optimized.
2275 (output_movsisf): Compute insn length for `adjust_insn_length'
2276 (out_movqi_mr_r): Optimized.
2277 (out_movhi_mr_r): Optimized.
2278 (adjust_insn_length): Use output_movsisf, output_movqi,
2279 output_movhi for insn length adjusting.
2280 (reg_unused_after): Use dead_or_set_p.
2281 (preferred_reload_class): Now havn't any restriction.
2282 (reg_was_0): New function.
2283 (io_address_p): Likewise.
2284 (const_int_pow2_p): Likewise.
2285 (output_reload_inhi): Likewise.
2286 (output_reload_insisf): Likewise.
2287
2288 * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
2289 (LIB_SPEC): Use -lc for all supported devices.
2290 (LIBGCC_SPEC): Use -lgcc for all supported devices.
2291 (AVR_MEGA): Define as avr_mega_p.
2292 (AVR_ENHANCED): New, define as avr_enhanced_p.
2293 (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
2294 (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
2295 (CRT_BINUTILS_SPECS): Handle all known MCU types.
2296 Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
2297 (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
2298 (ASM_SPEC): Pass -mmcu=... to the assembler.
2299 Change all -DAVR_* to -D__AVR_*__.
2300 (INIT_TARGET_OPTABS), config/avr/libgcc.S:
2301 Rename library functions to start with two underscores.
2302 (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
2303 alignment.
2304 (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
2305 (SUPPORTS_WEAK): Likewise.
2306 (LDI_REG_REGNO): New. Register r31 will be used as temporary
2307 register for loading constants to r0-r14.
2308
2309 * config/avr/avr.md: Replace all TARGET_ENHANCED with
2310 AVR_ENHANCED.
2311 (*mov_r_sp): Removed. Handled by output_movhi.
2312 (*mov_sp_r): Likewise.
2313 (*mov_sp_r_no_interrupts): Likewise
2314 (*mov_sp_r_tiny): Likewise.
2315 (*movqi): Use output_movqi.
2316 (*reload_inqi): New.
2317 (*movhi): Use output_movhi.
2318 (*reload_inhi): New.
2319 (*negsi2): Optimized.
2320 (*negsf2): Likewise.
2321 Added peepholes (define_peephole2) for loading constants to r0-r14
2322 and for using `cpse' command.
2323
2324 * config/avr/libgcc.S: Rename library functions to start with two
2325 underscores.
2326 Add support for enhanced core.
2327 (_moqhi3): Fix typo, now _modqi3.
2328 (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
2329 (__prologue_saves__): Remove test for stack adjust by 0.
2330 (__tablejump__): New.
2331
2332 * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
2333 Add multilib support.
2334
2335 Tue Aug 29 15:17:54 EDT 2000 John Wehle (john@feith.com)
2336
2337 * loop.c (prescan_loop): Don't check unknown_address_altered
2338 when deciding if insert_loop_mem is safe. Add BLKmode MEMs
2339 to loop_store_mems as necessary.
2340 (loop_invariant_p): Don't check unknown_address_altered
2341 or unknown_constant_address_altered.
2342
2343 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
2344
2345 * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
2346
2347 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
2348
2349 * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
2350 print just the filename.
2351 * cpplex.c (_cpp_run_directive): Add additional argument, the
2352 name to give the synthetic buffer. This defaults to
2353 translated "<command line>".
2354 * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
2355 Adjust to match.
2356 (_cpp_define_builtin): New function.
2357 * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
2358 * cpphash.h: Update prototypes.
2359
2360 * tradcpp.c (main): Process -D and -U simultaneously, in the
2361 order they appeared on the command line.
2362
2363 2000-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2364
2365 * c-decl.c (define_label): Call warning_with_file_and_line and
2366 error_with_file_and_line instead of plain warning or error.
2367
2368 * c-parse.in (label): Use save_filename/save_lineno to ensure
2369 correct values for calls to define_label.
2370
2371 2000-08-29 Mark Mitchell <mark@codesourcery.com>
2372
2373 * calls.c (expand_call): Don't create a VAR_DECL just to throw it
2374 away.
2375 * expr.c (expand_expr, case TARGET_EXPR): Don't call
2376 mark_addressable.
2377 * tree.h (get_file_function_name): Remove two duplicate
2378 declarations.
2379
2380 2000-08-28 Kazu Hirata <kazu@hxi.com>
2381
2382 * tree.c: Fix formatting.
2383
2384 * xcoffout.c: Fix formatting.
2385
2386 2000-08-28 Jason Merrill <jason@redhat.com>
2387
2388 * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
2389
2390 2000-08-28 Daniel Berlin <dberlin@redhat.com>
2391
2392 * dwarf2out.c (dwarf2out_finish): Don't bother calling
2393 break_out_includes if it won't do anything.
2394
2395 2000-08-28 Richard Henderson <rth@cygnus.com>
2396
2397 * reload.c (push_secondary_reload): Revert 2000-08-16 change.
2398 (find_reloads): Likewise.
2399 * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
2400 (reload_inhi): Likewise.
2401
2402 2000-08-28 Richard Henderson <rth@cygnus.com>
2403
2404 * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
2405 (call_insn_operand): Don't expect a surrounding mem.
2406 (constant_call_address_operand): Likewise.
2407 * config/i386/i386.h (PREDICATE_CODES): Update.
2408 * config/i386/i386.md (call patterns): Move the match_operand
2409 for the call destination inside the mem.
2410
2411 2000-08-28 Richard Henderson <rth@cygnus.com>
2412
2413 * local-alloc.c (requires_inout): Don't use reserved range for
2414 EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
2415 * recog.c (asm_operand_ok): Likewise.
2416 (preprocess_constraints, constrain_operands): Likewise.
2417 * regclass.c (record_reg_classes): Likewise.
2418 * reload.c (find_reloads): Likewise.
2419 * reload1.c (maybe_fix_stack_asms): Likewise.
2420 (reload_cse_simplify_operands): Likewise.
2421 * stmt.c (expand_asm_operands): Likewise.
2422
2423 * md.texi: Update constraints documentation.
2424 * tm.texi (EXTRA_CONSTRAINT): Update.
2425
2426 2000-08-28 Daniel Berlin <dberlin@redhat.com>
2427
2428 * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
2429 (print_die): If we don't know the offset of the
2430 target die, try the symbol. Add a trailing newline.
2431 (reverse_all_dies): New fn.
2432 (dwarf2out_finish): Call it.
2433 (break_out_includes): Reorganize for clarity.
2434 (add_sibling_attributes): Don't call reverse_die_lists.
2435 (output_comp_unit): Rename from output_comdat_comp_unit. Use for
2436 primary CU, too.
2437 * flags.h: Add flag_eliminate_dwarf2_dups.
2438 * toplev.c (f_options): Support -feliminate-dwarf2-dups.
2439
2440 2000-08-28 Jason Merrill <jason@redhat.com>
2441
2442 * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
2443 * dwarf2out.c: #include "md5.h".
2444 (DIE_LABEL_PREFIX): New macro.
2445 (dw_val_struct): Add 'external' flag to val_die_ref.
2446 (add_AT_die_ref, AT_ref): Adjust.
2447 (AT_ref_external, set_AT_ref_external): New fns.
2448 (build_abbrev_table): Call set_AT_ref_external.
2449 (value_format): Call AT_ref_external.
2450 (die_struct): Add die_symbol field.
2451 (new_die): Clear it.
2452 (dwarf_tag_name): Handle BINCL/EINCL.
2453 (dwarf2out_start_source_file): Add BINCL DIE.
2454 (dwarf2out_end_source_file): Add EINCL DIE.
2455 (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
2456 (loc_checksum, attr_checksum, die_checksum): New fns.
2457 (is_type_die, is_comdat_die, is_symbol_die): New fns.
2458 (compute_section_prefix, assign_symbol_names): New fns.
2459 (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
2460 (output_die): Call output_die_symbol and AT_ref_external.
2461 (output_comdat_comp_unit): New fn, split out from...
2462 (dwarf2out_finish): ...here. Also call add_sibling_attributes for
2463 secondary CUs.
2464 (output_pubnames, output_aranges): Abort if we see entries from
2465 secondary CUs.
2466 * toplev.h: Declare file_name_nondirectory.
2467 * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
2468 (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
2469 (debug_start_source_file): Call dwarf2out_start_source_file
2470 regardless of debug verbosity.
2471 (debug_end_source_file): Similarly.
2472 * tree.h: Declare clean_symbol_name.
2473 * tree.c (clean_symbol_name): Split out from...
2474 (get_file_function_name_long): ...here.
2475
2476 * dwarf2out.c (new_loc_descr): Use calloc.
2477 (splice_child_die): Remove the die from the right parent.
2478 (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
2479
2480 Mon Aug 28 19:02:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2481
2482 * toplev.c (decode_g_option): Don't give warning for unknown -g
2483 option; return 0 instead.
2484 (main): If -g option is not recognized by front end or
2485 language-independent code, give warning.
2486
2487 2000-08-28 Greg McGary <greg@mcgary.org>
2488
2489 * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
2490 * config/i386/i386.c (ix86_expand_compare): Remove `static'.
2491 * config/i386/i386.md (trap, conditional_trap): New insn & expand.
2492
2493 2000-08-27 Greg McGary <greg@mcgary.org>
2494
2495 * cpplex.c (parse_string): Don't look for backslash
2496 before first char in `namebuf'.
2497 * loop.c (strength_reduce): Skip NOTEs.
2498
2499 2000-08-27 Jason Merrill <jason@redhat.com>
2500
2501 * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
2502 DECL_EXTERNAL on a local extern. Don't set DECL_IGNORED_P or
2503 TREE_ASM_WRITTEN, either.
2504 (finish_decl): Adjust.
2505
2506 2000-08-28 Philipp Thomas <pthomas@suse.de>
2507
2508 * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
2509 they have been incorporated into the gettext CVS. Change the text to
2510 reflect the current status of NLS. Add instructions for accessing
2511 the gettext CVS and add the patch from Martin v. Loewis.
2512
2513 2000-08-27 Geoff Keating <geoffk@cygnus.com>
2514
2515 * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
2516 by using gen_lowpart_common.
2517 (movdi_internal64+6): Likewise.
2518
2519 2000-08-26 Alexandre Oliva <aoliva@redhat.com>
2520
2521 * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
2522 Document.
2523
2524 * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
2525 numbers to the ranges used by GDB.
2526
2527 2000-08-25 Richard Henderson <rth@cygnus.com>
2528
2529 * config/ia64/ia64.h (struct machine_function): Add n_varargs.
2530 * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
2531 (ia64_expand_prologue): Likewise.
2532 (ia64_setup_incoming_varargs): Set it. Properly skip the current
2533 argument for stdargs.
2534
2535 2000-08-25 Jason Merrill <jason@redhat.com>
2536
2537 * integrate.c (expand_inline_function): Pull out the original decl.
2538
2539 2000-08-25 Jim Wilson <wilson@cygnus.com>
2540
2541 * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
2542
2543 * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
2544
2545 2000-08-25 Greg McGary <greg@mcgary.org>
2546
2547 * flow.c (dump_edge_info): Use ARRAY_SIZE.
2548 * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
2549
2550 2000-08-25 Richard Earnshaw <rearnsha@arm.com>
2551
2552 * arm.h (STRUCT_VALUE): Define to 0, not NULL.
2553
2554 Fri Aug 25 12:52:49 EDT 2000 John Wehle (john@feith.com)
2555
2556 * i386.c (ix86_find_base_term): New.
2557 * i386-protos.h (ix86_find_base_term): Prototype.
2558 * i386.h (FIND_BASE_TERM): Define.
2559 * alias.c (find_base_term): Use it.
2560 * tm.texi (FIND_BASE_TERM): Document it.
2561
2562 * alias.c (true_dependence, write_dependence_p): Unchanging
2563 memory can't conflict with non-unchanging memory.
2564
2565 * alias.c (memrefs_conflict_p): A BLKmode reference
2566 to a symbol (or CONST_INT address) always conflicts
2567 with a reference to another symbol.
2568
2569 2000-08-25 Joseph S. Myers <jsm28@cam.ac.uk>
2570
2571 * c-common.c (time_char_table): Don't allow width and flags with
2572 "z" format.
2573
2574 2000-08-25 Jakub Jelinek <jakub@redhat.com>
2575
2576 * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
2577 way as LT and LTU when the second operand has 0 in low word.
2578
2579 2000-08-26 Michael Hayes <mhayes@cygnus.com>
2580
2581 * basic-block.h (struct loop): Rename `exits' field to
2582 `exit_edges'. Add `entry_edges' and `num_entries' fields.
2583
2584 * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
2585 (flow_loop_entry_edges_find): Add.
2586 (flow_edge_list_print): Rename from flow_exits_print.
2587 (flow_loops_find): Call flow_loop_entry_edges_find.
2588 (flow_loop_dump): Dump entry_edges list.
2589 (flow_loops_free): Free entry_edges.
2590
2591 2000-08-26 Michael Hayes <mhayes@cygnus.com>
2592
2593 * loop.c (loop_dump_aux, debug_loop): New functions.
2594 (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
2595
2596 * flow.c (flow_loops_dump): Add callback parameter.
2597 (flow_loop_dump): Add callback parameter and call it. Move
2598 loop note debugging code to loop_dump_aux.
2599
2600 * basic-block.h (flow_loop_dump): Add callback parameter
2601 (flow_loops_dump): Likewise.
2602
2603 * toplev.c (rest_of_compilation): Add NULL callback function pointer
2604 to call to flow_loops_dump.
2605
2606 2000-08-26 Michael Hayes <mhayes@cygnus.com>
2607
2608 * loop.c (count_loop_regs_set): Replace start and end arguments
2609 with loop argument. All callers udated.
2610
2611 2000-08-26 Michael Hayes <mhayes@cygnus.com>
2612
2613 * loop.c (constant_high_bytes): Delete.
2614
2615 2000-08-26 Michael Hayes <mhayes@cygnus.com>
2616
2617 * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
2618 and NOTE_INSN_LOOP_VTOP to...
2619 (find_and_verify_loops) ...here.
2620
2621 Fri Aug 25 04:21:13 2000 Alexandre Oliva <aoliva@redhat.com>
2622
2623 * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
2624 (fini_dummy, init_dummy): Use it.
2625
2626 Fri 25-Aug-2000 08:03:27 BST Neil Booth <NeilB@earthling.net>
2627
2628 * cpplex.c (is_macro_disabled): Caller has already checked
2629 that we're not a preprocessed file.
2630
2631 2000-08-24 Mark Mitchell <mark@codesourcery.com>
2632
2633 * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
2634 (c-iterate.o): Remove target.
2635 * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
2636 * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
2637 (finish_decl): Don't handle iterators.
2638 (grokdeclarator): Likewise.
2639 * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
2640 * gcc/c-gperf.h: Regenerated.
2641 * gcc/c-iterate.c: Removed.
2642 * gcc/c-lex.c (init_lex): Don't handle iterators.
2643 * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
2644 (compstmt_primary_start): Remove push_iterator_stack call.
2645 (stmt): Don't allow iterator statements. Replace iterator_expand
2646 with expand_expr_stmt.
2647 (all_iter_stmt): Remove.
2648 (all_iter_stmt_simple): Likewise.
2649 (all_iter_stmt_with_decl): Likewise.
2650 * gcc/c-tree.h (ITERATOR_P): Remove.
2651 (ITERATOR_BOUND_P): Likewise.
2652 (init_iterators): Remove declaration.
2653 (iterator_expand): Likewise.
2654 (iterator_for_loop_start): Likewise.
2655 (iterator_for_loop_end): Likewise.
2656 (iterator_for_loop_record): Likewise.
2657 (push_iterator_stack): Likewise.
2658 (pop_iterator_stack): Likewise.
2659 * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
2660 (readonly_warning): Likewise.
2661 * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
2662
2663 2000-08-24 Jim Wilson <wilson@cygnus.com>
2664
2665 * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
2666 Copy type in a TYPE_DECL, just like pushdecl does.
2667
2668 2000-08-24 Richard Henderson <rth@cygnus.com>
2669
2670 * toplev.c (main): Enable flag_reorder_blocks at -O2.
2671
2672 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
2673
2674 * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
2675 asked for one page, allocate GGC_QUIRE_SIZE of them and put
2676 the extras on the free list.
2677 (release_pages): Clean up.
2678 (ggc_set_mark): Don't adjust G.allocated here...
2679 (sweep_pages): ... do it here.
2680
2681 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
2682
2683 * cppfiles.c (read_include_file): Rearrange initializations.
2684
2685 2000-08-24 Richard Henderson <rth@cygnus.com>
2686
2687 * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
2688
2689 * config/ia64/ia64-protos.h: Update.
2690 * config/ia64/ia64.c (gr_register_operand): New.
2691 (fr_register_operand, grfr_register_operand): New.
2692 (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
2693 (grfr_reg_or_8bit_operand): New.
2694 (gr_reg_or_0_operand): Rename from reg_or_0_operand and
2695 use gr_register_operand.
2696 (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
2697 (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
2698 (gr_reg_or_8bit_and_adjusted_operand): Likewise.
2699 (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
2700 (fr_reg_or_fp01_operand): Likewise.
2701 (not_postinc_memory_operand): New.
2702 (ia64_split_timode): Remove unused variables.
2703 (rtx_needs_barrier): Check arguments to cmpxchg.
2704 (builtin_description): Remove.
2705 (bdesc_2argsi, bdesc_2argdi): Remove.
2706 (ia64_init_builtins): Declare all builtins directly.
2707 (ia64_expand_fetch_and_op): Rewrite to be called from
2708 ia64_expand_builtin directly. Use expand_binop and co.
2709 (ia64_expand_op_and_fetch): Likewise.
2710 (ia64_expand_compare_and_swap): Likewise.
2711 (ia64_expand_binop_builtin): Remove.
2712 (ia64_expand_lock_test_and_set): New.
2713 (ia64_expand_lock_release): New.
2714 (ia64_expand_builtin): Use them.
2715 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
2716 (EXTRA_CONSTRAINT): Use it.
2717 (PREDICATE_CODES): Update.
2718 * config/ia64/ia64.md (*): Use gr_register_operand and co.
2719 (mf): Indicate that we set memory as well as use it.
2720 (fetchadd_acq_si): Show memory being modified as well.
2721 (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
2722 (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
2723 (lock_test_and_set_si, lock_test_and_set_di): Remove.
2724 (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
2725 (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
2726 (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
2727 (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
2728 (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
2729 (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
2730 (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
2731 (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
2732 * config/ia64/ia64intrin.h (*): Cast result to the appropriate
2733 return type. Pretty print definitions.
2734
2735 2000-08-24 Jim Wilson <wilson@cygnus.com>
2736
2737 * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
2738 we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
2739
2740 2000-08-24 Jason Merrill <jason@redhat.com>
2741
2742 * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
2743 AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
2744 (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
2745 get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
2746
2747 2000-08-24 Greg McGary <greg@mcgary.org>
2748
2749 * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
2750 and extendtab within their proper array boundaries.
2751 * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
2752 for the entire array.
2753
2754 * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
2755 * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
2756 * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
2757 * config/fr30/fr30.c (fr30_print_operand): Likewise.
2758 * config/i386/dgux.c (output_options): Likewise.
2759 * config/i386/dgux.h (ASM_FILE_START): Likewise.
2760 * config/m88k/m88k.c (output_options): Likewise.
2761 * config/m88k/m88k.h (ASM_FILE_START): Likewise.
2762 * config/mcore/mcore.c (mcore_output_inline_const_forced,
2763 layout_mcore_frame, handle_structs_in_regs): Likewise.
2764 * config/mips/mips.c (output_block_move): Likewise.
2765 * config/rs6000/rs6000.c (rs6000_override_options,
2766 rs6000_file_start): Likewise.
2767 * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
2768 * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
2769 * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
2770 * builtins.c (expand_builtin_setjmp): Likewise.
2771 * expr.c (safe_from_p): Likewise.
2772 * flow.c (life_analysis): Likewise.
2773 * fold-const.c (size_int_type_wide): Likewise.
2774 * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
2775 * genattrtab.c (make_length_attrs): Likewise.
2776 * genopinit.c (gen_insn): Likewise.
2777 * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
2778 * global.c (global_alloc): Likewise.
2779 * local-alloc.c (find_free_reg): Likewise.
2780 * mips-tdump.c (print_symbol): Likewise.
2781 * mips-tfile.c (parse_def, parse_input): Likewise.
2782 * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
2783 * stmt.c (expand_nl_goto_receiver): Likewise.
2784 * stor-layout.c (set_sizetype): Likewise.
2785 * varasm.c (decode_reg_name): Likewise.
2786 * toplev.c (decode_f_option, decode_W_option,
2787 set_target_switch, print_switch_values): Likewise.
2788 (NUM_ELEM): Remove macro.
2789 (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
2790
2791 2000-08-24 Greg McGary <greg@mcgary.org>
2792
2793 * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
2794 (MAIN_NAME_P, main_identifier_node): New macros.
2795 * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
2796 * c-decl.c (start_decl, grokdeclarator, start_function,
2797 store_parm_decls, finish_function): Use MAIN_NAME_P.
2798 * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
2799 * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
2800 * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
2801 * config/pdp11/pdp11.c (output_function_prologue): Likewise.
2802
2803 2000-08-24 Greg McGary <greg@mcgary.org>
2804
2805 * cppfiles.c (actual_directory): Don't write beyond `dir'
2806 when it contains "".
2807 * real.c (asctoeg): Stay within bounds of etens[][].
2808
2809 2000-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2810
2811 * dependence.c (dependence_string, direction_string,
2812 dump_one_node, dump_node_dependence): Hide unused identifiers.
2813 (get_low_bound, normalize_coefficients): Match definition to
2814 static prototype.
2815 (get_one_coefficient): Initialize variables `value0_is_idx' and
2816 `value1_is_idx'.
2817 (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
2818 (ziv_test): Delete variable `idx', use parameter `sub' instead.
2819 (direction_merge): Avoid automatic aggregate initialization.
2820 (have_dependence_p): Use `src' not `dest' to set `src_idx'.
2821 Initialize variables `dest_idx' and `src_idx'.
2822 (end_dependence_analysis): Avoid C89 style function definition.
2823
2824 2000-08-24 Joseph S. Myers <jsm28@cam.ac.uk>
2825
2826 * c-common.c (time_char_table): Don't allow width with %F.
2827 (check_format_info): Don't allow "Z" length with scanf.
2828
2829 2000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
2830
2831 * diagnostic.c (finish_diagnostic): Define.
2832 (output_do_printf): Use wrap_text instead of output_add_string.
2833 (default_print_error_function): Avoid embedded '\n'.
2834
2835 * diagnostic.h (flush_diagnostic_buffer): Declare.
2836
2837 2000-08-23 Alexandre Oliva <aoliva@redhat.com>
2838
2839 * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
2840
2841 2000-08-23 Hans-Peter Nilsson <hp@axis.com>
2842
2843 * Makefile.in (GCC_PASSES): Add specs.
2844
2845 2000-08-23 Jim Wilson <wilson@cygnus.com>
2846
2847 * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
2848 * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
2849 EHANDLER nor UHANDLER bit is set.
2850 (__get_except_table): Likewise.
2851
2852 2000-08-23 Nick Clifton <nickc@redhat.com>
2853
2854 * config/arm/lib1funcs.asm: Replace upper case condition codes
2855 with lower case versions.
2856
2857 * config/arm/arm.h (STRUCT_VALUE): Define.
2858 (STRUCT_VALUE_REGNUM): Delete.
2859
2860 2000-08-23 Zack Weinberg <zack@wolery.cumb.org>
2861
2862 * cpphash.h (IN_I): New flag for directive table.
2863 * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
2864 #pragma with IN_I.
2865 (_cpp_check_directive): If -fpreprocessed, execute directives
2866 marked with IN_I. Issue no warnings in this case.
2867 * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
2868
2869 2000-08-23 Joseph S. Myers <jsm28@cam.ac.uk>
2870
2871 * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
2872 %u.
2873 (check_format_info): Support printf 'I' flag; warn about it with
2874 -pedantic.
2875
2876 2000-08-23 Richard Earnshaw (rearnsha@arm.com)
2877
2878 * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
2879 barrier can't be ignored by the alias analysis code.
2880
2881 2000-08-12 Eli Zaretskii <eliz@is.elta.co.il>
2882
2883 * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
2884 works inside fixincl.
2885
2886 Wed Aug 23 04:55:48 2000 Alexandre Oliva <aoliva@redhat.com>
2887
2888 * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
2889 simplify_relational_operation() unless both operands are of
2890 VOIDmode.
2891 * cse.c (fold_rtx): Likewise.
2892
2893 Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com)
2894
2895 * rtlanal.c (rtx_unstable_p): The pic register is stable
2896 (within one function) and the actual rtx should be used
2897 when checking the registers.
2898 (rtx_addr_can_trap_p): Pic memory addresses can't trap.
2899
2900 * alias.c (true_dependence, write_dependence_p): Fix
2901 bug in previous patch.
2902
2903 * i386.c (ix86_GOT_alias_set): New.
2904 (legitimize_pic_address): Use it.
2905
2906 * rtlanal.c (rtx_unstable_p): An unchanging MEM is
2907 only stable if its address is stable.
2908 (rtx_varies_p): An unchanging MEM can't vary if
2909 its address doesn't vary.
2910
2911 2000-08-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2912
2913 * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
2914
2915 2000-08-22 J. David Anglin <dave@hiauly1.hia.nrc.ca>
2916
2917 * vax.h (ASM_SPEC): Pass `-J' to assembler.
2918 * x-vax-gcc: New file for bootstrapping with gcc.
2919 * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
2920 * configure.in: Use x-vax-gcc with gcc.
2921 * configure: Rebuilt.
2922
2923 Tue Aug 22 21:21:05 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2924
2925 * toplev.c (rest_of_compilation): Rebuild label notes after
2926 post-reload splitting pass if new labels have been created.
2927
2928 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
2929
2930 * diagnostic.h (output_buffer_state): New macro.
2931 * diagnostic.c (diagnostic_for_decl, sorry,
2932 default_print_error_function, output_do_verbatim,
2933 report_diagnostic, report_problematic_module): Use it.
2934 (wrap_text): Tweak.
2935 (output_format): Use wrap_text instead of maybe_wrap_text.
2936
2937 2000-08-22 Nick Clifton <nickc@redhat.com>
2938
2939 * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
2940 Common code for ARM divide and modulus functions.
2941 (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
2942 ARM_DIV_MOD_BODY.
2943 (FUNC_END): New macro: Common code at the end of the division and
2944 modulo functions.
2945 (THUMB_FUNCTION_START): New macro: Common code at the start of
2946 Thumb functions.
2947 (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
2948
2949 Tue Aug 22 20:34:52 2000 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2950
2951 * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
2952
2953 * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
2954 sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
2955 const0_rtx.
2956
2957 2000-08-22 Nick Clifton <nickc@redhat.com>
2958
2959 * config/arm/lib1funcs.asm (__umodsi3): Before performing any
2960 restorative additions, test for bottom bits of IP being set,
2961 rather than relying upon the RORs not matching.
2962 (__modsi3): Ditto.
2963
2964 2000-08-22 David Edelsohn <edelsohn@gnu.org>
2965
2966 * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
2967 text_section() as appropriate instead of emitting text csect
2968 pseudo-op directly.
2969 (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
2970 (UNIQUE_SECTION): Define macro.
2971 (ASM_OUTPUT_SECTION_NAME): Define macro.
2972 * rs6000.c (rs6000_override_options): Disable -ffunction-sections
2973 on AIX if debugging and -fdata-sections always.
2974
2975 2000-08-22 Steven King <sxking@uswest.net>
2976
2977 * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
2978 machinery.
2979 (LDBL_MAX): Same here.
2980
2981 2000-08-22 Richard Henderson <rth@cygnus.com>
2982
2983 * flow.c (tidy_fallthru_edge): Update b->end properly.
2984
2985 2000-08-22 Stan Cox <scox@redhat.com>
2986
2987 * Makefile.in (OBJS): Add dependence.o.
2988 * dependence.c: New file.
2989
2990 2000-08-22 Alexandre Oliva <aoliva@redhat.com>, John David Anglin <dave.anglin@nrc.ca>
2991
2992 * calls.c (check_sibcall_argument_overlap_1): Adjust for
2993 ARGS_GROW_DOWNWARD.
2994 (check_sibcall_argument_overlap): Likewise.
2995
2996 2000-08-22 Alexandre Oliva <aoliva@redhat.com>
2997
2998 * invoke.texi (SH Options): Document -m4-nofpu,
2999 -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
3000 -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
3001
3002 2000-08-22 Joseph S. Myers <jsm28@cam.ac.uk>
3003
3004 * c-common.c (check_format_info): Give the 'some locales' warning
3005 for strftime %Ey rather than the unconditional 'only last 2 digits
3006 of year' one.
3007
3008 2000-08-22 Richard Henderson <rth@cygnus.com>
3009
3010 * alias.c (init_alias_analysis): Do not register
3011 struct_value_incoming_rtx or static_chain_rtx as pointing
3012 to stack memory.
3013
3014 Tue Aug 22 01:44:43 2000 Jeffrey A Law (law@cygnus.com)
3015
3016 * protoize.c (munge_compile_params): Fix typo and formatting buglets.
3017
3018 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
3019
3020 * diagnostic.h (report_problematic_module): Declare.
3021 * diagnostic.c (report_problematic_module): New function.
3022 (report_error_function): Tweak.
3023
3024 Tue Aug 22 02:31:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3025
3026 * stmt.c (expand_goto_internal, fixup_gotos): Only check
3027 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
3028
3029 2000-08-21 Richard Henderson <rth@cygnus.com>
3030
3031 * flow.c (calculate_global_regs_live): Mark frame pointer live
3032 everywhere before reload.
3033
3034 2000-08-21 Jim Wilson <wilson@cygnus.com>
3035
3036 * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
3037 INTEL_EXTENDED_IEEE_FORMAT.
3038 (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support. Unconditionally
3039 clear last two bytes of output FP value.
3040
3041 2000-08-21 Graham Stott <grahams@cygnus.co.uk>
3042
3043 * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
3044
3045 2000-08-21 Jakub Jelinek <jakub@redhat.com>
3046
3047 * unroll.c (loop_find_equiv_value): If ret is modified between
3048 insn and loop_start, ret might not be equivalent to reg.
3049
3050 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
3051
3052 * c-common.c (init_dollar_format_checking,
3053 maybe_read_dollar_number, finish_dollar_format_checking): New
3054 functions.
3055 (dollar_arguments_used, dollar_arguments_count,
3056 dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
3057 New variables.
3058 (check_format_info): Support $ formats for scanf and printf width
3059 and precision. Always increment format_chars to advance past the
3060 '*' of precision, not just when the format parameters are
3061 available to check.
3062
3063 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3064
3065 * mips.c (block_move_loop, expand_block_move,
3066 function_arg_partial_nregs, save_restore_insns, function_prologue,
3067 mips_expand_prologue, RA_MASK): Avoid using the `U' integer
3068 constant suffix.
3069 (function_arg_advance, function_arg): Match argument to format
3070 specifier `%p'.
3071
3072 2000-08-21 Nix <nix@esperi.demon.co.uk>
3073
3074 * gcc.c (do_spec_1): Implement %j spec flag.
3075 Remove dead comment.
3076
3077 * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
3078 * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
3079 * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
3080 * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
3081
3082 * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
3083 writable) instead of hardcoded value.
3084
3085 * toplev.c (compile_file): Output to a file even if -fsyntax-only.
3086
3087 * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
3088 MKTEMP_EACH_FILE.
3089
3090 * gcc.c (cc1_options): Do not process -o or run the assembler if
3091 -fsyntax-only.
3092 * objc/lang-spec.h: Likewise.
3093
3094 2000-08-21 Eli Zaretskii <eliz@is.elta.co.il>
3095
3096 * fixinc/fixincl.c (fix_with_system): Pipe the output of
3097 "external" fixes through `cat', to avoid truncating the input
3098 file by redirection.
3099
3100 2000-08-21 Jakub Jelinek <jakub@redhat.com>
3101
3102 * config/i386/i386.md (lea_general_1): Copy insn condition to split
3103 condition.
3104 (lea_general_2, lea_general_3): Likewise.
3105
3106 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3107
3108 * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
3109 warnings to user code.
3110
3111 * c-lex.c (readescape, yylex): Likewise.
3112
3113 * c-typeck.c (store_init_value, process_init_element): Likewise
3114 (c_expand_start_case): Format.
3115
3116 2000-08-18 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
3117
3118 * mips/linux.h (LINK_SPEC): Use %(endian_spec).
3119
3120 * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
3121 and linker_endian_spec to endian_spec.
3122 (ENDIAN_SPEC): Add %{EB} and %{EL}.
3123 (LINK_SPEC): Remove %{EB} and %{EL}.
3124 (ASM_SPEC): Likewise. Use %(endian_spec).
3125
3126 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
3127
3128 * c-tree.h (flag_hosted): Move declaration from here...
3129 * c-common.h (flag_hosted): ... to here.
3130 (flag_noniso_default_format_attributes): New declaration.
3131 * c-decl.c (flag_noniso_default_format_attributes): New variable.
3132 (c_decode_option): Set it appropriately for options choosing
3133 language standard variant.
3134 * c-common.c (init_function_format_info): Only provide default
3135 format attributes if flag_hosted. Only provide the gettext
3136 formats if flag_noniso_default_format_attributes. Update
3137 comments.
3138 (check_format_info): Disable treatment of %a as a scanf flag in
3139 C99 mode.
3140
3141 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
3142
3143 * c-common.c (scan_char_table): Add 'w' to flags for all formats
3144 except 'n'.
3145 (check_format_info): Set 'wide' for scanf format widths. Warn for
3146 a zero scanf width. Make the check for writing into a constant
3147 object at the first level of indirection; at later levels, warn if
3148 any type qualifiers are encountered.
3149
3150 Mon Aug 21 07:41:12 2000 Jeffrey A Law (law@cygnus.com)
3151
3152 * reload.c (reload_inner_reg_of_subreg): New function broken out of
3153 push_reload.
3154 (push_reload): Use reload_inner_reg_of_subreg.
3155 (combine_reloads): Do not combine reloads if the input reload
3156 is a SUBREG in which the inner part will need reloading.
3157
3158 * global.c (global_alloc): Avoid passing dumpfile argument to
3159 reload routines.
3160 * toplev.c (rest_of_compilation): Likewise.
3161 * reload.h (reload): Remove dumpfile argument. Callers changed.
3162 (debug_reload, debug_reload_to_stream): Move prototypes here.
3163 * rtl.h (reload): Remove dumpfile argument.
3164 * reload.c (debug_reload): Remove prototype.
3165 (debug_reload_to_stream): Likewise.
3166 * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
3167 instead.
3168
3169 2000-08-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3170
3171 * diagnostic.c (context_as_prefix): Export.
3172 (need_error_newline): Remove.
3173 (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
3174 (error_module_changed, record_last_error_module,
3175 error_function_changed, record_last_error_function): New functions.
3176 (initialize_diagnostics): Default intialize
3177 lang_diagnostic_starter, lang_diagnostic_finalizer.
3178 (init_output_buffer): Tweak.
3179 (file_name_as_prefix): New function.
3180 (announce_function, default_print_error_function,
3181 report_error_function, set_diagnostic_context): Tweak.
3182
3183 2000-08-21 Richard Earnshaw <rearnsha@arm.com>
3184
3185 * flow.c (init_propagate_block_info): Handle SUBREG in a jump
3186 condition expression.
3187
3188 2000-08-20 Richard Henderson <rth@cygnus.com>
3189
3190 * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
3191
3192 2000-08-20 Zack Weinberg <zack@wolery.cumb.org>
3193
3194 * cppinit.c (cpp_init): Set global flag when called.
3195 (cpp_reader_init): Bomb out if cpp_init hasn't been called.
3196
3197 Sun Aug 20 01:41:35 2000 Dennis Chernoivanov <cdi@sparc.spb.su>
3198
3199 * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
3200 before `process_directive' so that newlines won't be missed
3201 for directives.
3202 (cpp_printf): Increment `print->lineno' when newline is emitted.
3203
3204 * cppmain.c (cb_ident): Likewise.
3205 (cb_define): Likewise.
3206 (cb_undef): Likewise.
3207 (cb_include): Likewise.
3208 (cb_def_pragma): Likewise.
3209 (dump_macros_helper): Likewise.
3210
3211 2000-08-20 Richard Henderson <rth@cygnus.com>
3212
3213 * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
3214 assigned before a loop.
3215
3216 * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
3217 (ashrsi3, lshrsi3): Likewise.
3218
3219 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
3220
3221 * c-lang.c: #include diagnostic.h
3222 (c_tree_printer): New function.
3223 (lang_init): Initialize lang_printer.
3224
3225 * Makefile.in (c-lang.o): Depends on diagnostic.h
3226
3227 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
3228
3229 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
3230
3231 * diagnostic.c (default_diagnostic_starter,
3232 default_diagnostic_finalizer): New functions.
3233 (diagnostic_for_asm, diagnostic_for_decl): Tweak.
3234 (pedwarn, pedwarn_with_file_and_line, error,
3235 error_with_file_and_line, fatal, warning,
3236 warning_with_file_and_line): Adjust call to report_diagnostic.
3237 (report_diagnostic): Rework.
3238 (set_diagnostic_context): New function.
3239
3240 * diagnostic.h (struct diagnostic_context): New data structure.
3241 (diagnostic_message, diagnostic_argument_list,
3242 diagnostic_file_location, diagnostic_line_location,
3243 diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
3244 diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
3245 (set_diagnostic_context): Declare.
3246 (report_diagnostic): Change prototype.
3247
3248 Sun 20-Aug-2000 09:25:45 BST Neil Booth <NeilB@earthling.net>
3249
3250 * fix-header.c (main): Initialize cpplib.
3251
3252 2000-08-19 Michael Meissner <meissner@redhat.com>
3253
3254 * ifcvt.c (find_if_block): Do not assume that a THEN block has any
3255 instructions in it before checking for indirect jumps.
3256
3257 * ifcvt.c (find_if_block): Do not consider a THEN block that ends
3258 in a indirect jump as a potential for conditional execution.
3259
3260 * d30v.h (d30v_init_expanders): Don't declare here.
3261 * d30v-protos.h (d30v_init_expanders): Declare here with a valid
3262 prototype.
3263
3264 Sat 19-Aug-2000 21:11:45 BST Neil Booth <NeilB@earthling.net>
3265
3266 * cpp.texi: Add @section for assertions.
3267
3268 Sat Aug 19 12:37:08 EDT 2000 John Wehle (john@feith.com)
3269
3270 * loop.c (scan_loop): Use CONST_CALL_P instead of
3271 checking for REG_LIBCALL / REG_RETVAL.
3272
3273 Sat Aug 19 09:18:47 2000 Jeffrey A Law (law@cygnus.com)
3274
3275 * reload1.c (reload_as_needed): Accept dumpfile argument,
3276 pass it to emit_reload_insns.
3277 (emit_reload_insns): Add new dumpfile argument. If non-null
3278 then dump the reloads for each insn into the dumpfile.
3279 (reload): Pass dumpfile to reload_as_needed.
3280
3281 * invoke.texi: Clean up linux-gnu vs linux comments.
3282
3283 2000-08-19 Richard Henderson <rth@cygnus.com>
3284
3285 * config/ia64/ia64.c (reg_or_5bit_operand): New.
3286 (ia64_depz_field_mask): New.
3287 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
3288 (PREDICATE_CODES): Update.
3289 * config/ia64/ia64.md: Update commentary.
3290 (depz_internal): New.
3291 (ashlsi3): Implement directly.
3292 (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
3293 (ashldi3): Use shladd.
3294 * config/ia64/ia64-protos.h: Update.
3295
3296 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
3297
3298 * toplev.c (independent_decode_option): Always process -g.
3299 Remove third argument, now unused. Adjust caller to match.
3300
3301 2000-08-18 Richard Henderson <rth@cygnus.com>
3302
3303 * combine.c (make_compound_operation): Break after creating
3304 the extraction.
3305
3306 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
3307
3308 * cpplib.c (cpp_register_pragma_space): Just return if the
3309 namespace is already registered.
3310
3311 2000-08-18 Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton <nickc@redhat.com>
3312
3313 * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
3314 constant amount. Do not generate ROTL instruction.
3315
3316 Fri Aug 18 16:22:20 2000 Alexandre Oliva <aoliva@redhat.com>
3317
3318 * config/sh/elf.h: Do not include sh/sh.h.
3319 * config/sh/rtems.h: Likewise.
3320 * config/sh/rtemself.h: Do not include sh/elf.h.
3321 * configure.in: Get them included with `tm_file's.
3322 * configure: Rebuilt.
3323
3324 * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
3325 * config/sh/sh.c (fpscr_set_from_mem): Use them.
3326
3327 Fri Aug 18 14:23:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3328
3329 * stor-layout.c (compute_record_type): Don't use mode of single
3330 field as mode of record if not integer mode of same type.
3331
3332 * regmove.c (perhaps_ends_bb_p): New function.
3333 (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
3334 (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
3335 (fixup_match_1): Likewise.
3336 (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
3337 avoid signed/unsigned warnings.
3338
3339 * function.c (fixup_var_refs_1, case MEM): Update CODE after
3340 updating X.
3341
3342 Fri 18-Aug-2000 18:33:45 BST Neil Booth <NeilB@earthling.net>
3343
3344 * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
3345 (_cpp_trigraph_map): Declaration moved from cpplex.c
3346
3347 * cppinit.c: Define _cpp_trigraph_map. Use UCHAR_MAX + 1
3348 instead of 256. Use consistent test for designated initializers.
3349 (cpp_init): Initialize trigraph_map.
3350 (initialize_standard_includes, parse_option): Use memcmp
3351 instead of strncmp.
3352
3353 * cpplex.c (init_trigraph_map): Remove.
3354 (trigraph_ok, trigraph_replace, lex_line): Refer to
3355 _cpp_trigraph_map.
3356
3357 * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
3358 (do_unassert): Remove unused "next" local.
3359
3360 * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
3361
3362 2000-08-18 Emmanuel Marty <emarty@suntech.fr>
3363
3364 * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
3365 insn.
3366
3367 2000-08-17 Richard Henderson <rth@cygnus.com>
3368
3369 * config/ia64/ia64.c (spill_restore_mem): Handle emitting
3370 the first insn in a sequence.
3371
3372 Thu Aug 17 22:40:05 EDT 2000 John Wehle (john@feith.com)
3373
3374 * alias.c (true_dependence, write_dependence_p): A read
3375 involving a label_ref or the constant pool doesn't create
3376 a dependency.
3377
3378 * rtl.h (unchanging): Improve documentation.
3379
3380 2000-08-17 Rodney Brown <RodneyBrown@mynd.com>
3381
3382 * cse.c (insert_regs): Remove unused `regno'.
3383
3384 2000-08-17 Neil Booth <NeilB@earthling.net>
3385
3386 * (cppinit.c) merge_include_chains: Use remove_dup_dir,
3387 remove_dup_dirs. If qtail == brack, remove brack not
3388 qtail.
3389 (remove_dup_dir, remove_dup_dirs): New functions.
3390
3391 2000-08-17 Neil Booth <NeilB@earthling.net>
3392
3393 * cppinit.c (cpp_cleanup): Free include dir chains.
3394 * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
3395 (do_unassert): Free the assert with _cpp_free_definition.
3396 * cppmacro.c (_cpp_free_definition): Free memory allocated for
3397 assertions. Make the node a T_VOID node.
3398
3399 2000-08-17 Neil Booth <NeilB@earthling.net>
3400
3401 * cppinit.c (path_include, append_include_chain):
3402 Remove 2nd parameter (struct cpp_pending *).
3403 (path_include, initialize_standard_includes, cpp_handle_option):
3404 Update callers appropriately.
3405 (cpp_handle_option): Use pend.
3406
3407 2000-08-17 Neil Booth <NeilB@earthling.net>
3408
3409 * cppinit.c (sort_options): Remove, put functionality in
3410 cpp_init.
3411 (cpp_init): New.
3412 (initialize_builtins): Free memory.
3413 (cpp_start_read): Move init_IStable to cpp_init.
3414
3415 * cpplib.h (cpp_init): New prototype.
3416 * cppmain.c (main): Call cpp_init.
3417
3418 Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com)
3419
3420 * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
3421 (rtx_unstable_p, rtx_varies_p): Process vectors.
3422
3423 2000-08-16 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
3424
3425 * config/sh/lib1funcs.asm (GLOBAL): Define. Use for all
3426 references to GLOBAL symbols. Use LOCAL where appropriate.
3427
3428 2000-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3429
3430 * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld. Always
3431 use t-aix41 when host == target.
3432
3433 2000-08-16 Richard Henderson <rth@cygnus.com>
3434
3435 * reload.c (push_secondary_reload): Revert last change.
3436 If we use a reload_in/out pattern, make the when the same
3437 as the primary reload.
3438 (find_reloads): Likewise.
3439
3440 2000-08-16 Manfred Hollstein <manfredh@redhat.com>
3441
3442 * configure.in (libstdcxx-v3): Fix test.
3443 * configure: Regenerate.
3444
3445 Wed Aug 16 08:10:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3446
3447 * calls.c (calls_function_1, expand_call): Only test
3448 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
3449 * function.c (thread_prologue_and_epilogue_insns): Likewise.
3450
3451 2000-08-16 Richard Henderson <rth@cygnus.com>
3452
3453 * combine.c (simplify_shift_const): Revert previous two
3454 changes. If SHIFT_COUNT_TRUNCATED, crop the shift count
3455 before the main loop.
3456
3457 2000-08-15 Richard Henderson <rth@cygnus.com>
3458
3459 * combine.c (simplify_shift_const): Bound shift count when
3460 combining shifts.
3461
3462 Tue Aug 15 17:33:05 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3463
3464 * calls.c (ECF_SP_DEPRESSED): New macro.
3465 (calls_function_1): Treat calling sp-depressed function as alloca.
3466 (emit_call_1): Don't adjust SP if calling sp-depressed function.
3467 (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
3468 If sp-depressed, ensure block saves and restores SP.
3469 * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
3470 for INTEGER_TYPE.
3471 * function.c (keep_stack_depressed): New function.
3472 (thread_prologue_and_epilogue_insns): Call it.
3473 * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
3474 to print DECL_OFFSET_ALIGN.
3475 Print no-force-blk and transparent-union flags properly.
3476 * stmt.c (expand_goto_internal): Don't restore stack if last block
3477 and function returns with sp depressed.
3478 (fixup_gotos): Likewise.
3479 (save_stack_pointer): New function, from code in expand_decl.
3480 (expand_decl): Call new function.
3481 * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
3482 (TYPE_RETURNS_STACK_DEPRESSED): New macro.
3483 (save_stack_pointer): New declaration.
3484
3485 * diagnostic.c (fatal_function): New variable.
3486 (set_fatal_function): New function.
3487 (fatal): Call it.
3488 * diagnostic.h (set_fatal_function): New declaration.
3489
3490 2000-08-15 William Cohen <wcohen@redhat.com>
3491
3492 * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
3493 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
3494 (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
3495
3496 2000-08-15 Richard Henderson <rth@cygnus.com>
3497
3498 * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
3499
3500 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
3501
3502 * arm.c (arm_function_ok_for_sibcall): New function.
3503 * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
3504 * arm.md (call expanders): Don't check here for calls that can't
3505 be sibling calls.
3506
3507 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
3508
3509 * arm.md (splits generating cond_exec): Disable.
3510
3511 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
3512
3513 * arm/linux-elf.h (text_section): Delete declaration.
3514
3515 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
3516
3517 ARM support for unordered FP operations.
3518 * arm-protos.h (arm_comparison_operator): Declare.
3519 * arm.c (arm_comparison_operator): New function.
3520 (arm_select_cc_mode): Add unordered comparison codes.
3521 (get_arm_condition_code): Likewise.
3522 (arm_final_prescan_insn): Can't handle unordered jumps that can't
3523 be done in one insn.
3524 * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
3525 * arm.md (all uses of comparison_operator): Replace with
3526 arm_comparison_operator.
3527 (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
3528 expands.
3529 (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
3530 patterns.
3531
3532 Tue Aug 15 00:36:36 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
3533
3534 * gthr-posix.h: Conditionally include <sched.h>; include
3535 <config.h> from libobjc/.
3536
3537 2000-08-14 Richard Henderson <rth@cygnus.com>
3538
3539 * config/i386/i386.c (legitimize_pic_address): Use Pmode
3540 for all CONSTs.
3541
3542 2000-08-14 Richard Henderson <rth@cygnus.com>
3543
3544 * configure.in (ia64-*): Set float_format for i386 long double.
3545
3546 * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
3547 as we would for i386 XFmode.
3548 (PUT_REAL): Likewise.
3549 (endian, ereal_atof, real_value_truncate): Likewise.
3550 (ereal_isneg, toe64, etens, make_nan): Likewise.
3551 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
3552
3553 * config/ia64/ia64-protos.h: Update.
3554 * config/ia64/ia64.c (general_tfmode_operand): New.
3555 (destination_tfmode_operand): New.
3556 (tfreg_or_fp01_operand): New.
3557 (ia64_split_timode): New.
3558 (spill_tfmode_operand): New.
3559 (ia64_expand_prologue): Use TFmode not XFmode.
3560 (ia64_expand_epilogue): Likewise.
3561 (ia64_function_arg): Likewise.
3562 (ia64_function_arg_advance): Likewise.
3563 (ia64_return_in_memory): Likewise.
3564 (ia64_function_value): Likewise.
3565 (ia64_print_operand): Likewise.
3566 (ia64_register_move_cost): Set GR<->FR to 5.
3567 (ia64_secondary_reload_class): Get GR for TImode memory op.
3568 * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
3569 (ROUND_TYPE_ALIGN): Remove.
3570 (LONG_DOUBLE_TYPE_SIZE): Set to 128.
3571 (INTEL_EXTENDED_IEEE_FORMAT): Define.
3572 (HARD_REGNO_NREGS): Use TFmode, not XFmode.
3573 (HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs.
3574 (MODES_TIEABLE_P): Use TFmode, not XFmode.
3575 (CLASS_MAX_NREGS): Likewise.
3576 (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
3577 (PREDICATE_CODES): Update.
3578 * config/ia64/ia64.md (movti): New.
3579 (movti_internal): Use a clobber for memory alternatives.
3580 (reload_inti, reload_outti): New.
3581 (movsfcc_astep): Predicate properly.
3582 (movdfcc_astep): Likewise.
3583 (movxf): Remove.
3584 (movtf): New.
3585 (extendsftf2, extenddftf2): New.
3586 (trunctfsf2, trunctfdf2): New.
3587 (floatditf2, fix_trunctfdi2): New.
3588 (floatunsditf2, fixuns_trunctfdi2): New.
3589 (addtf3, subtf3, multf3, abstf2): New.
3590 (negtf2, nabstf2, mintf3, maxtf3): New.
3591 (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
3592 (cmptf): New.
3593 (fr_spill): Use TFmode, not XFmode.
3594 (fr_restore): Likewise.
3595 * config/ia64/lib1funcs.asm (__divtf3): New.
3596 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
3597
3598 2000-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3599
3600 * cse.c (fold_rtx): Avoid empty body in an if-statement.
3601
3602 * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
3603 `U' integer constant suffix.
3604
3605 * dwarf2out.c (add_subscript_info): Avoid empty body in an
3606 else-statement.
3607
3608 * sparc/sol2.h (__enable_execute_stack): Prototype.
3609
3610 2000-08-14 David Edelsohn <edelsohn@gnu.org>
3611
3612 * collect2.c: Remove use of AIX import file.
3613
3614 * longlong.h: Test ARCH_PWR not ARCH_POWER.
3615
3616 * rs6000.c (print_operand, case 'E'): Add else.
3617
3618 2000-08-14 Richard Henderson <rth@cygnus.com>
3619
3620 * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
3621 (movdi_symbolic): New.
3622
3623 2000-08-14 Jim Wilson <wilson@cygnus.com>
3624
3625 * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
3626 to GNU as. For Intel as, pass -M const_gp and -M no_plabel.
3627 * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
3628 to GNU as.
3629
3630 2000-08-14 Richard Henderson <rth@cygnus.com>
3631
3632 * expr.c (emit_group_load): Don't force constants into registers.
3633 Special case source already in the correct mode.
3634
3635 2000-08-14 Zack Weinberg <zack@wolery.cumb.org>
3636
3637 * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
3638 * fixinc/inclhack.def: Likewise.
3639 * fixinc/mkfixinc.sh: Likewise.
3640 * configure: Regenerate.
3641 * fixinc/fixincl.x: Regenerate.
3642 * install.texi: Document equivalence of linux and linux-gnu.
3643
3644 Mon Aug 14 18:51:44 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3645
3646 * cse.c (insert_regs): Also in REG case: When finding an invalid
3647 value, and we make a new quantity, make sure that it won't be
3648 mistaken by for a valid one by mention_regs.
3649
3650 2000-08-13 Ralf Gütlein <ralf.guetlein@aranea.de>
3651
3652 * h8300.md: Remove obsolete peepholes.
3653
3654 2000-08-13 Kazu Hirata <kazu@hxi.com>
3655
3656 * invoke.texi (H8/300 Options): Fix typos.
3657 * config/h8300.c: Fix formatting.
3658 * config/h8300.h: Fix comment typos.
3659 (OVERRIDE_OPTIONS): Fix formatting.
3660
3661 * function.c: Fix formatting.
3662
3663 * cse.c: Fix formatting.
3664
3665 2000-08-13 Geoff Keating <geoffk@cygnus.com>
3666
3667 * flow.c (attempt_auto_inc): Remove unused variable `bb'.
3668 (attempt_auto_inc): Suppress parentheses warning.
3669 * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
3670 * loop.c (load_mems): Remove `u' suffix in two places.
3671 * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
3672 hex constants.
3673 * config/rs6000/rs6000.h: Likewise.
3674 * config/rs6000/sol-c0.c: Prototype some functions. Remove the
3675 __eabi dummy routine.
3676 * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
3677 variable `buf_ptr'.
3678
3679 * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
3680 not put stuff in .sdata unnecessarily.
3681 (rs6000_unique_section): New function.
3682 * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
3683 * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
3684
3685 * c-typeck.c (build_array_ref): Don't complain about non-lvalue
3686 arrays in C99. Don't try to look at DECL_REGISTER of a
3687 COMPONENT_REF. Don't complain twice about the same error.
3688
3689 * fixinc/inclhack.def (aix_pthread): New fix.
3690 (aix_sysmachine): New fix.
3691 * fixinc/fixincl.x: Regenerate.
3692
3693 * expr.c (expand_expr): Call convert_modes when turning a large
3694 multiply into a small one.
3695
3696 2000-08-12 Geoff Keating <geoffk@cygnus.com>
3697
3698 * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
3699 the tree structure an exponent rather than an explicit alignment
3700 so it doesn't overflow.
3701 (SET_DECL_OFFSET_ALIGN): New macro.
3702 * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
3703 rather than DECL_OFFSET_ALIGN.
3704 (place_field): Likewise.
3705 * expmed.c (store_bit_field): Abort on align==0 to avoid
3706 antisocial machine behaviour.
3707
3708 2000-08-12 Richard Henderson <rth@cygnus.com>
3709
3710 * sibcall.c (uses_addressof): Accept both addressof and
3711 current_function_internal_arg_pointer inside a mem.
3712 (optimize_sibling_and_tail_recursive_call): Fail tail recursion
3713 if current_function_uses_addressof.
3714 * stmt.c (expand_return): Kill tail recursion and HAVE_return
3715 optimizations.
3716
3717 2000-08-11 Richard Henderson <rth@cygnus.com>
3718
3719 * config/ia64/ia64.md (addsi3): Remove expander.
3720 (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
3721 (*addsi3_shladd): New.
3722
3723 2000-08-11 Richard Henderson <rth@cygnus.com>
3724
3725 * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
3726 (do_restore): Likewise.
3727 (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
3728 (ia64_expand_prologue, ia64_expand_epilogue): Use them.
3729 (rtx_needs_barrier): Track actual bit manipulation for
3730 ar.unat moves, gr_spill, and gr_restore.
3731 (emit_insn_group_barriers): Special case gr_spill/gr_restore.
3732 (process_set): Don't handle varargs spills.
3733 * config/ia64/ia64.md (gr_spill): Accept cfa offset. Emit
3734 .mem.offset here instead of in process_set.
3735 (gr_restore): Likewise.
3736
3737 2000-08-11 Richard Henderson <rth@cygnus.com>
3738
3739 * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
3740
3741 2000-08-11 Mark Elbrecht <snowball3@bigfoot.com>
3742
3743 * gcc.texi (The Configuration File): Document
3744 COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
3745 UPDATE_PATH_HOST_CANONICALIZATION.
3746
3747 2000-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3748
3749 * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
3750 unprototyped function pointer casts on integer constants.
3751
3752 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
3753
3754 * fixproto: Recognize DOS paths with drive letters as absolute paths.
3755
3756 2000-08-11 Nathan Sidwell <nathan@codesourcery.com>
3757
3758 * extend.texi (Volatiles): Fix typos.
3759
3760 2000-08-11 Kazu Hirata <kazu@hxi.com>
3761
3762 * flow.c: Fix formatting.
3763
3764 2000-08-11 Richard Henderson <rth@cygnus.com>
3765
3766 * reload.c (push_secondary_reload): When invoking a reload_{in,out}
3767 pattern, always allocate a tertiary scratch register.
3768
3769 * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
3770 (reload_inhi): Likewise.
3771
3772 2000-08-11 Richard Henderson <rth@cygnus.com>
3773
3774 * function.c (put_reg_into_stack): Allow type to be NULL.
3775 (schedule_fixup_var_refs): Likewise.
3776 (gen_mem_addressof): Allow decl to be NULL.
3777 (put_addressof_into_stack): Likewise.
3778
3779 * flow.c (merge_blocks_nomove): Be more careful about
3780 locating the beginning of block A.
3781
3782 * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
3783
3784 Thu Aug 10 22:47:09 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
3785
3786 * configure.in:
3787 * configure:
3788 * gthr-posix.h:
3789 * config.in: Reverted the check for <sched.h>.
3790
3791 2000-08-10 Chris Demetriou <cgd@sibyte.com>
3792
3793 * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
3794 macros define the name of CTOR and DTOR sections.
3795 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
3796 DTOR_LIST_END): Change to use attributes to specify
3797 sections.
3798 * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
3799 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
3800 DTOR_LIST_END): Same as in mips/elf.h.
3801
3802 2000-08-10 Drew Moseley <dmoseley@redhat.com>
3803
3804 * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
3805 disabling just crt0.o.
3806
3807 2000-08-10 Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton <nickc@cygnus.com>
3808
3809 * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
3810 (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
3811 (EXTRA_SPECS): Add them.
3812 * arm/lib1funcs.asm: Support builds for interworking.
3813 Use macros to eliminate duplicated pieces of code.
3814
3815 2000-08-10 Kazu Hirata <kazu@hxi.com>
3816
3817 * h8300.c (expand_a_rotate): New.
3818 (emit_a_rotate): Likewise.
3819 (h8300_adjust_insn_length): Add support for the rotate insns.
3820 * h8300.md (rotlqi3): New.
3821 (*rotlqi3_1): Likewise.
3822 (rotlhi3): Likewise.
3823 (*rotlhi3_1): Likewise.
3824 (rotlhi3): Likewise.
3825 (*rotlhi3_1): Likewise.
3826 * h8300-proto.h: Add prototypes for expand_a_rotate and
3827 emit_a_rotate.
3828
3829 * h8300.c: Fix comment typos.
3830 (dosize): Declare the variable amount as unsigned.
3831 (get_shift_alg): Fix a comparison between signed and unsigned.
3832 (emit_a_shift): Likewise.
3833 (h8300_adjust_insn_length): Simplify the code.
3834
3835 * c-decl.c: Fix formatting.
3836
3837 2000-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3838
3839 * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
3840 warning about non-traditional numeric constant suffixes.
3841
3842 * cppexp.c (parse_number): Likewise.
3843
3844 * invoke.texi: (-Wtraditional): Document new behavior.
3845
3846 Thu Aug 10 00:11:04 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
3847
3848 * gthr-posix.h: Include auto-host.h. Conditionally include
3849 <sched.h>.
3850 * configure.in: Check for the <sched.h> header file.
3851 * config.in: Added define for HAVE_SCHED_H.
3852
3853 2000-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3854
3855 * c-typeck.c (process_init_element): For -Wtraditional, warn about
3856 initialization of unions.
3857
3858 * invoke.texi (-Wtraditional): Document new behavior.
3859
3860 2000-08-09 Zack Weinberg <zack@wolery.cumb.org>
3861
3862 * configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE
3863 instead of extra_c_flags.
3864 (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
3865 * configure: Regenerate.
3866 * config.in: Regenerate.
3867
3868 * cpperror.c (cpp_type2name): New function.
3869 * cpplex.c (lex_line): If we issued an error for an invalid
3870 preprocessing directive, discard that logical line.
3871 * cpplib.c (do_line): Call a hook function if the current file
3872 is renamed by #line.
3873 (do_ident): Pass the contents of the string, not the entire
3874 token, to the callback function.
3875 * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
3876 (cb.rename_file): New hook function.
3877 (cb.ident): Adjust prototype.
3878 (cpp_type2name): Prototype.
3879 * cppmacro.c (dump_macro_args): Correct precedence lossage.
3880
3881 * cppmain.c (cb_ident): Update for changed interface.
3882 (cb_rename_file): New function.
3883 (main): Set rename callback.
3884
3885 2000-08-09 Alexandre Oliva <aoliva@redhat.com>
3886
3887 * caller-save.c (mark_referenced_regs): Mark partially-overwritten
3888 multi-word registers.
3889
3890 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
3891
3892 * c-common.c (combine_strings, check_format_info): Refer to ISO C
3893 or ISO C89 instead of ANSI C.
3894 * c-decl.c (grokdeclarator, xref_tag, finish_struct,
3895 build_enumerator, do_case): Likewise.
3896 * c-lex.c (parse_float, yylex): Likewise.
3897 * c-parse.in: Likewise.
3898 * c-typeck.c (common_type, build_array_ref, build_binary_op,
3899 build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
3900 build_c_cast, convert_for_assignment, set_init_index,
3901 set_init_label, c_expand_start_case): Likewise.
3902 * toplev.c (documented_lang_options, display_help): Likewise.
3903
3904 2000-08-08 Kazu Hirata <kazu@hxi.com>
3905
3906 * h8300.c: Fix formatting.
3907 * h8300.h: Likewise.
3908 * h8300.md: Likewise.
3909 (movsi_h8300hs): Fix formatting of the resulting assembly code.
3910
3911 * reload1.c: Fix formatting.
3912
3913 2000-08-08 Rodney Brown <RodneyBrown@mynd.com>
3914
3915 * alpha/alpha.c (alpha_emit_xfloating_libcall):
3916 Use GEN_CALL_VALUE define.
3917 * alpha/alpha.md (untyped_call): Use GEN_CALL define.
3918 * clipper/clipper.md (untyped_call): Likewise.
3919 * dsp16xx/dsp16xx.md (untyped_call): Likewise.
3920 * fx80/fx80.md (untyped_call): Likewise.
3921 * mips/mips.md (untyped_call): Likewise.
3922 * ns32k/ns32k.md (untyped_call): Likewise.
3923 * pa/pa.md (untyped_call): Likewise.
3924 * romp/romp.md (untyped_call): Likewise.
3925 * sparc/sparc.md (untyped_call): Likewise.
3926
3927 2000-08-08 Jason Eckhardt <jle@cygnus.com>
3928
3929 * config/i860/i860.c (singlemove_string): Do not generate assembler
3930 pseudo instructions that must be expanded (that is, with signed
3931 constants larger than 16 bits).
3932
3933 2000-08-08 Richard Henderson <rth@cygnus.com>
3934
3935 * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
3936 PROP_AUTOINC at -O0. Don't collect alias info at -O0.
3937 (init_propagate_block_info): Don't kill memory stores at -O0.
3938 (mark_set_1, mark_used_regs): Likewise.
3939
3940 2000-08-08 David Edelsohn <edelsohn@gnu.org>
3941
3942 * rs6000.c (optimization_options): Decorate 'level' as
3943 ATTRIBUTE_UNUSED.
3944 (mask64_operand): Remove sign-extend thinko.
3945 (rldic_operand): New function.
3946 (load_multiple_operation): regno's are unsigned ints.
3947 (store_multiple_operation): Likewise.
3948 (lmw_operation): Likewise.
3949 (stmw_operation): Likewise.
3950 (includes_lshift_p): shift_mask is unsigned int.
3951 (includes_lshift64_p): New function.
3952 (addrs_ok_for_quad_peep): unsigned int reg1.
3953 (print_operand): Consistently add "else" after
3954 output_operand_lossage().
3955 (print_operand, case 'b'): Fold in case 'W'.
3956 (print_operand, case 'W'): Print rldic MB value.
3957 (output_epilogue): Update Objective-C language string.
3958 (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
3959 * rs6000.h (PREDICATE_CODES): Add rldic_operand.
3960 * rs6000.md (ashldi3): Add rldic instruction.
3961 (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
3962 (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
3963 modifier.
3964
3965 2000-08-08 Richard Henderson <rth@cygnus.com>
3966
3967 * config/ia64/ia64-protos.h: Remove duplicates. Update
3968 for massive code rearrangements.
3969 * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
3970 (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
3971 (ia64_local_regs, ia64_need_regstk): Remove.
3972 (ar_ccv_reg_operand): New.
3973 (ia64_gp_save_reg): New.
3974 (struct ia64_frame_info): Combine most of the size elements;
3975 add new gr save elements.
3976 (find_gr_spill): New.
3977 (next_scratch_gr_reg): New.
3978 (mark_reg_gr_used_mask): New.
3979 (ia64_compute_frame_size): Rewrite. Allocate special AR regs
3980 to GR backing store regs when possible.
3981 (ia64_initial_elimination_offset): New.
3982 (ia64_rap_fp_offset): Remove.
3983 (save_restore_insns): Remove.
3984 (setup_spill_pointers): New.
3985 (finish_spill_pointers): New.
3986 (spill_restore_mem): New.
3987 (do_spill, do_restore): New.
3988 (ia64_expand_prologue): Rewrite to use them.
3989 (ia64_expand_epilogue): Likewise.
3990 (ia64_direct_return): Update for current_frame_info changes.
3991 (ia64_function_prologue): Simplify .prologue emission. Emit
3992 .spill when needed.
3993 (ia64_setup_incoming_varargs): Don't ever emit rtl.
3994 (ia64_dbx_register_number): New.
3995 (ia64_initialize_trampoline): New.
3996 (ia64_secondary_reload_class): Request GR_REGS for integer
3997 arithmetic destined for FR_REGS.
3998 (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
3999 (ia64_mark_machine_status): Mark ia64_gp_save.
4000 (rws_access_regno): Rename from rws_access_reg; don't treat
4001 predicates specially.
4002 (rws_access_reg): New. Update all callers.
4003 (rtx_needs_barrier): Remove dead unspecs.
4004 (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
4005 (ia64_encode_section_info): Silence signed/unsigned warnings.
4006 (spill_offset, sp_offset, spill_offset_emitted): Remove.
4007 (tmp_reg, tmp_saved): Remove.
4008 (process_set): Rewrite to expect complicated bits via
4009 REG_FRAME_RELATED_EXPR.
4010 (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
4011 in the use of ar.ccv; never set RTX_UNCHANGING_P.
4012 (ia64_expand_op_and_fetch): Likewise.
4013 (ia64_expand_compare_and_swap): Likewise.
4014 (ia64_expand_builtin): Likewise.
4015 * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
4016 (FIRST_PSEUDO_REGISTER): Update.
4017 (AR_M_REGNO_P): Update.
4018 (FIXED_REGS): Don't mark three local registers as used.
4019 (EXTRA_CC_MODES): New.
4020 (SELECT_CC_MODE): New.
4021 (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
4022 (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
4023 (FRAME_GROWS_DOWNWARD): Unset.
4024 (STARTING_FRAME_OFFSET): Zero.
4025 (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
4026 (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
4027 (HARD_FRAME_POINTER_REGNUM): New.
4028 (CAN_DEBUG_WITHOUT_FP): Define.
4029 (TRAMPOLINE_TEMPLATE): Remove.
4030 (TRAMPOLINE_SIZE): Lower to 32.
4031 (TRAMPOLINE_ALIGNMENT): Lower to 64.
4032 (INITIALIZE_TRAMPOLINE): Defer to out of line function.
4033 (PREDICATE_CODES): Update.
4034 (struct machine_function): Add ia64_gp_save.
4035 * config/ia64/ia64.md: Purge unused unspecs.
4036 (movsi patterns): Allow moves to/from AR_M_REGS.
4037 (movdi patterns): Allow moves to/from p0.
4038 (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
4039 (gr_spill, gr_restore): Indicate ar.unat read/written.
4040 (nonlocal_goto): Don't pass old frame_pointer.
4041 (nonlocal_goto_receiver): Remove.
4042 (exception_receiver): New.
4043 (builtin_setjmp_setup): New.
4044 (builtin_setjmp_receiver): New.
4045 * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
4046 (__ia64_nonlocal_goto): Bundle. Don't kill r7.
4047 (__ia64_restore_stack_nonlocal): Likewise.
4048 (__ia64_trampoline): New.
4049 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
4050 function.
4051 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
4052
4053 2000-08-08 Richard Henderson <rth@cygnus.com>
4054
4055 * frame.h (ia64_frame_state): Add my_psp.
4056 * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
4057 (__throw): Pass it in. Don't clobber r7.
4058 * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
4059 (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
4060 and nothing to do with sp.
4061 (normalize_reg_loc): Use frame->my_psp.
4062 (frame_translate): Handle frame-pointer-less functions. Set
4063 spill_base correctly, in absence of being told.
4064 (__build_ia64_frame_state): New sp argument. Fill in frame->my_sp.
4065 (__ia64_backtrace_helper): New sp argument. Use
4066 builtin_return_address instead of label addresses.
4067 (print_record) [mem_stack_v]: No size member.
4068
4069 2000-08-08 Richard Henderson <rth@cygnus.com>
4070
4071 * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
4072
4073 2000-08-08 Richard Henderson <rth@cygnus.com>
4074
4075 * tm.texi (LOCAL_REGNO): Document.
4076 * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
4077 (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
4078 * reload1.c (reload): Likewise when considering nonlocal labels.
4079
4080 * config/ia64/ia64.h (LOCAL_REGNO): New.
4081 * config/sparc/sparc.h (LOCAL_REGNO): New.
4082
4083 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
4084
4085 * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
4086
4087 2000-08-07 Nick Clifton <nickc@redhat.com>
4088
4089 * config/mips/mips.c: Fix compile time warning messages.
4090 * config/mips/mips-protos.h: Add prototype for equality_op.
4091
4092 * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
4093
4094 2000-08-07 Graham Stott <grahams@cygnus.co.uk>
4095
4096 * mn10300.md: Use nonimmediate_operand instead of general_operand
4097 on output operands.
4098
4099 * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
4100
4101 2000-08-07 Alexandre Oliva <aoliva@redhat.com>
4102
4103 * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
4104 * sh.c (expand_block_move): Break long lines.
4105 (expand_ashiftrt, fpscr_set_from_mem): Likewise.
4106 * sh.md (mulsi3): Likewise.
4107 (movdi): Adjust spacing.
4108
4109 2000-08-07 Richard Henderson <rth@cygnus.com>
4110
4111 * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
4112 * expr.c (emit_group_store): Don't set it.
4113
4114 2000-08-07 Kazu Hirata <kazu@hxi.com>
4115
4116 * invoke.texi (Options for Debugging Your Program or GCC): Remove
4117 duplicate entries for 'w' and 'z'.
4118
4119 * flow.c: Fix a comment typo.
4120
4121 Sun Aug 6 23:47:35 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
4122
4123 * c-parse.in: Changed the language string for Objective-C to "GNU
4124 Objective-C".
4125
4126 Sun Aug 6 11:54:03 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
4127
4128 * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
4129 to improve the Posix thread support for Objective-C.
4130
4131 2000-08-06 Joseph S. Myers <jsm28@cam.ac.uk>
4132
4133 * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
4134 CTI_UNSIGNED_PTRDIFF_TYPE.
4135 (signed_size_type_node): Define.
4136 (unsigned_ptrdiff_type_node): Define.
4137 * c-decl.c (init_decl_processing): Create the
4138 signed_size_type_node and unsigned_ptrdiff_type_node types.
4139 * c-common.c (T_SC): Define.
4140 (T_SST): Define.
4141 (T_UPD): Define.
4142 (print_char_table): Use T_SST for %zd, %zi, %zn. Use T_UPD for
4143 %to, %tu, %tx, %tX. Allow %hhn (T_SC). Add "c" to the flags for
4144 %s and %p.
4145 (scan_char_table): Use T_SC for %hhd, %hhi, %hhn. Use T_SST for
4146 %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Add "c" to the
4147 flags for %c, %s and %[.
4148 (check_format_info): Only allow leniency for signedness of targets
4149 of character pointers (when pedantic) for formats flagged with
4150 "c", so for strings but not for %hh formats. When pedantic, don't
4151 allow character pointers to substitute for void pointers if a
4152 second level of indirection is present.
4153
4154 2000-08-06 Kazu Hirata <kazu@hxi.com>
4155
4156 * invoke.texi (Options for Debugging Your Program or GCC): Update
4157 the names of dump files.
4158
4159 * h8300.c (dosize): Rearrange code for conciseness.
4160 (split_adds_subs): Likewise.
4161
4162 * loop.c: Fix formatting.
4163
4164 * dwarf2out.c: Fix formatting.
4165
4166 * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
4167
4168 * expr.c: Fix formatting.
4169
4170 2000-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4171
4172 * rs6000.c (rs6000_maybe_dead): Prototype.
4173
4174 2000-08-06 Richard Henderson <rth@cygnus.com>
4175
4176 * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
4177 HAVE_nonlocal_goto as well.
4178 * config/i960/i960.md (nonlocal_goto): Don't do it here.
4179 * config/pj/pj.md (nonlocal_goto): Likewise.
4180
4181 2000-08-07 Michael Hayes <mhayes@cygnus.com>
4182
4183 * loop.c (try_swap_copy_prop): New function.
4184 (load_mems): Rename copies to load_copies and add new regset
4185 store_copies. Check for sets of shadow registers and mark
4186 in store_copies. Call try_swap_copy_prop for registers
4187 marked in store_copies.
4188
4189 Sun Aug 6 00:54:42 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
4190
4191 * objc/objc-act.c: New command line option -fconstant-string-class
4192 to allow specifying a user defined constant string class,
4193 different from NXConstantString.
4194
4195 * toplev.c: Moved the Objective-C specific options to
4196 objc/lang-options.h.
4197
4198 * objc/lang-options.h: Moved the Objective-C specific options from
4199 toplev.c. Added -fconstant-string-class.
4200
4201 2000-08-05 Chris Demetriou <cgd@sibyte.com>
4202
4203 * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
4204 DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
4205 __CTOR_LIST__ from func_ptr array to just func_ptr, to
4206 avoid extra alignment imposed on arrays.
4207 * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
4208 DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
4209
4210 * mips.h: Clean up comments and spacing near MASKs.
4211 (TARGET_UNIX_ASM): Delete.
4212 (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
4213 MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
4214 values contiguous.
4215
4216 2000-08-05 Joseph S. Myers <jsm28@cam.ac.uk>
4217
4218 * c-common.c (print_char_table): Add entries for the X/Open '
4219 format flag (print decimals with locale's thousands grouping
4220 character). Make %C expect wint_t.
4221 (check_format_info): If pedantic, warn when the %n$ operand
4222 number form is used. Allow for the ' flag; warn about it if
4223 pedantic.
4224
4225 2000-08-05 Zack Weinberg <zack@wolery.cumb.org>
4226
4227 * i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return
4228 type is a float mode, cfun->decl's return type is not, and
4229 TARGET_FLOAT_RETURNS_IN_80387.
4230
4231 2000-08-04 Andreas Schwab <schwab@suse.de>
4232
4233 * cppmain.c (cb_def_pragma): Skip the first two tokens from the
4234 token list, which are always `#' and `pragma'.
4235
4236 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
4237
4238 * tree.c (tree_expr_nonnegative_p): Move to...
4239 * fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR.
4240 (rtl_expr_nonnegative_p): New.
4241 * tree.h: Add prototype for rtl_expr_nonnegative_p.
4242
4243 * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
4244 CONST_DOUBLE_CHAIN: Move to...
4245 * rtl.h: ...here. Use XCINT/XCEXP.
4246
4247 * Makefile.in: Remove toplev.o from OBJS. Add rule to make
4248 libbackend.a; add libbackend.a to STAGESTUFF. Add BACKEND
4249 variable. Use BACKEND when linking cc1, not OBJS. Add BACKEND
4250 to VOL_FILES.
4251
4252 * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
4253
4254 2000-08-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4255
4256 * config/c4x/c4x.md (return_indirect_internal): New.
4257 * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
4258
4259 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
4260
4261 * c-common.c (time_char_table): Mark up formats added in C99 and
4262 make other corrections. %D and %g were added in C99. %Og is an
4263 extension. %EX is permitted. %R, %T, %n, %r, %t were added in
4264 C99. %e was added in C99. %Oj is an extension. %G and %z are in
4265 C99 rather than GNU extensions, but %OG and %Oz are extensions.
4266 %h was added in C99. %C was added in C99. %OY and %OC are
4267 extensions. Add the C99 format %F.
4268 (check_format_info): If pedantic and not in C99 mode, warn for C99
4269 formats, %E and %O.
4270
4271 Fri Aug 4 23:01:58 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
4272
4273 * function.c (schedule_fixup_var_refs): New function, broken out
4274 of put_reg_into_stack.
4275 (put_reg_into_stack): Use it.
4276 (put_var_into_stack): In CONCAT case, fixup up references for
4277 components only after fixing up references to the whole concat.
4278
4279 2000-08-04 Rodney Brown <RodneyBrown@pmsc.com>
4280
4281 * alias.c (mark_constant_function): Use INSN_P.
4282 (init_alias_analysis): Likewise.
4283 * combine.c (combine_instructions): Use INSN_P.
4284 (can_combine_p): Likewise.
4285 (try_combine): Likewise.
4286 (distribute_notes): Likewise.
4287 (distribute_links): Likewise.
4288 * cse.c (cse_around_loop): Use INSN_P.
4289 (invalidate_skipped_block): Likewise.
4290 (cse_set_around_loop): Likewise.
4291 (cse_end_of_basic_block): Likewise.
4292 (delete_trivially_dead_insns): Likewise.
4293 * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
4294 (unshare_all_rtl_1): Likewise.
4295 (next_cc0_user): Likewise.
4296 (try_split make_insn_raw): Likewise.
4297 (remove_unnecessary_notes): Likewise.
4298 * final.c (shorten_branches): Use INSN_P.
4299 (leaf_renumber_regs): Likewise.
4300 (leaf_renumber_regs_insn): Likewise.
4301 * flow.c (find_label_refs): Use INSN_P.
4302 (verify_wide_reg): Likewise.
4303 (notice_stack_pointer_modification): Likewise.
4304 (count_or_remove_death_notes): Likewise.
4305 (verify_flow_info): Likewise.
4306 (clear_log_links): Likewise.
4307 * function.c (fixup_var_refs_insns): Use INSN_P.
4308 (compute_insns_for_mem): Likewise.
4309 * gcse.c (alloc_gcse_mem): Use INSN_P.
4310 (compute_sets): Likewise.
4311 (compute_hash_table): Likewise.
4312 (classic_gcse): Likewise.
4313 (cprop): Likewise.
4314 (insert_insn_end_bb): Likewise.
4315 (delete_null_pointer_checks_1): Likewise.
4316 * global.c (expand_preferences): Use INSN_P.
4317 (build_insn_chain): Likewise.
4318 * graph.c (node_data): Use INSN_P.
4319 * haifa-sched.c (priority): Use INSN_P.
4320 (rm_line_notes): Likewise.
4321 (rm_other_notes): Likewise.
4322 (find_insn_reg_weight): Likewise.
4323 (init_target_units): Likewise.
4324 (schedule_block): Likewise.
4325 (compute_block_forward_dependences): Likewise.
4326 (debug_dependencies): Likewise.
4327 (set_priorities): Likewise.
4328 * integrate.c (function_cannot_inline_p): Use INSN_P.
4329 (save_parm_insns): Likewise.
4330 (copy_insn_list): Likewise.
4331 * jump.c (mark_all_labels): Use INSN_P.
4332 (never_reached_warning): Likewise.
4333 * lcm.c (optimize_mode_switching): Use INSN_P.
4334 * local-alloc.c (validate_equiv_mem): Use INSN_P.
4335 (memref_used_between_p): Likewise.
4336 (update_equiv_regs): Likewise.
4337 (block_alloc): Likewise.
4338 (no_conflict_p): Likewise.
4339 * loop.c (scan_loop): Use INSN_P.
4340 (find_and_verify_loops): Likewise.
4341 (count_loop_regs_set): Likewise.
4342 (loop_reg_used_before_p): Likewise.
4343 (strength_reduce): Likewise.
4344 (recombine_givs): Likewise.
4345 (check_dbra_loop): Likewise.
4346 (load_mems): Likewise.
4347 (try_copy_prop): Likewise.
4348 * print-rtl.c (print_rtx): Use INSN_P.
4349 * recog.c (find_single_use): Use INSN_P.
4350 * reg-stack.c (stack_regs_mentioned): Use INSN_P.
4351 (next_flags_user): Likewise.
4352 (swap_rtx_condition): Likewise.
4353 * regmove.c (mark_flags_life_zones): Use INSN_P.
4354 (optimize_reg_copy_1): Likewise.
4355 (optimize_reg_copy_2): Likewise.
4356 (optimize_reg_copy_3): Likewise.
4357 (reg_is_remote_constant_p): Likewise.
4358 (fixup_match_2): Likewise.
4359 (regmove_optimize): Likewise.
4360 (fixup_match_1): Likewise.
4361 * regrename.c (build_def_use): Use INSN_P.
4362 (replace_reg_in_block): Likewise.
4363 (consider_use): Likewise.
4364 * reload.c (find_equiv_reg): Use INSN_P.
4365 * reload1.c (reload): Use INSN_P.
4366 (maybe_fix_stack_asms): Likewise.
4367 (calculate_needs_all_insns): Likewise.
4368 (reload_as_needed): Likewise.
4369 (emit_output_reload_insns): Likewise.
4370 (delete_address_reloads_1): Likewise.
4371 (reload_cse_regs_1): Likewise.
4372 (reload_combine): Likewise.
4373 (reload_cse_move2add): Likewise.
4374 * reorg.c (redundant_insn): Use INSN_P.
4375 (dbr_schedule): Likewise.
4376 * resource.c (find_dead_or_set_registers): Use INSN_P.
4377 (mark_target_live_regs): Likewise.
4378 * rtlanal.c (reg_used_between_p): Use INSN_P.
4379 (reg_referenced_between_p): Likewise.
4380 (reg_set_between_p): Likewise.
4381 (reg_set_p): Likewise.
4382 (single_set): Likewise.
4383 (multiple_sets): Likewise.
4384 (find_last_value): Likewise.
4385 (reg_set_last): Likewise.
4386 (find_reg_note): Likewise.
4387 (find_regno_note): Likewise.
4388 * sibcall.c (sequence_uses_addressof): Use INSN_P.
4389 * simplify-rtx.c (cselib_process_insn): Use INSN_P.
4390 * ssa.c (find_evaluations): Use INSN_P.
4391 (rename_block): Likewise.
4392 (rename_equivalent_regs): Likewise.
4393 * unroll.c (loop_find_equiv_value): Use INSN_P.
4394 (set_dominates_use): Likewise.
4395 * varasm.c (mark_constant_pool): Use INSN_P.
4396 (mark_constants): Likewise.
4397 * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
4398 (alphaev4_next_group): Likewise.
4399 (alphaev5_next_group): Likewise.
4400 * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
4401 (c4x_rptb_rpts_p): Likewise.
4402 * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
4403 * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
4404 (rs6000_adjust_priority): Likewise.
4405 * config/sh/sh.c (sh_loop_align): Use INSN_P.
4406 (machine_dependent_reorg): Likewise.
4407 (split_branches): Likewise.
4408 * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
4409
4410 Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com)
4411
4412 * combine.c (recog_for_combine): Remove the old notes
4413 prior to attempting to recognize the new pattern.
4414 (distribute_notes): Ignore REG_NONNEG notes.
4415
4416 2000-08-04 Chandrakala Chavva <cchavva@redhat.com>
4417
4418 * varasm.c (output_constructor): Add .align 0 for packed vars.
4419
4420 2000-08-04 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4421
4422 * configure.in: Use default thread_file even when enable_threads is
4423 yes or dce because hpux10.20 pa port uses MULTILIB implementation.
4424 * configure: Rebuilt.
4425
4426 * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
4427
4428 2000-08-04 Donn Terry (donnte@microsoft.com)
4429
4430 * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
4431
4432 2000-08-04 Mark Elbrecht <snowball3@bigfoot.com>
4433
4434 * i386/x-djgpp: Delete code that conditionally modifies target_alias.
4435 Delete code that conditionally modifies 'version'.
4436 Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
4437 * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
4438 * gcc.c (main): Use it.
4439 * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
4440 * prefix.c (update_path): Use it.
4441 * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
4442 (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
4443 (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
4444 code.
4445 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
4446 (SUBTARGET_SWITCHES): Adjust.
4447 (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
4448 defining.
4449 (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
4450
4451 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
4452
4453 * c-common.h (flag_isoc94): Declare.
4454 * c-decl.c (flag_isoc94): Define.
4455 (c_decode_option): Set flag_isoc94 as appropriate.
4456 * c-common.c (T_PD, T_IM, T_UIM): Define.
4457 (format_char_info): Add tlen and jlen.
4458 (print_char_table): Add entries for %t and %j. Allow %zn. Allow
4459 %F. Allow %lf.
4460 (scan_char_table): Add entries for %t and %j. Allow %F. Allow
4461 %l[.
4462 (time_char_table): Add NULL entries for %t and %j.
4463 (check_format_info): Allow for %t and %j. Warn for %F if pedantic
4464 and not C99. Warn for %lc, %ls and %l[ if pedantic and not C94.
4465 Warn for printf %lf if pedantic and not C99. Don't warn for empty
4466 precision. Allow precision argument to be unsigned int. If
4467 pedantic, warn for %p passed an argument not a pointer to possibly
4468 qualified void or a possibly qualified character type, and for
4469 pointer targets of the wrong sign, except for character pointers.
4470
4471 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
4472
4473 * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
4474 * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
4475 (wint_type_node): Define.
4476 * c-decl.c (WINT_TYPE): Define.
4477 (init_decl_processing): Create the wint_type_node type.
4478 * c-common.c (T_WI): Define.
4479 (print_char_table): Use T_WI for %lc format.
4480
4481 2000-08-04 Bruce Korb <bkorb@gnu.org>
4482
4483 * fixinc/: Verified that the MSDOS patch does not break
4484 the UNIX functionality and applied the next three patches
4485 from July:
4486
4487 2000-07-28 Eli Zaretskii <eliz@is.elta.co.il>
4488
4489 * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
4490 output file with the temporary one by appending ".X" to generate
4491 the temporary fuile's name. If the output file already has an
4492 extension, replace it with ".X".
4493
4494 * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
4495 not $DESTDIR, to find applyfix. Use sprintf instead of snprintf;
4496 reallocate the command buffer while copying the command-line
4497 argument. Redirect the output directly to the temporary file,
4498 instead of going through another temporary file.
4499 (process): Close the temporary file before unlinking it.
4500 (machine_matches) [__MSDOS__]: If the machine doesn't match, set
4501 the FD_SKIP_TEST flag. Pay attention to the FD_MACH_IFNOT flag.
4502 (run_compiles): Pass p_fixd argument to machine_matches, as it
4503 expects.
4504
4505 * fixinc/fixincl.sh: Export ORIGDIR. If $DJDIR is set in the
4506 environment, assume there are no symlinks in the include
4507 directory. When cleaning up the DONE files, look for them
4508 case-insensitively. Don't try to remove symlinks if they aren't
4509 there.
4510
4511 * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
4512 all callers changed. Declare pz "const char *", to avoid compiler
4513 warnings.
4514
4515 * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
4516 Change prototype of make_raw_shell_str.
4517
4518 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
4519
4520 * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
4521 (initialize) [__MSDOS__]: Use tempnam.
4522 (initialize): Don't use SIGPIPE if it is not defined.
4523
4524 * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
4525 return stdout.
4526
4527 2000-07-25 Bruce Korb <bkorb@gnu.org>
4528
4529 * fixinc/fix*.[ch]: substantially reworked to make it possible
4530 to run this program without using fork(2) or pipe(2) (i.e. in
4531 a DOS environment).
4532
4533 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
4534
4535 * cppdefault.h (WINT_TYPE): Define.
4536 * cppinit.c (builtin_array): Define __WINT_TYPE__.
4537 * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
4538 * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
4539
4540 Fri Aug 4 06:53:46 2000 Clinton Popetz <cpopetz@cygnus.com>
4541
4542 * (mips_legitimate_address_p): Don't allow register+offset
4543 if the offset is large and negative, and we are compiling
4544 for 64 bit registers.
4545
4546 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4547
4548 * gencodes.c (main): Define CODE_FOR_nothing as the last possible
4549 insn_code_number + 1.
4550
4551 2000-08-04 Kazu Hirata <kazu@hxi.com>
4552
4553 * h8300.c (function_prologue): Rearrange code for conciseness.
4554 (function_epilogue): Likewise.
4555 * h8300.h (OK_FOR_U): Fix formatting.
4556
4557 * cse.c: Fix a comment typo. Fix formatting.
4558
4559 2000-08-03 Richard Henderson <rth@cygnus.com>
4560
4561 * config/i386/i386.md (return_indirect_internal): New.
4562 * config/i386/i386.c (ix86_expand_epilogue): Use it.
4563
4564 2000-08-03 Zack Weinberg <zack@wolery.cumb.org>
4565
4566 * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
4567 before the name.
4568 (lex_line): Glue @ onto the beginning of identifiers and
4569 string constants, in Objective-C mode.
4570 (output_token, spell_token): Handle CPP_OSTRING.
4571 (can_paste, maybe_paste_with_next): Handle pasting @ onto the
4572 beginning of a NAME or a STRING, in objc mode.
4573
4574 * cpplib.c (get_define_node): Do not permit identifiers that
4575 begin with @ to be #defined.
4576 * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
4577 * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
4578
4579 * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
4580 * c-tree.h (build_objc_string): Delete prototype.
4581 * objc/objc-tree.def: Delete OBJC_STRING_CST.
4582 * c-lex.c (yylex): Use build_string for all three kinds of strings.
4583
4584 * c-parse.in, objc/objc-act.c: Update commentary.
4585
4586 2000-08-03 Mark Mitchell <mark@codesourcery.com>
4587
4588 * extend.texi: Fix typo in last change.
4589
4590 * extend.texi: Add commentary on statement-expressions and their
4591 interactions with C++.
4592
4593 2000-08-03 Nick Clifton <nickc@cygnus.com>
4594
4595 * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
4596 * dwarf.h (LANG_JAVA): Change value to 0x000b.
4597
4598 2000-08-03 Anthony Green <green@cygnus.com>
4599
4600 * dwarf2out.c (gen_compile_unit_die): Add java language support.
4601 (add_bound_info): Check for java language.
4602 (is_java): New function.
4603 * dwarfout.c (output_compile_unit_die): Ditto.
4604 * dwarf.h (dwarf_source_language): Add java source language type.
4605 * dwarf2.h (dwarf_source_language): Ditto.
4606
4607 Thu Aug 3 20:32:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
4608
4609 * reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap
4610 operands.
4611
4612 * i386.c (ix86_expand_branch): Mode of comparison in
4613 IF_THEN_ELSE is VOIDmode.
4614
4615 Thu Aug 3 10:05:53 2000 Akiko Matsushita <matusita@sra.co.jp>
4616
4617 * gengenrtl.c, rtl.c: Avoid #elif.
4618
4619 2000-08-03 Michael Poole <poole@troilus.org>
4620
4621 * tm.texi (Register Classes): Clarify order of sub-initializers
4622 in REG_CLASS_CONTENTS.
4623
4624 Thu Aug 3 15:53:03 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
4625
4626 From SAITOH Masanobu:
4627 * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
4628
4629 2000-08-03 David Billinghurst <David.Billinghurst@riotinto.com.au>
4630
4631 * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
4632 is not supported by tradcpp and isn't actually needed for cygwin.
4633
4634 2000-08-03 Kazu Hirata <kazu@hxi.com>
4635
4636 * h8300.c: Fix a comment typo.
4637 * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
4638
4639 * jump.c: Fix formatting.
4640
4641 * toplev.c: Fix formatting.
4642
4643 Thu Aug 3 01:05:32 2000 Jeffrey A Law (law@cygnus.com)
4644
4645 * flow.c (find_auto_inc): Verify that we've got a REG before
4646 peeking at its regno. Fail, don't abort if we can't find
4647 the increment of the desired register.
4648
4649 * pa.md (shadd height reduction patterns/splitters): Remove.
4650
4651 2000-08-02 Jim Wilson <wilson@cygnus.com>
4652
4653 * config/ia64/ia64-protos.h (flag_ssa): Declare.
4654 * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
4655
4656 2000-08-02 Mark Mitchell <mark@codesourcery.com>
4657
4658 * dce.c: Remove all uses of assert.
4659 * dwarf2out.c: Likewise.
4660 * dwarfout.c: Likewise.
4661 * ssa.c: Likewise.
4662
4663 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
4664
4665 * gcc.h (lang_specific_driver): Constify second argument.
4666 * gcc.c (translate_options, process_command, main): Likewise.
4667 Constify variables to match. Cast second argument to
4668 pexecute.
4669
4670 * cppspec.c, gccspec.c: Adjust type of second argument to
4671 lang_specific_driver, and update code as necessary.
4672
4673 2000-08-02 Jakub Jelinek <jakub@redhat.com>
4674
4675 * loop.c (scan_loop): Ensure update_end label does not
4676 go away until reg_scan_update is run.
4677
4678 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
4679
4680 * c-common.h: Prototype min_precision and c_build_qualified_type here...
4681 * c-tree.h: ... not here.
4682 * errors.h: Prototype fancy_abort.
4683
4684 * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
4685 HOST_BITS_PER_WIDE_INT == 64 ifdef block.
4686 * regrename.c (regrename_optimize): Make control flow explicit.
4687 (replace_reg_in_block): Initialize reg_use to 0.
4688
4689 * i386.c (legitimate_address_p): Rename error label to
4690 report_error to avoid namespace clash.
4691
4692 2000-08-02 Kazu Hirata <kazu@hxi.com>
4693
4694 * fold-const.c: Fix formatting.
4695
4696 Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka <jh@suse.cz>
4697
4698 * i386.c (legitimate_address_p): Accept other bases than
4699 pic_offset_table_rtx for GOTOFF constructs.
4700
4701 Wed Aug 2 15:59:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
4702
4703 * i386.md (shift to lea splitter): Use const_int_operand.
4704
4705 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
4706
4707 * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
4708 cppspec.c: Do not use 'legal' or 'illegal' in error messages
4709 and comments.
4710
4711 * cppmain.c (cb_define, cb_undef): Don't generate any output
4712 if not done_initializing.
4713 * cpplex.c (maybe_paste_with_next): When the token after a ##
4714 is an omitted rest argument, only delete the token before it
4715 if that token is a comma. Do not warn about bogus token
4716 pastes for , ## rest_arg.
4717
4718 * cpp.texi: Update.
4719 * cpp.1: Regenerate.
4720
4721 2000-08-02 Fred Fish <fnf@be.com>
4722
4723 * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
4724 when user gives -p option. Add init_term_dyn.o for BeOS 5.0
4725 and later.
4726
4727 * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
4728 Be directories to search path.
4729
4730 Remove support for __declspec(dllimport) and __declspec(dllexport).
4731 This is leftover cruft from the earlier BeOS gcc port when BeOS
4732 used Microsoft's PE object file format.
4733 * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
4734 * config/i386/t-beos (winnt.o): Remove Makefile frag.
4735 * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
4736 (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
4737 (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
4738 (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
4739 (REDO_SECTION_INFO_P): Remove.
4740 (ASM_EXPORT_DECL): Remove.
4741 (ASM_DECLARE_FUNCTION_NAME): Remove.
4742 (ASM_DECLARE_OBJECT_NAME): Remove.
4743 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
4744 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
4745 (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
4746 (STRIP_NAME_ENCODING): Remove.
4747
4748 Remove support for obsolete version of BeOS that is no longer
4749 supported by Be.
4750 * configure.in (i*86-*-beospe*): Remove.
4751 * config/i386/beos-pe.h: Remove.
4752
4753 2000-08-01 Jeffrey Oldham <oldham@codesourcery.com>
4754 Mark Mitchell <mark@codesourcery.com>
4755
4756 * Makefile.in (OBJS): Added dce.o.
4757 (ssa.o): Updated target to include ssa.h.
4758 (flow.o): Likewise.
4759 (toplev.o): Likewise.
4760 (dce.o): Created target.
4761 * basic-block.h: Added comments.
4762 (INVALID_BLOCK): Added definition.
4763 (connect_infinite_loops_to_exit): Added declaration.
4764 Moved SSA declarations to ssa.h.
4765 * flow.c: Added inclusion of ssa.h.
4766 (struct depth_first_search_dsS, depth_first_search_ds):
4767 Added definitions.
4768 (compute_immediate_postdominators): Added definition.
4769 (connect_infinite_loops_to_exit): Likewise.
4770 (flow_dfs_compute_reverse_init): Likewise.
4771 (flow_dfs_compute_reverse_add_bb): Likewise.
4772 (flow_dfs_compute_reverse_execute): Likewise.
4773 (flow_dfs_compute_reverse_finish): Likewise.
4774 * rtl.h (rtx/in_struct): Added use to determine insn necessity.
4775 (LABEL_P): Added definition.
4776 (JUMP_P): Likewise.
4777 (NOTE_P): Likewise.
4778 (BARRIER_P): Likewise.
4779 (JUMP_TABLE_DATA_P): Likewise.
4780 (INSN_DEAD_CODE_P): Likewise.
4781 * ssa.c: Replaced inclusions with ssa.h inclusion.
4782 (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
4783 (rename_registers): Removed unnecessary variables.
4784 * ssa.h: Created by moving declarations from ssa.c and
4785 basic-block.h.
4786 * timevar.def: Defined TV_DEAD_CODE_ELIM.
4787 * toplev.c: Added ssa.h inclusion.
4788 (dump_file_index): Added DFI_dce.
4789 (dump_file): Added "dce" entry.
4790 Defined flag_ssa.
4791 (f_options): Added dce entry.
4792 * invoke.texi: Document -fdce. Emphasize experimental status of
4793 -fssa.
4794 * dce.c: New file.
4795
4796 2000-08-01 Zack Weinberg <zack@wolery.cumb.org>
4797
4798 * cpperror.c (v_message): Split into _cpp_begin_message and
4799 v_message macro. All callers updated.
4800 (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
4801 checks here.
4802
4803 * cppfiles.c (cpp_syshdr_flags): New function.
4804 (read_include_file): Don't call cpp_output_tokens. Call
4805 enter_file hook.
4806 * cppinit.c (dump_macros_helper): Moved to cppmain.c.
4807 (cpp_reader_init): Don't initialize token_buffer. Call
4808 _cpp_init_internal_pragmas.
4809 (cpp_cleanup): Don't clear token_buffer.
4810 (cpp_start_read): Don't worry about output from -D processing.
4811 Don't call cpp_output_tokens.
4812 (cpp_finish): Don't dump macros here. Don't call
4813 cpp_output_tokens.
4814 * cppmacro.c (_cpp_dump_definition): Rename
4815 cpp_dump_definition. Write directly to a FILE *.
4816 (dump_funlike_macro): Delete.
4817 (dump_macro_args): New.
4818
4819 * cpplex.c (TOKEN_LEN): Convert to inline function.
4820 (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
4821 cpp_scan_line, _cpp_dump_list): Delete.
4822 (cpp_printf, cpp_output_list): New.
4823 (output_line_command): Don't worry about entering or leaving files.
4824 (cpp_scan_buffer): Just output each token as we hit it.
4825 (process_directive): Don't call cpp_output_tokens.
4826 (_cpp_glue_header_name): Don't use token_buffer.
4827 (output_token, dump_param_spelling): Write directly to a FILE *.
4828
4829 * cpplib.c (pass_thru_directive, dump_macro_name,
4830 pragma_dispatch, do_pragma_gcc): Delete.
4831 (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
4832 do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
4833 functions.
4834 (do_error, do_warning, pragma_dependency): Call
4835 _cpp_begin_message, then cpp_output_list.
4836 (cpp_register_pragma, cpp_register_pragma_space,
4837 _cpp_init_internal_pragmas): New.
4838 (do_pragma): Walk the pragmas table here.
4839 (do_pragma_once, do_pragma_poison, do_pragma_system_header,
4840 do_pragma_dependency): Return void.
4841 (do_pragma_implementation): Moved to cppmain.c.
4842
4843 * cpplib.h: Update prototypes.
4844 (struct cpp_reader): Remove printer, token_buffer,
4845 token_buffer_size, and limit. Add struct cb, and pragmas.
4846 (struct cpp_printer): Remove last_id and written.
4847 (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
4848 CPP_ADJUST_WRITTEN): Delete.
4849 * cpphash.h: Update prototypes.
4850 (ufputs): New wrapper.
4851
4852 * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
4853 cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
4854 (main): Set up callbacks. Register #pragma implementation.
4855 Dump macros from here.
4856
4857 2000-08-01 Geoff Keating <geoffk@cygnus.com>
4858
4859 * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
4860 * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
4861 * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
4862 insns if they have a REG_MAYBE_DEAD note attached.
4863 * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
4864 (rs6000_emit_load_toc_table): TOC loads may go dead.
4865
4866 2000-08-01 Jim Wilson <wilson@cygnus.com>
4867
4868 * config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify
4869 type exists before using it. Use number of words as alignment
4870 otherwise.
4871 (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
4872 ia64_va_arg): Propagate ia64_function_args changes here.
4873
4874 2000-08-01 Richard Henderson <rth@cygnus.com>
4875
4876 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
4877 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4878
4879 2000-08-01 Bernd Schmidt <bernds@cygnus.co.uk>
4880
4881 From Joern Rennecke:
4882 * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
4883 * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
4884 unless TARGET_SH3E is set.
4885 * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
4886
4887 * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
4888 (ashlsi3_std): New pattern.
4889 (ashlsi3 expander): Use it for TARGET_SH3.
4890 * sh.c (gen_ashift): Use it instead of ashlsi3_k.
4891
4892 Tue Aug 1 12:34:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
4893
4894 * loop.c (canonicalize_condition): Use destination, not source to
4895 determine SET's mode.
4896
4897 2000-07-31 Mark Mitchell <mark@codesourcery.com>
4898
4899 * flow.c (clear_log_links): Fix typo.
4900
4901 Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com)
4902
4903 * loop.c (check_dbra_loop): Make change from July 17, 2000 work
4904 on targets which need more than one insn for a compare/cbranch
4905 operation.
4906
4907 2000-07-31 Jim Wilson <wilson@cygnus.com>
4908
4909 * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
4910 when computing offset.
4911
4912 Mon Jul 31 20:35:50 2000 Denis Chertykov <denisc@overta.ru>
4913
4914 * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
4915
4916 2000-07-31 Geoff Keating <geoffk@cygnus.com>
4917
4918 * flow.c (clear_log_links): Nuke global_live_at_start and
4919 global_live_at_end data, since if the log_links stuff is invalid
4920 so is global_live_at_*.
4921
4922 2000-07-31 Richard Henderson <rth@cygnus.com>
4923
4924 * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
4925
4926 2000-07-31 Jakub Jelinek <jakub@redhat.com>
4927
4928 * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
4929 (_cpp_get_token): Don't macro expand a just pasted token if it
4930 was pasted at no_expand_level.
4931
4932 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
4933
4934 * cppmacro.c (find_param, count_params, save_expansion):
4935 Permit 'defined' as a macro parameter name.
4936
4937 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
4938
4939 * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
4940 xcpp to cpp throughout.
4941 (native): Remove unnecessary dependency on cpp.
4942
4943 * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
4944 tradcpp to tradcpp0.
4945 (.i spec): Add missing output-file spec to cc1 command line.
4946 * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
4947
4948 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
4949
4950 * c-decl.c (mesg_implicit_function_declaration): Init to -1.
4951 (implicit_decl_warning): New function.
4952 (implicitly_declare): Use it.
4953 * c-typeck.c (build_external_ref): Use implicit_decl_warning
4954 to complain about implicit decls of builtins.
4955
4956 * c-lang.c (lang_init): Set mesg_implicit_function_declaration
4957 based on pedantic && flag_isoc99, if not already set.
4958 * c-tree.h: Declare mesg_implicit_function_declaration.
4959 Prototype implicit_decl_warning.
4960
4961 2000-07-30 Jeffrey D. Oldham <oldham@codesourcery.com>
4962
4963 * Makefile.in (ssa.o): Updated header files in dependences.
4964 * basic-block.h: Added compute_immediate_postdominators declaration.
4965 * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
4966 definition.
4967 * flow.c (compute_immediate_dominators): Updated comment.
4968 (compute_immediate_postdominators): Added definition.
4969 * rtl.h (HARD_REGISTER_P): Added definition.
4970 * ssa.c: Include additional header files.
4971 (assert): Added definition.
4972 (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
4973 include select hard registers.
4974 (ssa_rename_to_insert): Likewise.
4975 (ssa_rename_from_initialize): Likewise.
4976 (ssa_rename_from_lookup): Likewise.
4977 (original_register): Likewise.
4978 (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
4979 include select hard reigsters.
4980 (ssa_rename_from_traverse): Likewise.
4981 (ssa_rename_from_free): Likewise.
4982 (ssa_rename_from_print): Likewise.
4983 (ssa_rename_from_print_1): Likewise.
4984 (ssa_rename_from_hash_function): Likewise.
4985 (ssa_rename_from_equal): Likewise.
4986 (ssa_rename_from_delete): Likewise.
4987 (simplify_to_immediate_dominators): Removed in favor of
4988 flow.c:compute_immediate_dominators.
4989 (find_evaluations_1): Modified to work with hard registers.
4990 (insert_phi_node): Likewise.
4991 (insert_phi_nodes): Likewise.
4992 (struct rename_set_data): Updated prev_reg comment.
4993 (create_delayed_rename): Modified to work with hard registers.
4994 (RENAME_NO_RTX): Updated comment.
4995 (apply_delayed_renames): Modified to work with hard registers.
4996 (rename_insn_1): Likewise and added handling of CLOBBER rtls.
4997 (rename_block): Updated to use revised ssa_rename_to interface.
4998 (rename_registers): Updated to use revised ssa_rename_to and
4999 ssa_rename_from interface.
5000 (convert_to_ssa): Revised to use compute_immediate_dominators and
5001 deal with hard registers.
5002 (make_regs_equivalent_over_bad_edges): Modified to work with hard
5003 registers. Added check for illegal unification of hard register.
5004 (make_equivalent_phi_alternatives_equivalent): Modified to work
5005 with hard registers.
5006 (compute_conservative_reg_partition): Likewise.
5007 (coalesce_if_unconflicting): Modified to work with hard registers
5008 and check for conflicting hard registers.
5009 (mark_phi_and_copy_regs): Revised loop to work only on pseudo
5010 registers.
5011 (rename_equivalent_regs_in_insn): Modified to work with hard
5012 registers.
5013 (record_canonical_element_1): Added definition.
5014 (check_hard_regs_in_partition): Added definition.
5015 (convert_from_ssa): Added data structure deallocation and check
5016 for illegal hard register unification.
5017 (conflict_hard_regs_p): Added definition.
5018 * toplev.c (rest_of_compilation): Added comment.
5019
5020 2000-07-31 Anthony Green <green@redhat.com>
5021
5022 * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
5023
5024 2000-07-31 Jason McMullan <jmcmullan@linuxcare.com>
5025
5026 * builtins.c (expand_builtin_apply): Don't defer pop during
5027 argument setup.
5028
5029 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5030
5031 * calls.c (combine_pending_stack_adjustment_and_call): Only use
5032 preferred_unit_stack_boundary when it is > 1.
5033
5034 2000-07-31 Joseph S. Myers <jsm28@cam.ac.uk>
5035
5036 * c-common.c (init_function_format_info): Add C99 format functions
5037 in C99 mode.
5038
5039 * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
5040 void' or 'register void' as being the special case of 'void' alone
5041 in a parameter list.
5042
5043 * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
5044 discarding qualifiers into a plain warning.
5045
5046 2000-07-31 Kazu Hirata <kazu@hxi.com>
5047
5048 * combine.c: Fix formatting.
5049
5050 * h8300.md: Fix formatting.
5051
5052 * local-alloc.c: Fix formatting.
5053
5054 * h8300.c (get_shift_alg): Remove the variable alg.
5055 (emit_a_shift): Rearrange code to improve readability.
5056
5057 * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
5058
5059 * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
5060 HImode on all architectures and a combination of HImode and SImode
5061 on H8/300H and H8/S.
5062
5063 * h8300.c (split_adds_subs): Rearrange code for conciseness.
5064
5065 Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
5066
5067 * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
5068 in my last checkin.
5069
5070 Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
5071
5072 * recog.c (extract_insn): Set operand_mode according to
5073 operand if match_operand is VOIDmode.
5074
5075 Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
5076
5077 * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
5078
5079 2000-07-31 Geoff Keating <geoffk@cygnus.com>
5080
5081 * c-parse.in (extdefs): Call ggc_collect between external
5082 definitions.
5083
5084 2000-07-30 Michael Hayes <mhayes@cygnus.com>
5085 Richard Henderson <rth@cygnus.com>
5086
5087 * Makefile.in (OBJS): Add doloop.o.
5088 * doloop.c: New file.
5089
5090 * final.c (insn_current_reference_address): Return 0 before final.
5091 * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
5092 * jump.c (any_uncondjump_p): Likewise.
5093 * loop.c (indirect_jump_in_function): Make static.
5094 (strength_reduce): Call doloop_optimize.
5095 (insert_bct, instrument_loop_bct): Remove.
5096 * loop.h (doloop_optimize): Prototype.
5097 * recog.c (split_all_insns): Split all INSN_P.
5098 * toplev.c (flag_branch_on_count_reg): Default on.
5099
5100 * config/c4x/c4x.c (c4x_optimization_options): Don't set
5101 flag_branch_on_count_reg.
5102 * config/i386/i386.c (override_options): Likewise.
5103 * config/rs6000/rs6000.c (optimization_options): Likewise.
5104
5105 * config/i386/i386.md (decrement_and_branch_on_count): Remove.
5106 (doloop_end): New.
5107 (dbra_ge): Remove, as well as all it's splitters.
5108
5109 * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
5110 (doloop_end): New.
5111
5112 * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
5113 (ia64_register_move_cost): Declare.
5114 * config/ia64/ia64.c (ar_lc_reg_operand): New.
5115 (struct ia64_frame_info): Add ar_size.
5116 (ia64_compute_frame_size): Set it.
5117 (save_restore_insns): Save and restore ar.lc.
5118 (ia64_register_move_cost): New, moved from header file. Handle
5119 application registers.
5120 (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers.
5121 (emit_insn_group_barriers): Special case doloop_end_internal.
5122 (ia64_epilogue_uses): Mark ar.lc live at end.
5123 * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
5124 (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
5125 (FIRST_PSEUDO_REGISTER): Make room.
5126 (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
5127 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
5128 (REG_ALLOC_ORDER): Update.
5129 (HARD_REGNO_MODE_OK): Update.
5130 (REGISTER_NAMES): Update.
5131 (enum reg_class): Add AR_M_REGS and AR_I_REGS.
5132 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
5133 (REGNO_REG_CLASS): Update.
5134 (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
5135 (REGISTER_MOVE_COST): Move out of line.
5136 (PREDICATE_CODES): Update.
5137 * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
5138 (addsi3_plus1_alt, adddi3_plus1_alt): New.
5139 (shladd_elim splitter): Allow constants in the predicate.
5140 (doloop_end, doloop_end_internal): New.
5141
5142 2000-07-30 Richard Henderson <rth@cygnus.com>
5143
5144 * genattrtab.c (struct insn_def): Add lineno member.
5145 (struct insn_ent): Likewise.
5146 (struct attr_desc): Likewise.
5147 (struct delay_desc): Likewise.
5148 (struct function_unit_op): Likewise.
5149 (struct function_unit): Likewise.
5150 (check_attr_value): Use message_with_line.
5151 (check_defs): Likewise.
5152 (expand_units): Likewise.
5153 (check_attr_test): Take a lineno argument.
5154 (gen_attr): Likewise.
5155 (gen_insn): Likewise.
5156 (gen_delay): Likewise.
5157 (gen_unit): Likewise.
5158 (main): Give it to them.
5159 (convert_set_attr_alternative): Take an insn_def argument
5160 instead of num_alt and insn_index.
5161 (convert_set_attr): Likewise.
5162 (write_test_expr): Protect INSN_ADDRESSES load
5163 with INSN_ADDRESSES_SET_P.
5164
5165 2000-07-30 Richard Henderson <rth@cygnus.com>
5166
5167 * flow.c (init_propagate_block_info): Use pc_set.
5168
5169 Sun Jul 30 20:58:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
5170
5171 * i386.md (*lea_general_[123]) New insns and splits.
5172 (addsi3 to lea splitter): Handle other modes too.
5173 (shlsi3 to lea splitter): Likewise.
5174 (addhi_1_lea, shlhi_1_lea): New patterns.
5175 (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
5176
5177 Sun Jul 30 20:51:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
5178
5179 * recog.c (general_operand, nonimmediate_operand): Accept
5180 any mode for VOIDmode CONSTANT_P operands.
5181
5182 Sun Jul 30 20:42:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
5183
5184 * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
5185 instead of replace_rtx.
5186 * recog.c (validate_replace_rtx_subexp): New function.
5187 * recog.h (validate_replace_rtx_subexp): Declare.
5188
5189 Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
5190
5191 * combine.c (simplify_set, make_extraction, make_compound_operation
5192 make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
5193 as force_to_mode argument.
5194
5195 Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
5196
5197 * combine.c (if_then_else_cond): Be sure that mode fits in
5198 HOST_WIDE_INT.
5199
5200 Sun Jul 30 20:27:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
5201
5202 * combine.c (record_promoted_value): Allow bitsize of mode
5203 to be equivalent to HOST_BITS_PER_WISE_INT.
5204
5205 Sun Jul 30 20:25:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
5206
5207 * function.c (assign_stack_local_1, assign_stack_temp_for_type):
5208 Do not call gen_mode_alignment when mode is BLKmode.
5209
5210 Sun Jul 30 20:21:54 MET DST 2000 Jan Hubicka <jh@suse.cz>
5211
5212 * loop.c (express_from_1): Fix call of simplify_gen_binary.
5213
5214 Sun Jul 30 20:08:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
5215
5216 * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
5217 VOIDmode implies both operands to be VOIDmode.
5218 (simplify_ternary_operation): Compute properly the mode of comparison.
5219 * combine.c (combine_simplify_rtx): Likewise.
5220
5221 2000-07-25 Michael Hayes <mph@paradise.net.nz>
5222
5223 * basic-block.h (struct loops): New field rc_order.
5224 * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
5225 (flow_loops_free): Free rc_order.
5226 (flow_depth_first_order_compute): New parameter rc_order.
5227 (flow_loops_find): Allocate rc_order and swap usage with
5228 dfs_order.
5229
5230 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5231 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5232
5233 * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
5234 (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
5235 (nodb_call, return_from_epilogue): Likewise.
5236 (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
5237 * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
5238 * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
5239 (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
5240 (c4x_valid_type_attribute_p): Likewise.
5241 * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
5242 (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
5243
5244 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5245
5246 * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
5247 and loadhi_big_constant if applicable.
5248 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
5249 and add new splitter.s
5250
5251 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5252
5253 * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
5254
5255 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5256
5257 * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
5258
5259 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5260
5261 * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
5262
5263 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5264
5265 * config/c4x/libgcc.S (divqf3): Improve accuracy.
5266
5267 2000-07-27 Mark Mitchell <mark@codesourcery.com>
5268
5269 Put phi nodes after NOTE_INSN_BASIC_BLOCK.
5270 * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
5271 * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
5272 (get_prev_bb_note): Likewise.
5273 (remove_scope_notes): Likewise.
5274 * flow.c (commit_one_edge_insertion): Likewise.
5275 (merge_blocks_nomove): Likewise.
5276 (verify_flow_info): Likewise.
5277 * gcse.c (insert_insn_end_bb): Likewise.
5278 * reg-stack.c (emit_swap_insn): Likewise.
5279 * ssa.c (first_insn_after_basic_block_note): New function.
5280 (insert_phi_node): Use it.
5281 (rename_block): Likewise.
5282 (eliminate_phi): Likewise.
5283 (make_regs_equivalent_over_bad_edges): Likewise.
5284 (make_equivalent_phi_alternatives_equivalent): Likewise.
5285 (for_each_successor_phi): Likewise.
5286 (convert_from_ssa): Modify phi-node deletion algorithm.
5287
5288 2000-07-29 Andreas Jaeger <aj@suse.de>
5289
5290 * configure.in (mips*-*-linux*): Use mips*el to check for little
5291 endian MIPS, add tmake_file.
5292
5293 * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
5294 (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
5295 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
5296
5297 2000-07-28 Richard Henderson <rth@cygnus.com>
5298
5299 * config/ia64/ia64.c (ia64_print_operand): Fix typos.
5300 Sign extend mode size before negating.
5301
5302 2000-07-28 Richard Henderson <rth@cygnus.com>
5303
5304 * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
5305
5306 2000-07-28 Bernd Schmidt <bernds@cygnus.co.uk>
5307
5308 * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
5309 (cse_insn): Likewise.
5310 (addr_affects_sp_p): Likewise.
5311 * expr.c (move_by_pieces): Likewise.
5312 (clear_by_pieces): Likewise.
5313 * gcse.c (oprs_unchanged_p): Likewise.
5314 * haifa-sched.c (sched_analyze_2): Likewise.
5315 * recog.c (offsettable_address_p): Likewise.
5316 * regclass.c (record_address_regs): Likewise.
5317 * reload.c (find_reusable_reload): Likewise.
5318 (push_reload): Likewise.
5319 (operands_match_p): Likewise.
5320 (decompose): Likewise.
5321 (find_reloads_address_1): Likewise.
5322 (find_inc_amount): Likewise.
5323 * reload1.c (elimination_effects): Likewise.
5324 * resource.c (mark_set_resources): Likewise.
5325 * flow.c (attempt_auto_inc): New function; mostly broken out
5326 of find_auto_inc.
5327 (find_auto_inc): Split into two functions and enhanced to
5328 generate POST_MODIFY.
5329 * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
5330 * rtl.h (count_all_occurrences): Declare.
5331 (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
5332 defined.
5333 * rtlanal.c (count_all_occurrences): New function.
5334 * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
5335 HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
5336
5337 * config/ia64/ia64-protos.h (destination_operand): Declare.
5338 * config/ia64/ia64.c (destination_operand): New function.
5339 (ia64_print_operand): Handle POST_MODIFY.
5340 (rtx_needs_barrier): Likewise.
5341 * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
5342 (HAVE_POST_MODIFY_REG): Define to 1.
5343 (MAX_REGS_PER_ADDRESS): Change to 2.
5344 (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
5345 (LEGITIMATE_ADDRESS_REG): New helper macro.
5346 (LEGITIMATE_ADDRESS_DISP): Likewise.
5347 (PREDICATE_CODES): Add entry for destination_operand.
5348 * config/ia64/ia64.md (all mov patterns): Use destination_operand
5349 predicate for operand 0.
5350
5351 2000-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5352
5353 * dwarf2out.c: Indent #error directive.
5354
5355 * gbl-ctors.h: Fix typo in comment.
5356 (__do_global_ctors): Prototype.
5357
5358 * gcse.c (record_one_set, pre_delete): Remove unused variables.
5359
5360 * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
5361 (print_operand): Initialize variable `t'.
5362
5363 2000-07-27 Aldy Hernandez <aldyh@redhat.com>
5364
5365 * config/arm/arm.md ("call_value"): removed constraints.
5366 Constraints are ignored in expanders.
5367 (*call_value_reg): split =rf into various constraints.
5368 (*call_value_mem): same
5369 (*call_value_symbol): same
5370 (*sibcall_value_insn): same
5371
5372 2000-07-28 Philipp Thomas <pthomas@suse.de>
5373
5374 * install.texi (--enable-nls): Change the description of the NLS
5375 related configure options to match the current state.
5376 (--with-included-gettext): Likewise.
5377 (--enable-maintainer-mode): New description added.
5378 * extend.texi (-fstrict-prototype): Add missing '.'.
5379
5380 2000-07-27 Jim Wilson <wilson@cygnus.com>
5381
5382 * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
5383 DECL_INITIAL (decl) == NULL_TREE.
5384
5385 2000-07-27 Alexandre Oliva <aoliva@redhat.com>
5386
5387 * Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies
5388 on insn-attr.h with it.
5389 * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
5390 * insn-addr.h: New header.
5391 (insn_addresses_): Renamed from insn_addresses.
5392 (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
5393 INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
5394 INSN_ADDRESSES_NEW): New macros.
5395 * genattrtab.c (write_test_expr): Use new macros.
5396 * final.c (insn_addresses, init_insn_lengths): Likewise.
5397 (align_fuzz, shorten_branches): Likewise.
5398 (final): Likewise. Do not reject new insns if their addresses
5399 have been added to INSN_ADDRESSES.
5400 * config/arm/arm.c, config/avr/avr.c: Use new macros.
5401 * config/h8300/h8300.c, config/i370/i370.c: Likewise.
5402 * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
5403 * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
5404 * config/sh/sh.c: Likewise.
5405 (output_branchy_insn): Use INSN_ADDRESSES_NEW.
5406
5407 * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
5408
5409 2000-07-27 Andrew Cagney <cagney@b1.cygnus.com>
5410
5411 * gcc.c (struct prefix_list): Add member priority.
5412 (enum path_prefix_priority): Declare.
5413 (add_prefix): Replace ``first'' with ``priority''. Append new
5414 entry but keep list in priority order.
5415 (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or
5416 PREFIX_PRIORITY_LAST to add_prefix.
5417 (process_command): Move include kludge - foo/stageN - to before
5418 foo/include.
5419
5420 2000-07-27 Jason Merrill <jason@redhat.com>
5421
5422 * dwarf2out.c (gen_typedef_die): Abort if we get identical
5423 TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
5424
5425 2000-07-27 RodneyBrown <RodneyBrown@pmsc.com>
5426
5427 * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
5428 * tree.h (get_alias_set, lang_get_alias_set): Prototype.
5429
5430 2000-07-27 Joseph S. Myers <jsm28@cam.ac.uk>
5431
5432 * c-decl.c (finish_function): Don't treat 'main' specially unless
5433 flag_hosted. In C99 mode, return 0 from 'main' unless
5434 DEFAULT_MAIN_RETURN is otherwise defined.
5435
5436 * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
5437 parameters defaulting to int in an old-style function definition.
5438
5439 2000-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5440
5441 * c-parse.in (string): For -Wtraditional, warn about string
5442 concatenation only once per line.
5443
5444 Thu Jul 27 09:25:17 2000 Akiko Matsushita <matusita@sra.co.jp>
5445
5446 * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
5447 for HI-UX/WE2 systems.
5448
5449 2000-07-24 Bruce Korb <bkorb@gnu.org>
5450
5451 * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
5452 defining the __xxx_TYPE__ macros.
5453 * fixincl/fixincl.tpl(gnu_type_map): now obsolete
5454 * fixincl/fixlib.h: don't need to include "tm.h" anymore
5455 * fixincl/inclhack.def(type_map): now obsolete
5456
5457 Thu Jul 27 11:54:17 2000 Andrew Cagney <cagney@b1.cygnus.com>
5458
5459 * cpp.texi: Append a trailing full-stop to xrefs where needed.
5460
5461 2000-07-26 Dave Pitts <dpitts@cozx.com>
5462
5463 * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
5464 routine constants.
5465 (mvs_hash_alias): New function.
5466 (mvs_add_alias): Change argument spacing.
5467 (mvs_need_alias): Change aliasing criteria. Added documentation.
5468 (mvs_get_alias): Change to use hashed name. The hashed name prevents
5469 CSECT name collisions.
5470 (mvs_check_alias): Likewise.
5471 (handle_pragma): Change documentation.
5472 * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
5473 mode from SImode to DImode.
5474 (iorhi3): Changed LTORG size for insn.
5475
5476 Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com>
5477
5478 * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
5479 mem if the address is a mode_dependent_address_p.
5480
5481 2000-07-26 Kazu Hirata <kazu@hxi.com>
5482
5483 * h8300.c (print_operand): Print ":8" when the 'R' operand is
5484 suitable for 8-bit absolute.
5485 * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
5486 (OK_FOR_U): Add a case for the 8-bit constant address on the
5487 H8/300H.
5488
5489 Wed Jul 26 19:26:21 2000 Hans-Peter Nilsson <hp@axis.com>
5490
5491 * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
5492 && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
5493 ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
5494 lack of implemented alignment.
5495
5496 2000-07-26 Geoffrey Keating <geoffk@cygnus.com>
5497
5498 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
5499 cross-compiling between 64-bit and 32-bit machines.
5500
5501 2000-07-27 Richard Henderson <rth@cygnus.com>
5502
5503 * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
5504 (movhicc_astep, movhi_internal_astep): New.
5505 (movsicc_astep, movsi_internal_astep): New.
5506 (movdicc_astep, movdi_internal_astep): New.
5507 (movsfcc_astep, movsf_internal_astep): New.
5508 (movdfcc_astep, movdf_internal_astep): New.
5509 (movxfcc_astep, movxf_internal_astep): New.
5510 (cmovdi_internal_astep, cmovsi_internal_astep): New.
5511 Unify the cmov[ds]i splitters.
5512
5513 2000-07-27 Rodney Brown <RodneyBrown@pmsc.com>
5514
5515 * real.c (asctoeg): Rename `error' label to unexpected_char_error
5516
5517 2000-07-26 Nick Clifton <nickc@cygnus.com>
5518
5519 * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
5520 __arm__. Allow it to be defined by CPP_ISA_SPEC in arm.h
5521
5522 * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
5523 well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
5524
5525 2000-07-26 Alexandre Oliva <aoliva@redhat.com>
5526
5527 * c-decl.c (finish_enum): Convert enumerations that fit in an
5528 `int' to `int'.
5529 (build_enumerator): In pedantic mode, cast to `int' those that
5530 don't.
5531
5532 2000-07-25 Rodney Brown <RodneyBrown@pmsc.com>
5533
5534 * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
5535
5536 Tue Jul 25 23:08:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
5537
5538 * sh.md (cmpgtdi_t): Must be split.
5539 (cmpgtdi_t+1): New splitter.
5540
5541 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
5542
5543 * cpplib.c (_cpp_check_directive): Issue -Wtraditional
5544 warnings for indented directives even if we are skipping.
5545
5546 2000-07-25 Nathan Sidwell <nathan@codesourcery.com>
5547
5548 * invoke.texi (strict-prototypes): Remove.
5549 * extend.texi (Deprecated Features): Add strict-prototypes.
5550 (Backwards Compatibility): New node.
5551
5552 2000-07-25 Jakub Jelinek <jakub@redhat.com>
5553
5554 * config/i386/i386.md (andsi_1+1): Allow HImode.
5555 (andsi_1+2): Require q_regs_operand.
5556
5557 2000-07-25 Jakub Jelinek <jakub@redhat.com>
5558
5559 * config/i386/i386.md (call_pop): Check operands[0],
5560 not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
5561 (call): Likewise.
5562 (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
5563 (call_value): Likewise.
5564
5565 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
5566
5567 * toplev.c (pipe_closed): Delete.
5568 (crash_signal): New. Generate ICE for a fatal signal.
5569 (float_signal): Call crash_signal outside a float-handler
5570 block, not abort.
5571 (main): Install crash_signal as handler for core-dumping signals.
5572
5573 2000-07-25 David Edelsohn <edelsohn@gnu.org>
5574
5575 * rs6000.c (print_operand, case 'T'): New case.
5576
5577 * rs6000.md (call_indirect_aix32): Convert to expander of
5578 scheduled instructions.
5579 (call_indirect_aix64): Likewise.
5580 (call_value_indirect_aix{32,64}): Likewise.
5581 (call, call_value): Invoke expanders for AIX. Fall through to
5582 matchers for SysV.
5583 (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
5584 (call_value_indirect_nonlocal_aix{32,64}): New patterns.
5585 (call_nonlocal_aix32): Remove CALL_LONG alternative. Operand 1
5586 only "g" constraint.
5587 (call_nonlocal_aix64): Likewise.
5588 (call_value_nonlocal_aix{32,64}): Likewise.
5589 (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
5590 operands.
5591 (call_value_nonlocal_sysv): New pattern.
5592 (indirect_jump{si,di}): Use new 'T' modifier.
5593 (tablejump{si,di} matchers): Likewise.
5594 (return_internal_{si,di}): Likewise.
5595 (return_eh_{si,di}): Likewise.
5596
5597 2000-07-24 Richard Henderson <rth@cygnus.com>
5598
5599 * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
5600 * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
5601 * config/ia64/ia64.md (movdi_internal): Use it.
5602
5603 2000-07-24 Zack Weinberg <zack@wolery.cumb.org>
5604
5605 * cppexp.c: Warn about unary + if -Wtraditional.
5606 * cpplex.c (lex_line): Always set BOL on the first token of a line.
5607
5608 2000-07-24 Michael Meissner <meissner@redhat.com>
5609
5610 * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
5611 unsupported macro.
5612
5613 2000-07-24 Nick Clifton <nickc@cygnus.com>
5614
5615 * config/arm/arm.c (emit_multi_reg_push): Generate a
5616 REG_FRAME_RELEATED_NOTE that is compatable with the code in
5617 dwarf2out_debug_frame_expr.
5618
5619 2000-07-24 Jason Merrill <jason@redhat.com>
5620
5621 * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
5622 UNALIGNED_INT_ASM_OP.
5623 (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
5624 a location expression.
5625 (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff. Don't
5626 assume indirect access if we're saving the CFA address exactly.
5627
5628 * Makefile.in (bootstrap): Move -BstageN/ to the end.
5629
5630 2000-07-24 Jakub Jelinek <jakub@redhat.com>
5631
5632 * tradcpp.c (main): Update max_include_len for cpp_include_defaults
5633 as well.
5634
5635 2000-07-24 Michael Meissner <meissner@redhat.com>
5636
5637 * invoke.texi (D30V Options): Add d30v options.
5638
5639 Mon Jul 24 02:04:52 2000 Jeffrey A Law (law@cygnus.com)
5640
5641 * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
5642 needed by our gcse pass anymore.
5643 (free_pre_mem): Corresponding changes.
5644 (compute_pre_data): Do not call compute_transpout anymore.
5645
5646 * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
5647 (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
5648 changes.
5649
5650 * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
5651 (compute_pre_data): Do it here instead.
5652
5653 * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
5654 'temp_bitmap'.
5655 (pre_delete): Corresponding changes.
5656
5657 2000-07-23 Mark Mitchell <mark@codesourcery.com>
5658
5659 * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
5660 to figure out whether or not a variable has already been emitted.
5661
5662 Sun Jul 23 14:49:12 2000 Jason Eckhardt <jle@cygnus.com>
5663
5664 * config/i860/i860.md (untyped_call expander): Use GEN_CALL
5665 instead of gen_call.
5666
5667 Sun Jul 23 11:52:03 2000 George Helffrich (george@gly.bris.ac.uk)
5668
5669 * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
5670
5671 2000-07-23 Kazu Hirata <kazu@hxi.com>
5672
5673 * h8300.c: Fix formatting.
5674
5675 2000-07-23 Joseph S. Myers <jsm28@cam.ac.uk>
5676
5677 * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
5678 for `long' switch expression into a plain warning.
5679
5680 * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
5681 (yylex): Don't pedwarn for "inline" in C99 mode.
5682
5683 * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
5684 with %p.
5685 * ggc-page.c (debug_print_page_list, alloc_page, free_page,
5686 ggc_alloc): Likewise.
5687 * bb-reorder.c (dump_scope_forest_1): Likewise.
5688
5689 2000-07-22 Aldy Hernandez <aldyh@redhat.com>
5690
5691 * reload.c (find_reloads_toplev): Add new parameter
5692 "address_reloaded".
5693 (find_reloads): Add new parameter to find_reloads_toplev calls.
5694
5695 2000-07-22 Jeffrey Oldham <oldham@codesourcery.com>
5696
5697 * collect2.c (main): Typo fixed.
5698 * diagnostic.c: Typo fixed.
5699 * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
5700 * eh-common.h: Typo fixed.
5701 * emit-rtl.c (start_sequence): Typo fixed.
5702 * flow.c (find_label_refs): Typo fixed.
5703 (calculate_global_regs_live): Typo fixed.
5704 (mark_regno_cond_dead): Typo fixed.
5705 (create_edge_list): Typos fixed.
5706 (verify_edge_list): Typo fixed.
5707 * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
5708 * loop.c (strength_reduce): Typo in function name fixed.
5709 * rtl.h: Added comments. Typo in function name fixed.
5710 * rtlanal.c: Typo in function name fixed.
5711 (insn_dependant_p): Rename to ...
5712 (insn_dependent_p): ... this.
5713 (computed_jumo_p): Typo fixed.
5714
5715 2000-07-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5716
5717 * system.h (__FUNCTION__): Wrap definition in #ifndef.
5718
5719 2000-07-21 David Edelsohn <edelsohn@gnu.org>
5720
5721 * rs6000.h (SIZE_TYPE): Define.
5722
5723 2000-07-21 Mark Mitchell <mark@codesourcery.com>
5724
5725 * ssa.c (rename_insn_1): Don't rename registers that are
5726 CLOBBERed.
5727
5728 2000-07-21 Zack Weinberg <zack@wolery.cumb.org>
5729
5730 * diagnostic.c (trim_filename, fancy_abort): Moved here from
5731 rtl.c.
5732 (fatal_function, set_fatal_function): Removed.
5733 (fatal): Don't prepare for or call the fatal_function.
5734 (diagnostic_lock, error_recursion): New.
5735 (diagnostic_for_decl, report_diagnostic): Guard against
5736 re-entering the error reporting routines.
5737 (fancy_abort): Assume function is not NULL.
5738
5739 * errors.c (fancy_abort): New. Assume function is not NULL.
5740 * tradcpp.c (fancy_abort): Assume function is not NULL.
5741
5742 * system.h: Provide default definition of __FUNCTION__.
5743 * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
5744 Always use __FUNCTION__ in definition of abort.
5745 * tree.h: Likewise.
5746 * varray.h: Likewise.
5747 * toplev.h: Likewise. Don't prototype set_fatal_function.
5748
5749 2000-07-20 Geoff Keating <geoffk@cygnus.com>
5750
5751 * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
5752 in 64-bit mode.
5753 * glimits.h: Don't do #if defined for ARCH_PPC.
5754
5755 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
5756 constants of size no larger than a pointer should go in the TOC.
5757 Add 'MODE' parameter.
5758 (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
5759 ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
5760 (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
5761 * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
5762 * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
5763 * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
5764 (rs6000_legitimize_address): Likewise.
5765 (rs6000_emit_move): Likewise.
5766 (rs6000_select_rtx_section): Likewise.
5767 (output_toc): Deal properly with outputting small constants like
5768 HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
5769 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
5770 MODE parameter. Put small constants in the TOC.
5771
5772 * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
5773 easy in SImode.
5774 (rs6000_emit_move): When reload calls us with an illegitimate
5775 address, exit early. Move the change_address calls to one place
5776 at the end of the routine. Merge the SImode and DImode expanders.
5777 When called by reload to put an integer into a FP register, force
5778 it to memory.
5779
5780 * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
5781 field.
5782 (rs6000_hash_constant): Hash mode too.
5783 (toc_hash_function): Allow for key_mode.
5784 (toc_hash_eq): Structures are different if key_mode differs.
5785 (output_toc): Add 'mode' parameter. Save key_mode.
5786 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
5787 Pass 'mode' parameter.
5788 * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
5789
5790 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
5791 for vtable references.
5792
5793 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
5794 choice, don't put integer values in FP regs.
5795
5796 Thu Jul 20 18:13:52 2000 Jeffrey A Law (law@cygnus.com)
5797
5798 * flow.c (verify_flow_info): Revamp code to verify that the
5799 head and end of each basic block are in the insn chain.
5800
5801 Thu Jul 20 18:02:35 2000 Michael Matz <matzmich@cs.tu-berlin.de>
5802
5803 * gcse.c (record_one_set): Prepend instead of append onto
5804 reg_set_table, making it O(n) instead O(n^2).
5805 * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
5806 Use a queue instead of a stack as worklist.
5807
5808 2000-07-20 Kazu Hirata <kazu@hxi.com>
5809
5810 * h8300.c (two_insn_adds_subs_operand): Fix a typo.
5811 * h8300.h (OK_FOR_T): New.
5812 (EXTRA_CONSTRAINT): Support OK_FOR_T.
5813 * h8300.md: Use inc/dec.[wl] for increment/decrement
5814 by 1 and 2 in HI and SI modes.
5815
5816 2000-07-20 Jim Wilson <wilson@cygnus.com>
5817
5818 * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
5819 larger than 14 bits.
5820
5821 2000-07-20 Zack Weinberg <zack@wolery.cumb.org>
5822
5823 * cppmacro.c (CAN_PASTE_AFTER): New macro.
5824 (count_params): Don't set GNU_REST_ARGS on anything.
5825 (save_expansion): Set PASTE_LEFT only on tokens for which
5826 CAN_PASTE_AFTER is true, or which are named operators.
5827
5828 * cpplex.c (parse_args): Distinguish between a rest argument
5829 given one empty argument, and a rest argument given zero arguments.
5830 (maybe_paste_with_next): Look for VOID_REST tag, and trigger
5831 deletion of previous token based on that.
5832 (get_raw_token): Flatten some control structure.
5833
5834 * cpplib.h (CPP_LAST_EQ): Correct.
5835 (VOID_REST): New token flag.
5836 (GNU_REST_ARGS): Delete.
5837
5838 * tradcpp.c (main): Don't munge -D options.
5839 (make_definition): Bring -D handling in line with cpplib.
5840 (do_define): Strip all leading whitespace from macro definitions.
5841
5842 2000-07-20 David Billinghurst <David.Billinghurst@riotinto.com.au>
5843
5844 * Makefile.in (tradcpp): Depend on intl.o and version.o.
5845
5846 2000-07-20 Bruce Korb <bkorb@gnu.org>
5847
5848 * fixincl/check.tpl: strip the platform specific types before testing
5849 * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
5850 * fixincl/fixincl.tpl: use platform specific types
5851 * fixincl/fixlib.h: include the platform specific types
5852 * fixincl/inclhack.def(gnu_types): don't supply the types
5853 * fixincl/fixincl.x: regen
5854
5855 2000-07-19 Jim Wilson <wilson@cygnus.com>
5856
5857 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
5858 GR_REGS.
5859
5860 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
5861
5862 * tradcpp.c (rescan): Do not recognize directives when the #
5863 is indented.
5864
5865 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
5866
5867 Implement C++ named operators.
5868
5869 * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
5870 of operators allowed in #if and having an _EQ variant. Add
5871 CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
5872 (cpp_token flags): Add NAMED_OP.
5873 (enum node_type): Add T_OPERATOR.
5874 (struct cpp_hashnode): Add code slot to value union.
5875 * cpphash.h (spec_nodes): Remove n_defined.
5876
5877 * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
5878 (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
5879 (is_macro_disabled): Tweak error messages.
5880
5881 * cpplib.c (get_define_node): Disallow all named operators as
5882 macro names. Tweak error messages.
5883 (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
5884
5885 * cppinit.c (builtin_array): Add entries for the named operators.
5886 * cppexp.c (lex): Check for CPP_DEFINED token.
5887 (priority table): Add entries for CPP_MIN and CPP_MAX.
5888 (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
5889
5890 2000-07-19 Bernd Schmidt <bernds@cygnus.co.uk>
5891
5892 * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
5893 larger than the array of cuids.
5894 (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
5895 cuids.
5896
5897 2000-07-19 Bruce Korb <bkorb@gnu.org>
5898
5899 * fixinc/fixincl.c: Convert to using a table of environment variables
5900 and activate the auto-edit marker on the fixed output files.
5901 * fixinc/fixlib.h: Define the environment table
5902 * fixinc/fixincl.sh: export the ${INPUT} dir
5903 * fixinc/check.tpl: likewise
5904
5905 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
5906
5907 * gcc.c (.h spec): Fix typo.
5908
5909 Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
5910
5911 * Makefile.in: Fix tradcif.c path.
5912
5913 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
5914
5915 * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
5916 macros, not five.
5917
5918 * cpphash.h (TOKEN_NAME): New macro.
5919 (_cpp_spell_operator): Deleted.
5920 (token_spellings): Now _cpp_token_spellings.
5921
5922 * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
5923 * cpplex.c: Use OP and TK macros when expanding the
5924 TTYPE_TABLE. Eliminate token_names. For non-OPERATOR tokens,
5925 store the stringification of the enumeration name (CPP_CHAR,
5926 etc.) in the name slot of token_spellings.
5927 Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
5928 token_spellings directly.
5929 * cpplib.c: Use TOKEN_SPELL.
5930
5931 * cpplex.c (_cpp_push_token): If the token being pushed back
5932 is the previous token in this context, just subtract one from
5933 context->posn.
5934 * cppmacro.c (save_expansion): Clear aux field when storing a
5935 placemarker.
5936
5937 2000-07-18 Jakub Jelinek <jakub@redhat.com>
5938
5939 * cpplex.c (cpp_scan_buffer): Output line command even at the stop
5940 buffer, provided it is not NULL.
5941
5942 2000-07-18 Alexandre Oliva <aoliva@redhat.com>
5943
5944 * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
5945 case of invalid volatile re-declaration.
5946
5947 2000-07-18 Jakub Jelinek <jakub@redhat.com>
5948
5949 * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
5950 (expand_call): Adjust caller.
5951
5952 2000-07-17 Gabriel Dos Reis <gdr@codesourcery.com>
5953
5954 * diagnostic.h (report_diagnostic): Change prototype.
5955
5956 * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
5957 diagnostic_for_decl): Change prototype.
5958 (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
5959 error, warning, error_with_file_and_line,
5960 warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
5961 Adjust call to report_diagnostic, diagnostic_for_decl.
5962 (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
5963 (output_verbatim, verbatim): Adjust call to output_do_verbatim.
5964
5965 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
5966 varaible argument list.
5967
5968 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
5969
5970 * cpphash.c: Don't include hashtab.h. Most macro-handling code
5971 moved to cppmacro.c.
5972 (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
5973 dump_hash_helper): Delete.
5974 (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
5975 cpp_forall_identifiers): New. Implement specialized version of
5976 Vlad's expandable hash table.
5977 (cpp_lookup): Use new functions.
5978 (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
5979 implementation.
5980 * cppmacro.c: New file.
5981 * cppinit.c (dump_macros_helper): New.
5982 (cpp_finish): Iterate over the identifier table directly.
5983 * cpplex.c (parse_name): Calculate the hash of the identifier
5984 while we scan it. Use _cpp_lookup_with_hash when we can.
5985
5986 * cpphash.h: Update prototypes.
5987 (xcnewvec, HASHSTEP): New helper macros.
5988 * cpplib.h: Update prototypes.
5989 * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
5990 (cppmacro.o): New rule.
5991 (cpphash.o): Update deps.
5992
5993 * cppmain.c: Do not set pfile->printer if no_output is on.
5994
5995 2000-07-15 Neil Booth <neilb@earthling.net>
5996
5997 * cpplib.c: Change all directive-handler functions to return
5998 void, not int.
5999 * cpphash.h: Update typedefs.
6000
6001 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
6002
6003 * configure: Regenerate.
6004
6005 * extend.texi (Extended Asm): Mention that a memory clobber
6006 does not count as a side-effect.
6007
6008 * unroll.c (copy_loop_body): Fix one instance of using host
6009 arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
6010 cross-compile.
6011
6012 * tlink.c (scan_linker_output): Tweak for output of AIX ld.
6013
6014 2000-07-17 Richard Henderson <rth@cygnus.com>
6015
6016 * config/ia64/ia64.md (movdi): Split out load address code.
6017 New post-reload splitter for symbolic operands.
6018 (movdi_internal): Abort if we didn't split symbolic operands
6019 when we should have.
6020 * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
6021 (ia64_reorg): Split insns when not optimizing.
6022 * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
6023
6024 Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
6025
6026 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
6027 instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
6028
6029 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
6030
6031 * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
6032
6033 2000-07-17 Jason Merrill <jason@redhat.com>
6034
6035 * Makefile.in (clean): Remove libgcc directory.
6036
6037 * configure.in (-Wno-long-long check): Use higher-level macros.
6038
6039 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
6040
6041 * simplify-rtx.c (simplify_binary_operation): Recognize
6042 (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
6043 (simplify_ternary_operation): Do not examine MODE_BITSIZE of
6044 a CONST_INT, it will always be zero.
6045
6046 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
6047
6048 * loop.c (check_dbra_loop) : Return if more than one condition is
6049 present to control the loop.
6050
6051 Mon Jul 17 08:26:35 2000 Clinton Popetz <cpopetz@cygnus.com>
6052
6053 * mips.c (mips_expand_prologue): Don't calculate the last argument
6054 register unless we need it. When we are calculating this, make
6055 sure FUNCTION_ARG is giving us a REG.
6056
6057 2000-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
6058
6059 * flow.c (libcall_dead_p): Use single_set to verify the insn
6060 has only one set and get for analysis.
6061 (propagate_one_insn): Don't pass the PATTERN of the insn.
6062
6063 2000-07-17 Mark Klein <mklein@dis.com>
6064
6065 * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
6066
6067 2000-07-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6068
6069 * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
6070 * configure.in (TARGET_GETGROUPS_T): Evaluate.
6071 * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
6072 of second argument of getgroups.
6073 * configure, config.in: Rebuilt.
6074
6075 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
6076
6077 * simplify-rtx.c (simplify_relational_operation): Two signed
6078 values with equal high words are less/greater than each other if
6079 their low words are less/greater when considered as unsigned.
6080
6081 Mon Jul 17 02:37:06 2000 Marc Espie <espie@openbsd.org>
6082
6083 * configure.in (vax-*-openbsd): Change to new style configuration,
6084 add collect2/float_format information.
6085 * configure: Rebuilt.
6086 * config/vax/openbsd1.h: New.
6087 * config/vax/openbsd.h: New.
6088 * config/vax/t-openbsd: New.
6089
6090 2000-07-17 Chip Salzenberg <chip@valinux.com>
6091
6092 * c-common.c (shorten_compare): Quiet warnings about unsigned
6093 comparisons with zero when they occur in a system header.
6094
6095 2000-07-17 Joseph S. Myers <jsm28@cam.ac.uk>
6096
6097 * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
6098 update to describe current practice.
6099
6100 * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
6101
6102 * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
6103 references to C9X. Change references to -fstd and -flang-isoc9x
6104 to refer to -std.
6105
6106 * c-common.c (scan_char_table): Allow "z" length modifiers on
6107 diouxXn formats.
6108 (check_format_info): Use TYPE_DOMAIN on the type matched against
6109 for "z" formats, to retrieve the language size_t rather than the
6110 internal one.
6111
6112 * c-common.c (check_format_info): Do not make a pedantic objection
6113 to the 'L' length modifier if used with a floating point type
6114 character.
6115
6116 * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
6117 constants in C99 mode.
6118
6119 2000-07-17 Kazu Hirata <kazu@hxi.com>
6120
6121 * h8300.md: Fix the format of mac.
6122 (movsi_h8300hs): Output a tab after stmac instead of a space.
6123
6124 * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
6125 profitable adds/subs sequences.
6126
6127 * fold-const.c: Fix comment typos.
6128
6129 2000-07-16 Laurynas Biveinis <lauras@softhome.net>
6130
6131 * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
6132
6133 2000-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6134
6135 * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
6136
6137 2000-07-16 Neil Booth <NeilB@earthling.net>
6138
6139 * cpplex.c: Update comments.
6140 * README.Portability: Small update.
6141
6142 2000-07-16 Neil Booth <NeilB@earthling.net>
6143
6144 * README.Portability: Small update.
6145
6146 2000-07-15 Richard Henderson <rth@cygnus.com>
6147
6148 * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
6149 * config/ia64/ia64.c (ia64_move_ok): New function.
6150 * config/ia64/ia64.md (movqi, movqi_internal): Use it.
6151 (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
6152
6153 2000-07-15 Zack Weinberg <zack@wolery.cumb.org>
6154
6155 * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
6156 immediately following a paste operator.
6157 * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
6158 (cpp_reader_init): Call it, if HOST_EBCDIC.
6159 (cpp_handle_options): Do not sort option list here.
6160 (handle_option): Rename to cpp_handle_option and export.
6161 * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
6162 _cpp_get_token directly.
6163 (cpp_scan_line): Return 0 at EOF, 1 otherwise.
6164 * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
6165 * cpplib.h: Prototype cpp_handle_option. Update prototype of
6166 cpp_scan_line.
6167
6168 2000-07-15 Richard Henderson <rth@cygnus.com>
6169
6170 * fold-const.c (extract_muldiv): Don't optimize past an unsigned
6171 cast around an expression. Tidy other unsigned tests.
6172
6173 2000-07-15 Gabriel Dos Reis <gdr@codesourcery.com>
6174
6175 * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
6176 v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
6177 (v_message_with_decl): Rename to ...
6178 (format_with_decl): ... this. Tweak
6179 (diagnostic_for_decl): New function.
6180 (fatal_io_error): Use verbatim in lieu of notice.
6181 (announce_function): Use verbatim.
6182 (default_print_error_function): Likewise.
6183 (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
6184 infratructure.
6185
6186 2000-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6187
6188 * mips.c (function_arg_pass_by_reference): Don't do automatic
6189 aggregate initialization.
6190 (machine_dependent_reorg): Initialize variable `mode'.
6191
6192 * mips.md (absdi2): Change variable `regno1' to unsigned int.
6193 (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
6194 conflicts with sys/param.h macro of the same name.
6195 (reload_outdi): Likewise.
6196
6197 2000-07-15 Michael Meissner <meissner@redhat.com>
6198
6199 * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
6200 == CONST + INCREMENT, don't overwrite the tree node for FOO++,
6201 create a new node instead.
6202
6203 2000-07-15 Neil Booth <NeilB@earthling.net>
6204
6205 * README.Portability: Correct example about calling a function
6206 through a pointer to function. Format wide paragraphs.
6207
6208 2000-07-15 Michael Meissner <meissner@redhat.com>
6209
6210 * README.Portability: Update integer suffixes and function
6211 prototype sections.
6212
6213 2000-07-15 Neil Booth <NeilB@earthling.net>
6214
6215 * README.Portability: Small update.
6216
6217 2000-07-15 Neil Booth <NeilB@earthling.net>
6218
6219 * README.Portability: New file.
6220
6221 Fri Jul 14 18:13:53 2000 Mark P Mitchell <mark@codesourcery.com>
6222
6223 * INSTALL: Give special instructions for building GCC on Irix 6.
6224 * config/mips/x-iris6 (CC): Don't set it.
6225 (OLDCC): Likewise.
6226
6227 2000-07-14 Jason Merrill <jason@redhat.com>
6228
6229 * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
6230 register in the stack and later in another register, use the new
6231 register.
6232
6233 Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com>
6234
6235 * config/mips/mips.md: (absdi2): Handle sign_extend for
6236 second operand.
6237
6238 2000-07-14 Nathan Sidwell <nathan@codesourcery.com>
6239
6240 * cpplib.c (do_pragma_dependency): Tidy warning messages.
6241
6242 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
6243
6244 * .cvsignore: Correct typo.
6245
6246 2000-07-13 Mark Mitchell <mark@codesourcery.com>
6247
6248 * .cvsignore: Add generated YACC files.
6249 * objc/.cvsignore: New file.
6250
6251 2000-07-14 Neil Booth <NeilB@earthling.net>
6252
6253 * cpplex.c (adjust_column): New funcion.
6254 (skip_whitespace): Use it.
6255 (skip_block_comment): Use it, and warn about /*/* with
6256 -Wcomments.
6257
6258 2000-07-14 Neil Booth <NeilB@earthling.net>
6259
6260 * cpphash.c (struct macro_info): Add new members.
6261 (_cpp_free_definition): Delete the macro directly.
6262 (count_params): Return void, with first token of
6263 expansion in struct macro_info on success.
6264 (parse_define): Return int. Hoist syntax checking from
6265 save_macro_expansion. Leave call to save_expansion to
6266 _cpp_create_definition.
6267 (alloc_macro): Needs just 2 arguments.
6268 (free_macro): Delete.
6269 (save_expansion): Don't perform syntax check.
6270 (_cpp_create_definition): Call save_expansion.
6271
6272 2000-07-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6273
6274 * genrecog.c (write_header): Split long string.
6275
6276 * cpphash.c (macro_info): Don't use the `signed' keyword.
6277
6278 * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
6279
6280 2000-07-13 Jakub Jelinek <jakub@redhat.com>
6281
6282 * calls.c (stored_args_map): New variable.
6283 (check_sibcall_argument_overlap_1): New.
6284 (check_sibcall_argument_overlap): New.
6285 (expand_call): Initialize stored_args_map.
6286 Call check_sibcall_argument_overlap.
6287
6288 2000-07-13 Bruce Korb <bkorb@gnu.org>
6289
6290 * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
6291 (emit_gnu_type): utility procedure for gnu_type_fix
6292 (gnu_type_fix): implement various pre-processor guards around
6293 standard types so these types can be defined over and over
6294 * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
6295 types alluded to above will have GNU-compliant base types
6296 * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
6297 * fixinc/inclhack.def: add test_text entries and utilize the new
6298 "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
6299 * fixinc/fixincl.x: regenerate
6300
6301 2000-07-12 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
6302
6303 * diagnostic.c (vline_wrapper_message_with_location,
6304 v_message_with_file_and_line, v_error_with_file_and_file,
6305 v_error_for_asm, v_warning_for_asm, vfatal,
6306 v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
6307 vsorry, verror, vwarning, vpedwarn): Remove.
6308 (diagnostic_for_asm): New function.
6309 (pedwarn, error, warning, pedwarn_with_file_and_line,
6310 error_with_file_and_line, warning_with_file_and_line, sorry,
6311 error_for_asm, warning_for_asm, fatal): Reimplement.
6312 (finish_diagnostic): Clear diagnostic info as well.
6313
6314 2000-07-13 Neil Booth <NeilB@earthling.net>
6315
6316 * c-common.h (flag_digraphs): New.
6317 * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
6318 * c-lex.c (yylex): Use flag_digraphs to decide whether to
6319 honour digraphs.
6320
6321 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
6322
6323 * gcc.c (do_spec_1): Add new %B operator.
6324 (set_input): Prepare for %B.
6325
6326 (link_command_spec): Move up with the other tm.h-
6327 overrideable specs. Factor out the portion conditional on
6328 LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
6329 (struct compiler): Just have a single spec string. All users
6330 updated.
6331 (default_compilers): Remove unnecessary braces.
6332 (static_specs): Update.
6333
6334 (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
6335 named specs.
6336 (C and assembly specs): Use the new named specs, as appropriate.
6337
6338 * objc/lang-specs.h: Use the new named specs.
6339 Remove unnecessary braces.
6340
6341 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
6342
6343 * gcc.c (execute): If a subprocess gets a fatal signal, report
6344 strsignal() of the signal number, and ask for a bug report.
6345 Do not do this for SIGPIPE if there's already been an error.
6346
6347 * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE.
6348 Delete pipe_closed.
6349
6350 * tradcif.c: Remove.
6351
6352 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
6353
6354 * final.c (profile_function): Do not emit profile counters in
6355 the data section, if NO_PROFILE_COUNTERS is defined.
6356 * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for
6357 FUNCTION_PROFILER.
6358
6359 * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
6360 (FUNCTION_PROFILER): Just emit a call to mcount.
6361
6362 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
6363
6364 * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
6365
6366 * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
6367 cpplib.c, cpplib.h: Eradicate all traces of code dependent on
6368 traditional, lang_chill, or lang_fortran.
6369
6370 * cppfiles.c: #undef strcmp to suppress warning about macros
6371 used without arguments.
6372 (_cpp_execute_include): Use f, not fname, in "No include path"
6373 error.
6374 (_cpp_pop_file_buffer): New function.
6375 * cpplib.c: Don't include <sys/mman.h>.
6376 (cpp_push_buffer): Set line_base and lineno in new buffer.
6377 (cpp_pop_buffer): Use _cpp_pop_file_buffer.
6378
6379 * cpplex.c: Move all prototypes and structure declarations to the
6380 top of the file. Properly parenthesise some macro arguments.
6381 (cpp_scan_line): New function.
6382 (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
6383 don't need to walk up the stack counting.
6384
6385 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6386
6387 * c-common.c (combine_strings): Emit a pedantic warning when a
6388 string length is greater than the minimum ANSI C is required
6389 to support.
6390
6391 Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com)
6392
6393 * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
6394 * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
6395
6396 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6397
6398 * c-decl.c (define_label): Warn about identifier conflicts with
6399 labels in traditional C.
6400
6401 * c-parse.in (unop +): Warn about the unary plus operator for
6402 traditional C.
6403
6404 * c-typeck.c (store_init_value): Warn about automatic aggregate
6405 initialization for traditional C.
6406
6407 * invoke.texi (-Wtraditional): Document new warnings.
6408
6409 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
6410
6411 * Makefile.in (c-errors.o): Fix thinko in dependency.
6412
6413 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
6414
6415 * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
6416 -traditional, -ftraditional, or -traditional-cpp was given.
6417 Do not pass -traditional to the preprocessor.
6418 (.S spec): Likewise. Don't bother defining __ASSEMBLER__, the
6419 preprocessor does it automatically.
6420 * objc/lang-specs.h: Likewise. Don't bother defining __OBJC__.
6421
6422 * ch/lang-specs.h: Always use tradcpp. Do not pass
6423 -traditional, -trigraphs, or -pedantic to the preprocessor.
6424 * f/lang-specs.h (.F spec): Likewise. Don't bother defining
6425 _LANGUAGE_FORTRAN.
6426
6427 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
6428
6429 * cppexp.c (LOGICAL): Delete macro.
6430 (_cpp_parse_expr): Do not use UNARY for unary +. Implement ||
6431 and && directly.
6432
6433 * cpphash.c (HASHSIZE): Increase to 4096.
6434 (struct hashdummy): Add hash field.
6435 (eq_HASHNODE): Compare unreduced hashes, then lengths, then
6436 the string values using memcmp.
6437 (cpp_lookup): Set dummy.hash.
6438
6439 Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
6440
6441 * configure.in (m88k-openbsd): Express configuration using new fragment
6442 style.
6443 * configure: Rebuilt.
6444 * m88k/aout-dbx.h: New.
6445 * m88k/openbsd.h: New.
6446 * m88k/xm-openbsd.h: New.
6447
6448 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6449
6450 * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
6451
6452 2000-07-12 Richard Henderson <rth@cygnus.com>
6453
6454 * reload.c (push_secondary_reload): Make sure to add the new
6455 reload at the end, after acquiring secondary memory.
6456
6457 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6458
6459 * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
6460
6461 * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
6462 lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
6463
6464 * c-parse.in (stmt): Delete unused variables.
6465
6466 * convert.c (convert_to_vector): Likewise.
6467
6468 * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
6469
6470 * tree.c (finish_vector_type): Prototype.
6471
6472 2000-07-12 Bruce Korb <bkorb@gnu.org>
6473
6474 * fixinc/fixfixes.c: use xmalloc
6475 * fixinc/fixincl.c(initialize): set program name for xmalloc
6476 * fixinc/fixlib.c(must_malloc): obsolete
6477 (is_cxx_header): no longer used - disabled
6478 (skip_quote): inserted and disabled for future use
6479 * fixinc/fixlib.h: reflects above
6480 * fixinc/fixtests.c: removed dinkleberries
6481
6482 2000-07-12 Neil Booth <NeilB@earthling.net>
6483
6484 * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
6485 * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
6486
6487 * cpphash.c: (struct macro_info, alloc_macro, free_macro,
6488 struct toklist_dummy): New.
6489 (cpp_free_definition): Free macros with free_macro.
6490 (count_params): Don't save paramter spellings. Save macro
6491 information in a struct macro_info.
6492 (parse_define): Don't allocate a token list.
6493 (save_expansion): Allocate the macro's token list, and
6494 save parameter spellings if necessary. Use TOKEN_SPELL.
6495 (cpp_create_definition): Make list const.
6496
6497 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
6498
6499 * c-typeck.c (pedwarn_c99): Move to
6500 * c-errors.c: ... Here.
6501 * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
6502 * diagnostic.c (verror, vwarning, vpedwarn): Make static.
6503 * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
6504 (c-errors.o): List dependency.
6505
6506 2000-07-12 Mark Mitchell <mark@codesourcery.com>
6507
6508 * c-parse.c: Remove.
6509 * c-parse.h: Likewise.
6510 * c-parse.y: Likewise.
6511 * objc/objc-parse.c: Likewise.
6512 * objc/objc-pasre.y: Likewise.
6513
6514 2000-07-11 Rodney Brown <RodneyBrown@pmsc.com>
6515
6516 * gcc.texi: Fix minor typos
6517 * extend.texi: Fix minor typos
6518
6519 2000-07-11 Marc Espie <espie@openbsd.org>
6520
6521 * collect2.c (main): Recognize .lo as object files.
6522
6523 2000-07-11 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6524
6525 * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
6526 true.
6527
6528 * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
6529 with MAP_ANONYMOUS and MAP_ANON.
6530 * configure, config.in: Rebuilt.
6531
6532 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
6533
6534 * diagnostic.c (save_output_state): Remove.
6535 (restore_output_state): Likewise.
6536 (clear_text_info): New function.
6537 (clear_diagnostic_info): Likewise.
6538 (output_text_length, is_starting_newline, output_prefix,
6539 line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
6540 prefixing_policy, output_buffer_ptr_to_format_args): New macros
6541 (set_real_maximum_length, output_set_maximum_length,
6542 output_set_prefix, output_get_prefix, output_set_maximum_length,
6543 output_destroy_prefix, init_output_buffer,
6544 reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
6545 output_add_newline, output_add_character, output_add_space,
6546 output_append_r, output_append, wrap_text, output_format,
6547 output_do_printf, output_printf, output_do_verbatim,
6548 output_verbatim, verbatim): Use them.
6549 (output_clear): Split into cleat_text_info and
6550 clear_diagnostic_info.
6551 (struct output_state): Move to...
6552
6553 * diagnostic.h: ...Here
6554 (struct output_buffer): Adjust.
6555
6556 2000-07-11 Zack Weinberg <zack@wolery.cumb.org>
6557
6558 * cpplex.c (parse_name): No longer inline (premature optimization).
6559 (do_pop_context): Fold into pop_context.
6560 (pop_context): Returns int.
6561 (lex_next): Hoist test for end of directive into pop_context.
6562 (push_macro_context): Returns int; takes just reader and token.
6563 Hoist test for excessive nesting to caller.
6564 (push_arg_context): Returns void; takes just reader and token.
6565 Do not call stringify_arg or get_raw_token.
6566 (get_raw_token): Convert tail recursion through push_arg_context
6567 to a loop at this level. Call stringify_arg here if appropriate.
6568 (maybe_paste_with_next): Convert tail recursion to a while loop.
6569 Hoist test of paste_level to caller.
6570
6571 (stringify_arg): Push arg context at beginning.
6572 (cpp_get_token): Split out core into _cpp_get_token. Call
6573 process_directive here. Throw away CPP_PLACEMARKER tokens.
6574 (_cpp_get_token): Convert tail recursion through
6575 push_macro_context to a loop at this level.
6576 (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
6577 _cpp_get_raw_token): Use _cpp_get_token.
6578 (_cpp_skip_rest_of_line): Drop the context stack directly; do
6579 not call pop_context.
6580 (_cpp_run_directive): Call lex_next directly.
6581
6582 * cpphash.h: Prototype _cpp_get_token.
6583 * cppexp.c (lex): Use it.
6584 * cpphash.c (parse_define): Use it.
6585 * cpplib.c (get_define_node, do_undef, parse_include,
6586 read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
6587 do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
6588 parse_ifdef, validate_else): Use it.
6589 (cpp_push_buffer): Tweak error message; abort if anyone tries
6590 to push a buffer while macro expansions are stacked.
6591
6592 2000-07-11 Donn Terry <donnte@microsoft.com>
6593
6594 * cpplex.c (free_macro_args, save_token): Cast arg of free
6595 and/or xrealloc to PTR.
6596 (_cpp_init_input_buffer): Clear all fields of the base context.
6597
6598 Tue Jul 11 15:28:21 CDT 2000 Clinton Popetz <cpopetz@cygnus.com>
6599
6600 * gensupport.c (process_rtx): Make rtl checking stop
6601 complaining about the define_insn while it is being
6602 converted from a define_insn_and_split.
6603
6604 Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
6605
6606 * config/mips/mips.c (simple_memory_operand): Access the
6607 INTVAL of the address, not it's containing MEM.
6608
6609 2000-07-11 Bruce Korb <bkorb@gnu.org>
6610
6611 * fixinc/fixtests.c(double_slash): obsolete
6612 (else_endif_label): likewise
6613 * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
6614 (libc1_ifdefd_memx): correct initial comment
6615 and omit the #if/#endif pair from the memxxx declarations
6616 * fixinc/fixincl.x: regen
6617
6618 2000-07-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6619
6620 * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
6621
6622 2000-07-11 Neil Booth <NeilB@earthling.net>
6623
6624 * cpp.texi: Update.
6625
6626 2000-07-11 Neil Booth <NeilB@earthling.net>
6627
6628 * cppinit.c: (cpp_reader_init): Allow digraphs by default.
6629 (handle_option): Set digraphs according to standard.
6630 Merge OPT_lang_c89 handler with OPT_std_c89.
6631
6632 * cpplex.c: (lex_line, can_paste): Honour digraphs in
6633 accordance with the digraphs flag.
6634
6635 * cpplib.h: (struct cpp_options): New option digraphs.
6636
6637 2000-07-10 Hans-Peter Nilsson <hp@axis.com>
6638 Bruce Korb <bkorb@gnu.org>
6639
6640 * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
6641 * fixinc/fixincl.x: Regenerate.
6642 * fixinc/tests/base/testing.h: Add testcase.
6643
6644 2000-07-10 Richard Henderson <rth@cygnus.com>
6645
6646 * config/ia64/ia64.c (got_symbolic_operand): New.
6647 (symbolic_operand, move_operand): Revert 0701 change.
6648 * config/ia64/ia64.h (PREDICATE_CODES): Update.
6649 * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
6650 * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
6651 split the offset into a 14-bit low part instead of a 13-bit low part.
6652 (load_fptr): Mark the mem as unchanging.
6653 (load_symptr): Use got_symbolic_operand.
6654
6655 2000-07-10 Nick Clifton <nickc@cygnus.com>
6656
6657 * libgcc2.c (next_stack_level): Cast result of computation to
6658 (void **) so that the assignment does not generate a warning.
6659
6660 2000-07-10 Chandrakala Chavva <cchavva@redhat.com>
6661
6662 * flags.h : Add new variable flag_single_precision_constant.
6663 * toplev.c (display_help) : Add -fsingle-precision-constant option.
6664 (flag_single_precision_constant): New.
6665 * c-lex.c (yylex): Convert floating point constant to single
6666 precision constant.
6667 * invoke.texi : Add documentation for this new option.
6668
6669 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
6670
6671 * diagnostic.c (output_octal): Second parameter is unsigned.
6672 (output_long_octal): Likewise.
6673 (output_hexadecimal): Likewise.
6674 (output_long_hexadecimal): Likewise.
6675 (output_format): Adjust arguments extraction. Tweak.
6676 (output_verbatim, verbatim): End variable argument list.
6677 (report_diagnostic): Improve documentation.
6678
6679 2000-07-10 Benjamin Chelf <chelf@codesourcery.com>
6680
6681 * c-common.h (build_stmt): Declare.
6682 (build_continue_stmt): Likewise.
6683 (build_break_stmt): Likewise.
6684 (build_return_stmt): Likewise.
6685
6686 * c-decl.c (do_case): Rewrite to do what previously done in
6687 c-parse.in.
6688
6689 * c-semantics.c (build_stmt): Define.
6690 (build_return_stmt): Likewise.
6691 (build_break_stmt): Likewise.
6692 (build_continue_stmt): Likewise.
6693 (build_case_label): Likewise.
6694
6695 * c-parse.in (BREAK): Change to build tree, then generate RTL.
6696 (CONTINUE): Likewise.
6697 (RETURN): Likewise.
6698 (CASE): Likewise.
6699 (DEFAULT): Likewise.
6700
6701 * c-parse.y: Regenerate.
6702 * c-pasre.c: Likewise.
6703
6704 2000-07-09 Jason Merrill <jason@redhat.com>
6705
6706 * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
6707
6708 * tree.h (STRIP_NOPS): Check for error_mark_node.
6709 (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
6710 (dwarf2out_*): Remove duplicate declarations.
6711
6712 * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
6713 DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
6714
6715 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
6716
6717 * diagnostic.c (wrap_text): New function.
6718 (maybe_wrap_text): Likewise.
6719 (output_add_string): Use it.
6720 (output_format): Likewise.
6721 (count_error): Use verbatim instead of notice.
6722 (report_error_function): Likewise. Don't use plain fprintf.
6723 (finish_diagnostic): New function.
6724 (output_do_verbatim): Tweak. Commonalize functionalities in
6725 output_verbatim and verbatim.
6726 (output_verbatim): Adjust.
6727 (verbatim): Likewise.
6728 (report_diagnostic): Define.
6729
6730 * diagnostic.h (report_diagnostic): Prototype.
6731
6732 2000-07-09 Zack Weinberg <zack@wolery.cumb.org>
6733
6734 * cppexp.c (_cpp_parse_expr): Don't use unary plus.
6735
6736 2000-07-09 Neil Booth <NeilB@earthling.net>
6737
6738 * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
6739 IShspace, ISspace: Update.
6740
6741 * cppinit.c: ISTABLE: Update.
6742 V: New.
6743
6744 * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
6745 (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
6746 (skip_block_comment, skip_line_comment, parse_string,
6747 lex_line): Use is_vspace rather than IS_NEWLINE.
6748 (skip_whitespace, lex_line): Clean up to use is_nvspace.
6749 (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive
6750 gets a BOL flag.
6751 (lex_next): Unconditionally stop if within a directive.
6752 Treat directives within macro invocations as directives
6753 (after parse_args emits error), not as the argument.
6754
6755 2000-07-09 Gabriel Dos Reis <gdr@codesourcery.com>
6756
6757 * diagnostic.c (diagnostic_args): New macro.
6758 (diagnostic_msg): Likewise.
6759 (output_formatted_integer): Likewise.
6760 (output_state): New data type.
6761 (digit_buffer): Make global.
6762 (output_add_integer): Rename to output_decimal. Squeeze
6763 digit_buffer.
6764 (output_long_decimal, output_unsigned_decimal,
6765 output_long_unsigned_decimal, output_octal, output_long_octal,
6766 output_hexadecimal, output_long_hexadecimal): New functions.
6767 (output_append_r): New function.
6768 (output_append): Tweak.
6769 (output_flush_on): Rename to output_to_stream.
6770 (output_format): Change prototype. Improve documentation. Handle
6771 more format specifiers.
6772 (build_location_prefix): Rename to context_as_prefix.
6773 (output_notice): Rename to output_do_printf.
6774 (output_printf): Tweak.
6775 (line_wrapper_printf): Likewise.
6776 (vline_wrapper_message_with_location): Adjust call to renamed
6777 functions.
6778 (v_message_with_decl): Likewise.
6779 (default_print_error_function): Likewise.
6780 (save_output_state): New function.
6781 (restore_output_state): Likewise.
6782 (output_do_verbatim): Likewise.
6783 (output_verbatim): Define.
6784 (verbatim): Likewise.
6785
6786 * diagnostic.h (printer_fn): Change return type from void to int.
6787 Improve documentation.
6788 (output_add_integer): Rename to output_decimal.
6789 (output_flush_on, output_format): Don't export.
6790 (output_verbatim, verbatim): Declare.
6791
6792 2000-07-08 Toon Moene <toon@moene.indiv.nluug.nl>
6793
6794 * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
6795 Check whether c divides op1 exactly if operation is not
6796 multiplication.
6797
6798 2000-07-08 Richard Henderson <rth@cygnus.com>
6799
6800 * final.c (final): Do not abort when reg-stack introduces
6801 a new insn.
6802
6803 2000-07-08 Zack Weinberg <zack@wolery.cumb.org>
6804
6805 * cpplib.h (struct cpp_name): Now struct cpp_string.
6806 (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
6807 CPP_HEADER_NAME): Change to type S.
6808 (struct cpp_token): Rename 'name' field to 'str'. Add 'node'
6809 field, a cpp_hashnode *. All references to val.name updated
6810 to use val.str or val.node as appropriate.
6811 (struct cpp_reader): Add spec_nodes field.
6812 (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
6813
6814 * cpphash.h (struct spec_nodes): New.
6815 (enum spell_type): Reorder. Only SPELL_STRING tokens use
6816 val.str. All references to 'spelling > SPELL_NONE' updated to
6817 match.
6818
6819 (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
6820 pfile->buffer->inc are not NULL before dereferencing them.
6821
6822 * cpplex.c (parse_name): Take a pointer to the current token,
6823 plus current position and limit as args; return the new
6824 position; don't copy the text of a name into the string
6825 buffer, instead call cpp_lookup and store the node pointer.
6826 If extending a token, copy out the text of the old into a
6827 scratch buffer, append the new, look that up and store the new
6828 node pointer. Inline.
6829 (maybe_paste_with_next): If the result of paste is a NAME,
6830 then look up the pasted text and store its node pointer.
6831 (lex_line): Adjust for new parse_name interface.
6832 Check for L"str", L'str' using spec_nodes->n_L.
6833 (spell_token): SPELL_IDENT tokens have their spelling in
6834 val.node->name. Handle SPELL_STRING tokens that don't have
6835 string delimiters.
6836 (_cpp_expand_name_space,
6837 (can_paste): Check for L ## "str" using spec_nodes->n_L.
6838 (cpp_get_token, special_symbol): No need to call cpp_lookup.
6839 (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
6840 return 1=equal 0=not, not a tristate.
6841
6842 * cpphash.c (var_args_str): Delete.
6843 (find_param): Compare node fields directly.
6844 (is__va_args__): Use CPP_PEDANTIC. Just compare
6845 token->val.node with spec_nodes->n__VA_ARGS__.
6846 (dump_funlike_macro): Don't use var_args_str.
6847
6848 * cpplib.c (_cpp_check_directive): Just walk through
6849 spec_nodes->dirs comparing pointers.
6850 (get_define_node, do_pragma_poison, detect_if_not_defined,
6851 parse_ifdef): The identifier has already been looked up.
6852 (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
6853 node.
6854 (do_if): Only call detect_if_not_defined at beginning of file.
6855 (_cpp_parse_assertion): Only copy string pointers for
6856 SPELL_STRING tokens.
6857 (pragma_dispatch): Take a node pointer and examine its name
6858 field.
6859 (_cpp_init_stacks): Also initialize the spec_nodes structure.
6860
6861 * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
6862 _cpp_init_macros.
6863 (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in
6864 reverse order from the corresponding _cpp_init_* routines.
6865
6866 * cppexp.c (parse_number, parse_charconst, parse_defined,
6867 lex): Check val.node->type instead of calling cpp_defined.
6868 Use spec_nodes entries where appropriate.
6869
6870 * fix-header.c, scan-decls.c: Update for interface changes.
6871
6872 2000-07-08 Geoffrey Keating <geoffk@cygnus.com>
6873
6874 * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
6875 emitting aux_truncdfsf2.
6876
6877 2000-07-03 Donn Terry (donnte@microsoft.com)
6878
6879 * cppinit.c (print_help): split overlong line into ISO C89
6880 maximum chunks.
6881
6882 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
6883
6884 * cppexp.c: Update all code for new lexer interface.
6885 (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
6886 (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
6887 * cpplex.c (token_names): Trim leading CPP_ from names; make
6888 the strings unsigned.
6889 (_cpp_spell_operator): New.
6890 (is_macro_disabled): Disable all macros if rescanning
6891 preprocessed text.
6892 (_cpp_get_directive_token): Remove.
6893
6894 * cppinit.c: Don't set no_macro_expand.
6895 * cpplib.c (read_line_number, do_line): Check only for EOF,
6896 not VSPACE.
6897 * cpphash.h: Update prototypes.
6898 * cpplib.h (CPP_VSPACE): Remove.
6899 (struct cpp_reader): Remove no_macro_expand.
6900
6901 2000-07-08 Neil Booth <NeilB@earthling.net>
6902
6903 * cpphash.c (is__va_args__): New function.
6904 (count_params): Fix line reported in error messages. Use
6905 is__va_args__. Don't return ')' on error. Flag GNU style
6906 rest args macro definitions.
6907 (parse_define): Check macro name is not __VA_ARGS__.
6908 (save_expansion): Check identifier in non-varargs-macro is
6909 not __VA_ARGS__. Don't flag GNU_VARARGS.
6910 * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
6911 (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
6912 than per-token GNU_VARARGS.
6913 * cpplib.h (GNU_VARARGS): Remove.
6914 (GNU_REST_ARGS): New.
6915
6916 Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
6917
6918 * i386.md (call_pop, call, call_value_pop): Do not set
6919 current_function_uses_pic_offset_table for calls to static
6920 functions or indirect calls.
6921
6922 2000-07-07 Jim Wilson <wilson@cygnus.com>
6923
6924 * config/ia64/ia64.c (rws_access_reg): New local write_count. If
6925 is_predicate_reg, then take max write_count of register pair.
6926
6927 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6928
6929 * tradcpp.c (main): Rename label `include' to `add_include' to
6930 avoid conflicts with variable `include' in traditional C.
6931
6932 2000-07-07 Jakub Jelinek <jakub@redhat.com>
6933
6934 * integrate.c (copy_insn_list): Remove REG_LABEL notes.
6935
6936 2000-07-07 Jakub Jelinek <jakub@redhat.com>
6937
6938 * sibcall.c (uses_addressof): Add INMEM argument, check for
6939 current_function_internal_arg_pointer outside of MEM rtxs in addition
6940 to ADDRESSOFs.
6941 (sequence_uses_addressof): Update caller.
6942
6943 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
6944
6945 * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
6946 and friends.
6947
6948 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6949
6950 * system.h (UNION_INIT_ZERO): New macro for initializing union
6951 members in structs.
6952
6953 * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
6954
6955 2000-07-07 Neil Booth <NeilB@earthling.net>
6956
6957 * cpp.texi: Update.
6958
6959 Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com)
6960
6961 * final.c (final): Detect out of bounds array access to
6962 the insn_lengths array.
6963
6964 2000-07-07 Kazu Hirata <kazu@hxi.com>
6965
6966 * fold-const.c (fold): Fix a comment typo.
6967
6968 2000-07-07 Neil Booth <NeilB@earthling.net>
6969
6970 * cpp.texi: Update to new lexer.
6971
6972 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
6973
6974 * tradcpp.c: New file.
6975 * tradcif.y: New file.
6976 * tradcif.c: New generated file.
6977
6978 * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
6979 $(srcdir)/tradcif.c. Add tradcpp to STAGESTUFF and
6980 dependencies of C. Install tradcpp from install-common, in
6981 $(libsubdir).
6982
6983 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
6984
6985 * cppinit.c: Include cppdefault.h. Refer to
6986 cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
6987 to GCC_INCLUDE_DIR and its length.
6988 (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
6989 USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
6990 STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT): Move to
6991 cppdefault.h.
6992 (include_defaults_array): Move to cppdefault.c.
6993
6994 * cppdefault.h: New file.
6995 * cppdefault.c: New file.
6996
6997 * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
6998 (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
6999 (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
7000 this file.
7001
7002 Thu Jul 6 18:30:36 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7003
7004 * reload.c (push_reload): When seeing if can reuse a register,
7005 check extra registers against widest of INMODE and OUTMODE.
7006
7007 2000-07-06 Neil Booth <NeilB@earthling.net>
7008
7009 * cpplib.c: (_cpp_parse_assertion): Perform hash lookups
7010 based on full length of predicate.
7011
7012 2000-07-06 Hans-Peter Nilsson <hp@axis.com>
7013
7014 * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
7015 [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
7016
7017 2000-07-05 Kazu Hirata <kazu@hxi.com>
7018
7019 * h8300-proto.h: Fix formatting.
7020 * h8300.c: Likewise.
7021 * h8300.h: Likewise.
7022
7023 2000-07-05 Jim Wilson <wilson@cygnus.com>
7024
7025 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
7026 CCmode.
7027
7028 2000-07-05 Rodney Brown <RodneyBrown@pmsc.com>
7029
7030 * invoke.texi: Fix minor typos
7031 * md.texi: Fix minor typos
7032
7033 2000-07-05 Zack Weinberg <zack@wolery.cumb.org>
7034
7035 * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
7036
7037 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
7038
7039 * cpplex.c: Don't include sys/mman.h.
7040 (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
7041
7042 * cpplib.c: Include sys/mman.h and obstack.h.
7043 (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
7044 obstack.
7045 (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
7046 (_cpp_unwind_if_stack): Now static, unwind_if_stack. Don't
7047 bother freeing if stack entries (they will be freed with their buffer).
7048 (do_endif): Free if stack entries from the buffer obstack.
7049 (push_conditional): Allocate if stack entries from the buffer obstack.
7050
7051 (find_answer): Rename to _cpp_find_answer.
7052 (do_assert, do_unassert): Update.
7053
7054 * cpphash.h: Update prototypes.
7055 (xobnew): New convenience macro.
7056 * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
7057 Update comments.
7058 (struct cpp_hashnode): Remove disabled field.
7059
7060 * cppinit.c: Don't include hashtab.h or splay-tree.h.
7061 (report_missing_guard): Moved to cppfiles.c.
7062 (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
7063 cpp_init_includes.
7064 (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
7065 cpp_cleanup_includes. Don't destroy hashtab or
7066 all_include_files here.
7067 (cpp_finish): Use _cpp_report_missing_guards.
7068
7069 * cppfiles.c (report_missing_guard): Moved from cppinit.c.
7070 (_cpp_init_include_table): Rename _cpp_init_includes.
7071 (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
7072
7073 * cppexp.c (parse_assertion): Update for new name of
7074 find_answer.
7075
7076 * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
7077
7078 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
7079
7080 * cpplib.c (do_ident): s/VSPACE/EOF/
7081
7082 2000-07-05 Neil Booth <NeilB@earthling.net>
7083
7084 * cpplex.c: Fix trigraph replacement within strings.
7085
7086 2000-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7087
7088 * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
7089
7090 * xcoffout.c (assign_type_number): Constify.
7091 (xcoffout_source_file): Add static prototype. Don't needlessly
7092 cast away const-ness.
7093
7094 2000-07-04 Jason Merrill <jason@redhat.com>
7095
7096 * frame.h (frame_state): Move base_offset to end.
7097
7098 Mon Jul 3 21:31:43 2000 Clinton Popetz <cpopetz@cygnus.com>
7099
7100 * calls.c (emit_library_call_value_1): Revert previous change.
7101
7102 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
7103
7104 * fix-header.c (struct partial_proto): Remove unnecessary fields.
7105 (recognized_extern, recognized_function, read_scan_file):
7106 Update for new scheme.
7107 (check_protection): It's still a multiple include guard even
7108 if it doesn't always trigger.
7109 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
7110 new scheme.
7111 * scan.h: Declare struct cpp_token. Update prototypes.
7112
7113 2000-07-03 Neil Booth <neilb@earthling.net>
7114 Zack Weinberg <zack@wolery.cumb.org>
7115
7116 Complete overhaul of the lexer and macro expander.
7117
7118 * cpphash.c (object_defn, funct_defn, push_macro_expansion,
7119 arg, arglist, argdata, reflist, collect_objlike_expansion,
7120 collect_funlike_expansion, collect_params,
7121 warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
7122 unsafe_chars, macarg, compare_defs, special_symbol,
7123 scan_arguments, stringify, funlike_macroexpand,
7124 _cpp_quote_string, monthnames): Delete.
7125 (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
7126 _cpp_create_definition, _cpp_dump_definition,
7127 dump_hash_helper): Adjust.
7128 (find_param, count_params, parse_define, var_args_str,
7129 check_macro_redefinition, save_expansion): New.
7130
7131 * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
7132 parse_string, output_line_command, trigraph_replace,
7133 lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
7134 cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
7135 cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
7136 _cpp_skip_rest_of_line): Modify.
7137
7138 (maybe_macroexpand, skip_comment, copy_comment, skip_string,
7139 find_position, null_warning, bump_column, expand_name_space,
7140 pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
7141 _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
7142 _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
7143 _cpp_prescan): Delete.
7144
7145 (dump_param_spelling, process_directive, lex_next,
7146 is_macro_disabled, stringify_arg, expand_context_stack,
7147 output_token, make_string_token, alloc_number_token,
7148 special_symbol, duplicate_token, maybe_paste_with_next,
7149 can_paste, prevent_macro_expansion, restore_macro_expansion,
7150 get_temp_token, release_temp_tokens, quote_string,
7151 token_names, token_spellings, _cpp_expand_name_space,
7152 _cpp_glue_header_name, _cpp_reserve_name_space,
7153 digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
7154 placemarker_token, eof_token, cpp_context, macro_args,
7155 get_raw_token, parse_arg, parse_args, save_token,
7156 push_arg_context, push_macro_context, pop_context,
7157 do_pop_context, free_macro_args, _cpp_get_line,
7158 _cpp_run_directive): New.
7159
7160 * cpplib.c (validate_else, parse_include, push_conditional,
7161 pass_thru_directive, read_line_number, parse_ifdef,
7162 detect_if_not_defined, _cpp_check_directive, do_define,
7163 do_undef, do_include, do_import, do_include_next, do_error,
7164 do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
7165 top_pragmas, do_pragma_gcc, do_pragma_implementation,
7166 do_pragma_poison, do_pragma_system_header,
7167 do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
7168 dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
7169 do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
7170 cpp_defined): Update for new scheme.
7171 (strtoul_for_line, get_define_node, dump_macro_name,
7172 _cpp_check_linemarker, _cpp_parse_assertion): New.
7173 (_cpp_handle_directive, do_pragma_default): Delete.
7174
7175 * cpphash.h (struct predicate): Now struct answer.
7176 (enum spell_type, struct token_spelling, struct directive,
7177 directive_handler): New.
7178 Update prototypes. Remove unused macros.
7179 * cpplib.h: Update prototypes. Remove unused macros,
7180 structure definitions, and fields.
7181
7182 * cpperror.c (print_containing_files, v_message): Adjust.
7183 * cppexp.c (parse_assertion, lex, parse_escape,
7184 _cpp_parse_expr): Adjust.
7185 * cppfiles.c (open_include_file, _cpp_execute_include,
7186 _cpp_compare_file_date, cpp_read_file, read_include_file):
7187 Adjust.
7188 * cppinit.c (dump_special_to_buffer): Delete.
7189 (append_include_chain, merge_include_chains, cpp_reader_init,
7190 cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
7191 cpp_finish, handle_option, print_help): Adjust.
7192 * cppmain.c (main): Adjust.
7193
7194 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
7195
7196 * cppspec.c (lang_specific_driver): Use double quotes in error
7197 message.
7198
7199 Mon Jul 3 16:53:43 2000 Clinton Popetz <cpopetz@cygnus.com>
7200
7201 * calls.c (emit_library_call_value_1): Use valreg instead
7202 of hard_libcall_value.
7203
7204 2000-07-03 Geoff Keating <geoffk@cygnus.com>
7205
7206 * config/rs6000/rs6000.c (rs6000_emit_move): New function.
7207 * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
7208 * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
7209 (movhi): Likewise.
7210 (movqi): Likewise.
7211 (movdf): Likewise.
7212 (movsf): Likewise.
7213 (movdi): Likewise.
7214 (movti): Likewise.
7215
7216 * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
7217 mode instead of wider_mode is being used.
7218
7219 2000-07-03 Jakub Jelinek <jakub@redhat.com>
7220
7221 * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
7222 of 'r'. Use q_regs_operand.
7223 (andsi_1+2): Use q_regs_operand.
7224
7225 2000-07-03 Jakub Jelinek <jakub@redhat.com>
7226
7227 * builtins.c (get_memory_rtx): Always put into alias set 0.
7228
7229 2000-07-03 Nick Clifton <nickc@cygnus.com>
7230
7231 * config/arm/arm.md: Fix post increment and pre increment
7232 peepholes so that they do not generate UNPREDICATBLE opcodes.
7233 (ie ones where the increment clobbers the source/destination).
7234
7235 2000-07-01 Marek Michalkiewicz <marekm@linux.org.pl>
7236
7237 * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
7238 change too big for -mtiny-stack" a warning, if larger than 63.
7239 (out_set_stack_ptr): Change the logic so -mno-interrupts is
7240 always safe to use on possible future devices.
7241 (function_prologue): Write SPH before SPL, for consistency.
7242 If interrupt_func_p true, we know we have enabled interrupts.
7243 (avr_num_arg_regs): New function. Round up to even number of
7244 bytes if no -mpack-args or if calling a libgcc function.
7245 (function_arg, function_arg_advance): Use it.
7246 (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
7247 Output "movw" if available.
7248 (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
7249 of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
7250 (asm_output_section_name): Add blanks for consistent output.
7251 (encode_section_info): Set TREE_READONLY for progmem data to
7252 avoid gas warnings about changed section attributes.
7253 (avr_hard_regno_mode_ok): Force non-QImode data to start in
7254 even numbered registers on devices with "movw".
7255 * config/avr/avr.h (MASK_*): Define bits for target_flags.
7256 (TARGET_SWITCHES): Mark help strings for translation.
7257 Add new -mpack-args and -menhanced switches.
7258 (TARGET_OPTIONS): Mark help strings for translation.
7259 (progmem_section): Add section attributes.
7260 * config/avr/avr.md (*movhi, call_insn, call_value_insn):
7261 Output "movw" if available.
7262 (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
7263 New patterns.
7264 * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
7265 call convention (arguments aligned on even registers).
7266 (_cleanup, _exit): Make weak symbols libc can override.
7267
7268 2000-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7269
7270 * fp-bit.h: New file.
7271
7272 * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
7273 Comment #endif statements.
7274 (__thenan_sf, __thenan_df): Add missing braces around initializer.
7275
7276 Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
7277
7278 * gcse.c (compute_pre_data): Compute ae_kill using other local
7279 properties instead of calling compute_ae_kill.
7280
7281 * alias.c (init_alias_analysis): Do not call
7282 prologue_epilogue_contains until after reload has completed.
7283
7284 2000-07-02 Benjamin Chelf <chelf@codesourcery.com>
7285
7286 * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
7287 (genrtl_finish_compound_stmt): Likewise.
7288 (genrtl_compound_stmt): Change to return void.
7289
7290 * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
7291 move code from here to ...
7292 (genrtl_compound_stmt): ... here.
7293 (genrtl_finish_compound_stmt): Remove.
7294 (expand_stmt): Add comment.
7295
7296 2000-07-02 Zack Weinberg <zack@wolery.cumb.org>
7297
7298 * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
7299 and VOID_TYPE_P.
7300
7301 2000-07-02 Jakub Jelinek <jakub@redhat.com>
7302
7303 * cpplib.h (struct cpp_reader): New field include_depth.
7304 (struct cpp_printer): Rename last_bsd to last_id.
7305 * cppfiles.c (read_include_file): Bump include_depth.
7306 * cpplex.c (cpp_pop_buffer): Decrement include_depth.
7307 (output_line_command): Output correct #line if a header
7308 is including itself and is not protected against multiple inclusion.
7309 Use include_depth instead of buffer_stack_depth, last_id instead of
7310 last_bsd.
7311 * cppinit.c (cpp_start_read): Initialize last_id instead of
7312 last_bsd.
7313
7314 2000-07-01 Benjamin Chelf <chelf@codesourcery.com>
7315
7316 * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
7317 (c-semantics.o): New target.
7318
7319 * c-common.h (TREE_LANG_FLAG_?): Added documentation.
7320 (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
7321 (genrtl_clear_out_block): Likewise.
7322 (genrtl_goto_stmt): Likewise.
7323 (genrtl_expr_stmt): Likewise.
7324 (genrtl_decl_stmt): Likewise.
7325 (genrtl_if_stmt): Likewise.
7326 (genrtl_while_stmt): Likewise.
7327 (genrtl_do_stmt): Likewise.
7328 (genrtl_return_stmt): Likewise.
7329 (genrtl_for_stmt): Likewise.
7330 (genrtl_break_stmt): Likewise.
7331 (genrtl_continue_stmt): Likewise.
7332 (genrtl_scope_stmt): Likewise.
7333 (genrtl_switch_stmt): Likewise.
7334 (genrtl_case_label): Likewise.
7335 (genrtl_begin_compound_stmt): Likewise.
7336 (gerntl_finish_compound_stmt): Likewise.
7337 (genrtl_compound_stmt): Likewise.
7338 (genrtl_asm_stmt): Likewise.
7339 (genrtl_decl_cleanup): Likewise.
7340 (DECL_ANON_UNION_ELEMS): Likewise.
7341 (emit_local_var): Likewise.
7342 (make_rtl_for_local_static): Likewise.
7343 (expand_cond): Likewise.
7344 (expand_stmt): Likewise.
7345 (c_expand_return): Likewise.
7346 (c_expand_start_case): Likewise.
7347 (do_case): Likewise.
7348 (COMPOUND_STMT_NO_SCOPE): Likewise.
7349 (c_expand_asm_operands): Likewise.
7350 (NEW_FOR_SCOPE_P): New macro.
7351 (expand_expr_stmt_fn): New type.
7352
7353 (set_current_function_name_declared): Likewise.
7354 (current_function_name_declared): Likewise.
7355 (lang_expand_stmt): Likewise.
7356 (stmts_are_full_exprs_p): Likewise.
7357 (anon_aggr_type_p): Likewise.
7358 (lang_expand_expr_stmt): Likewise.
7359 (build_case_label): Likewise.
7360
7361 * c-decl.c (lang_expand_expr_stmt): Initialize.
7362 (stmts_are_full_exprs_p): Define.
7363 (current_function_name_declared): Likewise.
7364 (do_case): Likewise.
7365 (lang_expand_stmt): Likewise.
7366 (set_current_function_name_declared): Likewise.
7367 (anon_aggr_type_p): Likewise.
7368
7369 * c-semantics.c: New file.
7370 (expand_cond): Moved from cp/semantics.c.
7371 (genrtl_do_pushlevel): Likewise.
7372 (genrtl_clear_out_block): Likewise.
7373 (genrtl_goto_stmt): Likewise.
7374 (genrtl_expr_stmt): Likewise.
7375 (genrtl_decl_stmt): Likewise.
7376 (genrtl_if_stmt): Likewise.
7377 (genrtl_while_stmt): Likewise.
7378 (genrtl_do_stmt): Likewise.
7379 (genrtl_return_stmt): Likewise.
7380 (genrtl_for_stmt): Likewise.
7381 (genrtl_break_stmt): Likewise.
7382 (genrtl_continue_stmt): Likewise.
7383 (genrtl_scope_stmt): Likewise.
7384 (genrtl_switch_stmt): Likewise.
7385 (genrtl_case_label): Likewise.
7386 (genrtl_begin_compound_stmt): Likewise.
7387 (genrtl_finish_compound_stmt): Likewise.
7388 (genrtl_compound_stmt): Likewise.
7389 (genrtl_asm_stmt): Likewise.
7390 (genrtl_decl_cleanup): Likewise.
7391 (make_rtl_for_local_static): Moved from cp/decl.c.
7392 (emit_local_var): Likewise.
7393 (expand_stmt): Define.
7394
7395 * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
7396 (c_expand_return): Likewise.
7397 (c_expand_start_case): Likewise.
7398
7399 2000-07-01 Richard Henderson <rth@cygnus.com>
7400
7401 * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
7402 with the low 13 bits set.
7403 (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
7404 * config/ia64/ia64.md (movdi): Likewise. Expand a CONST with one
7405 of the low 13 bits into a CONST plus an adddi3.
7406 (load_symptr): Set RTX_UNCHANGING_P.
7407
7408 See ChangeLog.3 for earlier changes.