OSDN Git Service

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