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