OSDN Git Service

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