OSDN Git Service

* tm.texi (Register Classes): Clarify order of sub-initializers
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-08-03  Michael Poole  <poole@troilus.org>
2
3         * tm.texi (Register Classes): Clarify order of sub-initializers
4         in REG_CLASS_CONTENTS.
5
6 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7
8         From SAITOH Masanobu:
9         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
10
11 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
12
13         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
14         is not supported by tradcpp and isn't actually needed for cygwin.
15
16 2000-08-03  Kazu Hirata  <kazu@hxi.com>
17
18         * jump.c: Fix formatting.
19
20         * toplev.c: Fix formatting.
21
22 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
23
24         * flow.c (find_auto_inc): Verify that we've got a REG before
25         peeking at its regno.  Fail, don't abort if we can't find
26         the increment of the desired register.
27
28         * pa.md (shadd height reduction patterns/splitters): Remove.
29
30 2000-08-02  Jim Wilson  <wilson@cygnus.com>
31
32         * config/ia64/ia64-protos.h (flag_ssa): Declare.
33         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
34
35 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
36
37         * dce.c: Remove all uses of assert.
38         * dwarf2out.c: Likewise.
39         * dwarfout.c: Likewise.
40         * ssa.c: Likewise.
41
42 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
43
44         * gcc.h (lang_specific_driver): Constify second argument.
45         * gcc.c (translate_options, process_command, main): Likewise.
46         Constify variables to match.  Cast second argument to
47         pexecute.
48
49         * cppspec.c, gccspec.c: Adjust type of second argument to
50         lang_specific_driver, and update code as necessary.
51
52 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
53
54         * loop.c (scan_loop): Ensure update_end label does not
55         go away until reg_scan_update is run.
56
57 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
58
59         * c-common.h: Prototype min_precision and c_build_qualified_type here...
60         * c-tree.h: ... not here.
61         * errors.h: Prototype fancy_abort.
62
63         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
64         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
65         * regrename.c (regrename_optimize): Make control flow explicit.
66         (replace_reg_in_block): Initialize reg_use to 0.
67
68         * i386.c (legitimate_address_p): Rename error label to
69         report_error to avoid namespace clash.
70
71 2000-08-02  Kazu Hirata  <kazu@hxi.com>
72
73         * fold-const.c: Fix formatting.
74
75 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
76
77         * i386.c (legitimate_address_p): Accept other bases than
78         pic_offset_table_rtx for GOTOFF constructs.
79
80 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
81
82         * i386.md (shift to lea splitter): Use const_int_operand.
83
84 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
85
86         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
87         cppspec.c: Do not use 'legal' or 'illegal' in error messages
88         and comments.
89
90         * cppmain.c (cb_define, cb_undef): Don't generate any output
91         if not done_initializing.
92         * cpplex.c (maybe_paste_with_next): When the token after a ## 
93         is an omitted rest argument, only delete the token before it
94         if that token is a comma.  Do not warn about bogus token
95         pastes for , ## rest_arg.
96
97         * cpp.texi: Update.
98         * cpp.1: Regenerate.
99
100 2000-08-02  Fred Fish  <fnf@be.com>
101
102         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
103         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
104         and later.
105
106         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
107         Be directories to search path.
108         
109         Remove support for __declspec(dllimport) and __declspec(dllexport).
110         This is leftover cruft from the earlier BeOS gcc port when BeOS
111         used Microsoft's PE object file format.
112         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
113         * config/i386/t-beos (winnt.o): Remove Makefile frag.
114         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
115         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
116         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
117         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
118         (REDO_SECTION_INFO_P): Remove.
119         (ASM_EXPORT_DECL): Remove.
120         (ASM_DECLARE_FUNCTION_NAME): Remove.
121         (ASM_DECLARE_OBJECT_NAME): Remove.
122         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
123         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
124         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
125         (STRIP_NAME_ENCODING): Remove.
126         
127         Remove support for obsolete version of BeOS that is no longer
128         supported by Be.
129         * configure.in (i*86-*-beospe*): Remove.
130         * config/i386/beos-pe.h: Remove.
131         
132 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
133             Mark Mitchell <mark@codesourcery.com>
134         
135         * Makefile.in (OBJS): Added dce.o.
136         (ssa.o): Updated target to include ssa.h.
137         (flow.o): Likewise.
138         (toplev.o): Likewise.
139         (dce.o): Created target.
140         * basic-block.h: Added comments.
141         (INVALID_BLOCK): Added definition.
142         (connect_infinite_loops_to_exit): Added declaration.
143         Moved SSA declarations to ssa.h.        
144         * flow.c: Added inclusion of ssa.h.
145         (struct depth_first_search_dsS, depth_first_search_ds):
146         Added definitions.
147         (compute_immediate_postdominators): Added definition.
148         (connect_infinite_loops_to_exit): Likewise.
149         (flow_dfs_compute_reverse_init): Likewise.
150         (flow_dfs_compute_reverse_add_bb): Likewise.
151         (flow_dfs_compute_reverse_execute): Likewise.
152         (flow_dfs_compute_reverse_finish): Likewise.
153         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
154         (LABEL_P): Added definition.
155         (JUMP_P): Likewise.
156         (NOTE_P): Likewise.
157         (BARRIER_P): Likewise.
158         (JUMP_TABLE_DATA_P): Likewise.
159         (INSN_DEAD_CODE_P): Likewise.
160         * ssa.c: Replaced inclusions with ssa.h inclusion.
161         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
162         (rename_registers): Removed unnecessary variables.
163         * ssa.h: Created by moving declarations from ssa.c and
164         basic-block.h.
165         * timevar.def: Defined TV_DEAD_CODE_ELIM.
166         * toplev.c: Added ssa.h inclusion.
167         (dump_file_index): Added DFI_dce.
168         (dump_file): Added "dce" entry.
169         Defined flag_ssa.
170         (f_options): Added dce entry.
171         * invoke.texi: Document -fdce.  Emphasize experimental status of
172         -fssa. 
173         
174 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
175
176         * cpperror.c (v_message): Split into _cpp_begin_message and
177         v_message macro.  All callers updated.
178         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
179         checks here.
180
181         * cppfiles.c (cpp_syshdr_flags): New function.
182         (read_include_file): Don't call cpp_output_tokens.  Call
183         enter_file hook.
184         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
185         (cpp_reader_init): Don't initialize token_buffer.  Call
186         _cpp_init_internal_pragmas.
187         (cpp_cleanup): Don't clear token_buffer.
188         (cpp_start_read): Don't worry about output from -D processing.
189         Don't call cpp_output_tokens.
190         (cpp_finish): Don't dump macros here.  Don't call
191         cpp_output_tokens.
192         * cppmacro.c (_cpp_dump_definition): Rename
193         cpp_dump_definition.  Write directly to a FILE *.
194         (dump_funlike_macro): Delete.
195         (dump_macro_args): New.
196
197         * cpplex.c (TOKEN_LEN): Convert to inline function.
198         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
199         cpp_scan_line, _cpp_dump_list): Delete.
200         (cpp_printf, cpp_output_list): New.
201         (output_line_command): Don't worry about entering or leaving files.
202         (cpp_scan_buffer): Just output each token as we hit it.
203         (process_directive): Don't call cpp_output_tokens.
204         (_cpp_glue_header_name): Don't use token_buffer.
205         (output_token, dump_param_spelling): Write directly to a FILE *.
206
207         * cpplib.c (pass_thru_directive, dump_macro_name,
208         pragma_dispatch, do_pragma_gcc): Delete.
209         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
210         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
211         functions.
212         (do_error, do_warning, pragma_dependency): Call
213         _cpp_begin_message, then cpp_output_list.
214         (cpp_register_pragma, cpp_register_pragma_space,
215         _cpp_init_internal_pragmas): New.
216         (do_pragma): Walk the pragmas table here.
217         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
218         do_pragma_dependency): Return void.
219         (do_pragma_implementation): Moved to cppmain.c.
220
221         * cpplib.h: Update prototypes.
222          (struct cpp_reader): Remove printer, token_buffer,
223         token_buffer_size, and limit.  Add struct cb, and pragmas.
224         (struct cpp_printer): Remove last_id and written.
225         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
226         CPP_ADJUST_WRITTEN): Delete.
227         * cpphash.h: Update prototypes.
228         (ufputs): New wrapper.
229
230         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
231         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
232         (main): Set up callbacks.  Register #pragma implementation.
233         Dump macros from here.
234
235 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
236
237         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
238         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
239         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
240         insns if they have a REG_MAYBE_DEAD note attached.
241         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
242         (rs6000_emit_load_toc_table): TOC loads may go dead.
243
244 2000-08-01  Jim Wilson  <wilson@cygnus.com>
245
246         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
247         type exists before using it.  Use number of words as alignment
248         otherwise.
249         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
250         ia64_va_arg): Propagate ia64_function_args changes here.
251
252 2000-08-01  Richard Henderson  <rth@cygnus.com>
253
254         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
255         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
256
257 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
258
259         From Joern Rennecke:
260         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
261         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
262         unless TARGET_SH3E is set.
263         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
264
265         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
266         (ashlsi3_std): New pattern.
267         (ashlsi3 expander): Use it for TARGET_SH3.
268         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
269
270 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
271
272         * loop.c (canonicalize_condition):  Use destination, not source to
273         determine SET's mode.
274
275 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
276
277         * flow.c (clear_log_links): Fix typo.
278
279 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
280
281         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
282         on targets which need more than one insn for a compare/cbranch
283         operation.
284
285 2000-07-31  Jim Wilson  <wilson@cygnus.com>
286
287         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
288         when computing offset.
289
290 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
291
292         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
293
294 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
295
296         * flow.c (clear_log_links): Nuke global_live_at_start and
297         global_live_at_end data, since if the log_links stuff is invalid
298         so is global_live_at_*.
299
300 2000-07-31  Richard Henderson  <rth@cygnus.com>
301
302         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
303
304 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
305
306         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
307         (_cpp_get_token): Don't macro expand a just pasted token if it
308         was pasted at no_expand_level.
309
310 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
311
312         * cppmacro.c (find_param, count_params, save_expansion):
313         Permit 'defined' as a macro parameter name.
314
315 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
316
317         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
318         xcpp to cpp throughout.
319         (native): Remove unnecessary dependency on cpp.
320
321         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
322         tradcpp to tradcpp0.
323         (.i spec): Add missing output-file spec to cc1 command line.
324         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
325
326 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
327
328         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
329         (implicit_decl_warning): New function.
330         (implicitly_declare): Use it.
331         * c-typeck.c (build_external_ref): Use implicit_decl_warning
332         to complain about implicit decls of builtins.
333
334         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
335         based on pedantic && flag_isoc99, if not already set.
336         * c-tree.h: Declare mesg_implicit_function_declaration.
337         Prototype implicit_decl_warning.
338
339 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
340
341         * Makefile.in (ssa.o): Updated header files in dependences.
342         * basic-block.h: Added compute_immediate_postdominators declaration.
343         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
344         definition.
345         * flow.c (compute_immediate_dominators): Updated comment.
346         (compute_immediate_postdominators): Added definition.
347         * rtl.h (HARD_REGISTER_P): Added definition.
348         * ssa.c: Include additional header files.
349         (assert): Added definition.
350         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
351         include select hard registers.
352         (ssa_rename_to_insert): Likewise.
353         (ssa_rename_from_initialize): Likewise.
354         (ssa_rename_from_lookup): Likewise.
355         (original_register): Likewise.
356         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
357         include select hard reigsters.
358         (ssa_rename_from_traverse): Likewise.
359         (ssa_rename_from_free): Likewise.
360         (ssa_rename_from_print): Likewise.
361         (ssa_rename_from_print_1): Likewise.
362         (ssa_rename_from_hash_function): Likewise.
363         (ssa_rename_from_equal): Likewise.
364         (ssa_rename_from_delete): Likewise.
365         (simplify_to_immediate_dominators): Removed in favor of
366         flow.c:compute_immediate_dominators.
367         (find_evaluations_1): Modified to work with hard registers.
368         (insert_phi_node): Likewise.
369         (insert_phi_nodes): Likewise.
370         (struct rename_set_data): Updated prev_reg comment.
371         (create_delayed_rename): Modified to work with hard registers.
372         (RENAME_NO_RTX): Updated comment.
373         (apply_delayed_renames): Modified to work with hard registers.
374         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
375         (rename_block): Updated to use revised ssa_rename_to interface.
376         (rename_registers): Updated to use revised ssa_rename_to and
377         ssa_rename_from interface.
378         (convert_to_ssa): Revised to use compute_immediate_dominators and
379         deal with hard registers.
380         (make_regs_equivalent_over_bad_edges): Modified to work with hard
381         registers.  Added check for illegal unification of hard register.
382         (make_equivalent_phi_alternatives_equivalent): Modified to work
383         with hard registers.
384         (compute_conservative_reg_partition): Likewise.
385         (coalesce_if_unconflicting): Modified to work with hard registers
386         and check for conflicting hard registers.
387         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
388         registers.
389         (rename_equivalent_regs_in_insn): Modified to work with hard
390         registers.
391         (record_canonical_element_1): Added definition.
392         (check_hard_regs_in_partition): Added definition.
393         (convert_from_ssa): Added data structure deallocation and check
394         for illegal hard register unification.
395         (conflict_hard_regs_p): Added definition.
396         * toplev.c (rest_of_compilation): Added comment.
397
398 2000-07-31  Anthony Green  <green@redhat.com>
399
400         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
401
402 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
403
404         * builtins.c (expand_builtin_apply): Don't defer pop during
405         argument setup.
406
407 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
408
409         * calls.c (combine_pending_stack_adjustment_and_call): Only use
410         preferred_unit_stack_boundary when it is > 1.
411
412 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
413
414         * c-common.c (init_function_format_info): Add C99 format functions
415         in C99 mode.
416
417         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
418         void' or 'register void' as being the special case of 'void' alone
419         in a parameter list.
420
421         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
422         discarding qualifiers into a plain warning.
423
424 2000-07-31  Kazu Hirata  <kazu@hxi.com>
425
426         * combine.c: Fix formatting.
427
428         * h8300.md: Fix formatting.
429
430         * local-alloc.c: Fix formatting.
431
432         * h8300.c (get_shift_alg): Remove the variable alg.
433         (emit_a_shift): Rearrange code to improve readability.
434
435         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
436
437         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
438         HImode on all architectures and a combination of HImode and SImode
439         on H8/300H and H8/S.
440
441         * h8300.c (split_adds_subs): Rearrange code for conciseness.
442
443 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
444
445         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
446         in my last checkin.
447
448 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
449
450         * recog.c (extract_insn): Set operand_mode according to
451         operand if match_operand is VOIDmode.
452
453 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
454
455         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
456
457 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
458
459         * c-parse.in (extdefs): Call ggc_collect between external
460         definitions.
461
462 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
463             Richard Henderson  <rth@cygnus.com>
464
465         * Makefile.in (OBJS): Add doloop.o.
466         * doloop.c: New file.
467
468         * final.c (insn_current_reference_address): Return 0 before final.
469         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
470         * jump.c (any_uncondjump_p): Likewise.
471         * loop.c (indirect_jump_in_function): Make static.
472         (strength_reduce): Call doloop_optimize.
473         (insert_bct, instrument_loop_bct): Remove.
474         * loop.h (doloop_optimize): Prototype.
475         * recog.c (split_all_insns): Split all INSN_P.
476         * toplev.c (flag_branch_on_count_reg): Default on.
477
478         * config/c4x/c4x.c (c4x_optimization_options): Don't set
479         flag_branch_on_count_reg.
480         * config/i386/i386.c (override_options): Likewise.
481         * config/rs6000/rs6000.c (optimization_options): Likewise.
482
483         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
484         (doloop_end): New.
485         (dbra_ge): Remove, as well as all it's splitters.
486
487         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
488         (doloop_end): New.
489
490         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
491         (ia64_register_move_cost): Declare.
492         * config/ia64/ia64.c (ar_lc_reg_operand): New.
493         (struct ia64_frame_info): Add ar_size.
494         (ia64_compute_frame_size): Set it.
495         (save_restore_insns): Save and restore ar.lc.
496         (ia64_register_move_cost): New, moved from header file.  Handle
497         application registers.
498         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
499         (emit_insn_group_barriers): Special case doloop_end_internal.
500         (ia64_epilogue_uses): Mark ar.lc live at end.
501         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
502         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
503         (FIRST_PSEUDO_REGISTER): Make room.
504         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
505         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
506         (REG_ALLOC_ORDER): Update.
507         (HARD_REGNO_MODE_OK): Update.
508         (REGISTER_NAMES): Update.
509         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
510         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
511         (REGNO_REG_CLASS): Update.
512         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
513         (REGISTER_MOVE_COST): Move out of line.
514         (PREDICATE_CODES): Update.
515         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
516         (addsi3_plus1_alt, adddi3_plus1_alt): New.
517         (shladd_elim splitter): Allow constants in the predicate.
518         (doloop_end, doloop_end_internal): New.
519
520 2000-07-30  Richard Henderson  <rth@cygnus.com>
521
522         * genattrtab.c (struct insn_def): Add lineno member.
523         (struct insn_ent): Likewise.
524         (struct attr_desc): Likewise.
525         (struct delay_desc): Likewise.
526         (struct function_unit_op): Likewise.
527         (struct function_unit): Likewise.
528         (check_attr_value): Use message_with_line.
529         (check_defs): Likewise.
530         (expand_units): Likewise.
531         (check_attr_test): Take a lineno argument.
532         (gen_attr): Likewise.
533         (gen_insn): Likewise.
534         (gen_delay): Likewise.
535         (gen_unit): Likewise.
536         (main): Give it to them.
537         (convert_set_attr_alternative): Take an insn_def argument
538         instead of num_alt and insn_index.
539         (convert_set_attr): Likewise.
540         (write_test_expr): Protect INSN_ADDRESSES load
541         with INSN_ADDRESSES_SET_P.
542
543 2000-07-30  Richard Henderson  <rth@cygnus.com>
544
545         * flow.c (init_propagate_block_info): Use pc_set.
546
547 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
548
549         * i386.md (*lea_general_[123]) New insns and splits.
550         (addsi3 to lea splitter): Handle other modes too.
551         (shlsi3 to lea splitter): Likewise.
552         (addhi_1_lea, shlhi_1_lea): New patterns.
553         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
554
555 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
556
557         * recog.c (general_operand, nonimmediate_operand): Accept
558         any mode for VOIDmode CONSTANT_P operands.
559
560 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
561
562         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
563         instead of replace_rtx.
564         * recog.c (validate_replace_rtx_subexp): New function.
565         * recog.h (validate_replace_rtx_subexp): Declare.
566
567 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
568
569         * combine.c (simplify_set, make_extraction, make_compound_operation
570         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
571         as force_to_mode argument.
572
573 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
574
575         * combine.c (if_then_else_cond): Be sure that mode fits in
576         HOST_WIDE_INT.
577
578 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
579
580         * combine.c (record_promoted_value):  Allow bitsize of mode
581         to be equivalent to HOST_BITS_PER_WISE_INT.
582
583 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
584
585         * function.c (assign_stack_local_1, assign_stack_temp_for_type): 
586         Do not call gen_mode_alignment when mode is BLKmode.
587
588 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
589
590         * loop.c (express_from_1): Fix call of simplify_gen_binary.
591
592 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
593
594         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
595         VOIDmode implies both operands to be VOIDmode.
596         (simplify_ternary_operation): Compute properly the mode of comparison.
597         * combine.c (combine_simplify_rtx): Likewise.
598
599 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
600
601         * basic-block.h (struct loops): New field rc_order.
602         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
603         (flow_loops_free): Free rc_order.
604         (flow_depth_first_order_compute): New parameter rc_order.
605         (flow_loops_find): Allocate rc_order and swap usage with
606         dfs_order.
607
608 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
609            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
610
611         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
612         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
613         (nodb_call, return_from_epilogue): Likewise.
614         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
615         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
616         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
617         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
618         (c4x_valid_type_attribute_p): Likewise.
619         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
620         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
621         
622 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
623
624         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
625         and loadhi_big_constant if applicable.
626         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
627         and add new splitter.s
628
629 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
630
631         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
632
633 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
634
635         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
636
637 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
638         
639         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
640
641 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
642
643         * config/c4x/libgcc.S (divqf3): Improve accuracy.
644
645 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
646
647         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
648         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
649         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
650         (get_prev_bb_note): Likewise.
651         (remove_scope_notes): Likewise.
652         * flow.c (commit_one_edge_insertion): Likewise.
653         (merge_blocks_nomove): Likewise.
654         (verify_flow_info): Likewise.
655         * gcse.c (insert_insn_end_bb): Likewise.
656         * reg-stack.c (emit_swap_insn): Likewise.
657         * ssa.c (first_insn_after_basic_block_note): New function.
658         (insert_phi_node): Use it.
659         (rename_block): Likewise.
660         (eliminate_phi): Likewise.
661         (make_regs_equivalent_over_bad_edges): Likewise.
662         (make_equivalent_phi_alternatives_equivalent): Likewise.
663         (for_each_successor_phi): Likewise.
664         (convert_from_ssa): Modify phi-node deletion algorithm.
665         
666 2000-07-29  Andreas Jaeger  <aj@suse.de>
667
668         * configure.in (mips*-*-linux*): Use mips*el to check for little
669         endian MIPS, add tmake_file.
670
671         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
672         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
673         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
674
675 2000-07-28  Richard Henderson  <rth@cygnus.com>
676
677         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
678         Sign extend mode size before negating.
679
680 2000-07-28  Richard Henderson  <rth@cygnus.com>
681
682         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
683
684 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
685
686         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
687         (cse_insn): Likewise.
688         (addr_affects_sp_p): Likewise.
689         * expr.c (move_by_pieces): Likewise.
690         (clear_by_pieces): Likewise.
691         * gcse.c (oprs_unchanged_p): Likewise.
692         * haifa-sched.c (sched_analyze_2): Likewise.
693         * recog.c (offsettable_address_p): Likewise.
694         * regclass.c (record_address_regs): Likewise.
695         * reload.c (find_reusable_reload): Likewise.
696         (push_reload): Likewise.
697         (operands_match_p): Likewise.
698         (decompose): Likewise.
699         (find_reloads_address_1): Likewise.
700         (find_inc_amount): Likewise.
701         * reload1.c (elimination_effects): Likewise.
702         * resource.c (mark_set_resources): Likewise.
703         * flow.c (attempt_auto_inc): New function; mostly broken out
704         of find_auto_inc.
705         (find_auto_inc): Split into two functions and enhanced to
706         generate POST_MODIFY.
707         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
708         * rtl.h (count_all_occurrences):  Declare.
709         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
710         defined.
711         * rtlanal.c (count_all_occurrences): New function.
712         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
713         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
714
715         * config/ia64/ia64-protos.h (destination_operand): Declare.
716         * config/ia64/ia64.c (destination_operand): New function.
717         (ia64_print_operand): Handle POST_MODIFY.
718         (rtx_needs_barrier): Likewise.
719         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
720         (HAVE_POST_MODIFY_REG): Define to 1.
721         (MAX_REGS_PER_ADDRESS): Change to 2.
722         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
723         (LEGITIMATE_ADDRESS_REG): New helper macro.
724         (LEGITIMATE_ADDRESS_DISP): Likewise.
725         (PREDICATE_CODES): Add entry for destination_operand.
726         * config/ia64/ia64.md (all mov patterns): Use destination_operand
727         predicate for operand 0.
728
729 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
730
731         * dwarf2out.c: Indent #error directive.
732
733         * gbl-ctors.h: Fix typo in comment.
734         (__do_global_ctors): Prototype.
735
736         * gcse.c (record_one_set, pre_delete): Remove unused variables.
737         
738         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
739         (print_operand): Initialize variable `t'.
740
741 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
742
743         * config/arm/arm.md ("call_value"): removed constraints.
744         Constraints are ignored in expanders.
745         (*call_value_reg): split =rf into various constraints.
746         (*call_value_mem): same
747         (*call_value_symbol): same
748         (*sibcall_value_insn): same
749
750 2000-07-28  Philipp Thomas  <pthomas@suse.de>
751
752         * install.texi (--enable-nls): Change the description of the NLS
753         related configure options to match the current state.
754         (--with-included-gettext): Likewise.
755         (--enable-maintainer-mode): New description added.
756         * extend.texi (-fstrict-prototype): Add missing '.'.
757         
758 2000-07-27  Jim Wilson  <wilson@cygnus.com>
759
760         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
761         DECL_INITIAL (decl) == NULL_TREE.
762
763 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
764
765         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
766         on insn-attr.h with it.
767         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
768         * insn-addr.h: New header.
769         (insn_addresses_): Renamed from insn_addresses.
770         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
771         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
772         INSN_ADDRESSES_NEW): New macros.
773         * genattrtab.c (write_test_expr): Use new macros.
774         * final.c (insn_addresses, init_insn_lengths): Likewise.
775         (align_fuzz, shorten_branches): Likewise.
776         (final): Likewise.  Do not reject new insns if their addresses
777         have been added to INSN_ADDRESSES.
778         * config/arm/arm.c, config/avr/avr.c: Use new macros.
779         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
780         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
781         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
782         * config/sh/sh.c: Likewise.
783         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
784
785         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
786
787 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
788
789         * gcc.c (struct prefix_list): Add member priority.
790         (enum path_prefix_priority): Declare.
791         (add_prefix): Replace ``first'' with ``priority''.  Append new
792         entry but keep list in priority order.
793         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
794         PREFIX_PRIORITY_LAST to add_prefix.
795         (process_command): Move include kludge - foo/stageN - to before
796         foo/include.
797
798 2000-07-27  Jason Merrill  <jason@redhat.com>
799
800         * dwarf2out.c (gen_typedef_die): Abort if we get identical
801         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
802
803 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
804
805         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
806         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
807
808 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
809
810         * c-decl.c (finish_function): Don't treat 'main' specially unless
811         flag_hosted.  In C99 mode, return 0 from 'main' unless
812         DEFAULT_MAIN_RETURN is otherwise defined.
813
814         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
815         parameters defaulting to int in an old-style function definition.
816
817 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
818
819         * c-parse.in (string): For -Wtraditional, warn about string
820         concatenation only once per line.
821
822 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
823
824         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
825         for HI-UX/WE2 systems.
826         
827 2000-07-24  Bruce Korb  <bkorb@gnu.org>
828
829         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
830         defining the __xxx_TYPE__ macros.
831         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
832         * fixincl/fixlib.h: don't need to include "tm.h" anymore
833         * fixincl/inclhack.def(type_map): now obsolete
834
835 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
836
837         * cpp.texi: Append a trailing full-stop to xrefs where needed.
838
839 2000-07-26  Dave Pitts  <dpitts@cozx.com>       
840
841         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash 
842         routine constants.
843         (mvs_hash_alias): New function.
844         (mvs_add_alias): Change argument spacing.
845         (mvs_need_alias): Change aliasing criteria. Added documentation.
846         (mvs_get_alias): Change to use hashed name. The hashed name prevents
847         CSECT name collisions.
848         (mvs_check_alias): Likewise.
849         (handle_pragma): Change documentation.
850         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
851         mode from SImode to DImode.
852         (iorhi3): Changed LTORG size for insn.
853
854 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
855
856         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
857         mem if the address is a mode_dependent_address_p.
858
859 2000-07-26  Kazu Hirata  <kazu@hxi.com>
860
861         * h8300.c (print_operand): Print ":8" when the 'R' operand is
862         suitable for 8-bit absolute.
863         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
864         (OK_FOR_U): Add a case for the 8-bit constant address on the
865         H8/300H.
866
867 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
868
869         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
870         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
871         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
872         lack of implemented alignment.
873
874 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
875
876         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
877         cross-compiling between 64-bit and 32-bit machines.
878
879 2000-07-27  Richard Henderson  <rth@cygnus.com>
880
881         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
882         (movhicc_astep, movhi_internal_astep): New.
883         (movsicc_astep, movsi_internal_astep): New.
884         (movdicc_astep, movdi_internal_astep): New.
885         (movsfcc_astep, movsf_internal_astep): New.
886         (movdfcc_astep, movdf_internal_astep): New.
887         (movxfcc_astep, movxf_internal_astep): New.
888         (cmovdi_internal_astep, cmovsi_internal_astep): New.
889         Unify the cmov[ds]i splitters.
890
891 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
892
893         * real.c (asctoeg): Rename `error' label to unexpected_char_error
894
895 2000-07-26  Nick Clifton  <nickc@cygnus.com>
896
897         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
898         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
899
900         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
901         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
902
903 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
904
905         * c-decl.c (finish_enum): Convert enumerations that fit in an
906         `int' to `int'.
907         (build_enumerator): In pedantic mode, cast to `int' those that
908         don't.
909
910 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
911
912         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
913
914 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
915
916         * sh.md (cmpgtdi_t): Must be split.
917         (cmpgtdi_t+1): New splitter.
918
919 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
920
921         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
922         warnings for indented directives even if we are skipping.
923
924 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
925
926         * invoke.texi (strict-prototypes): Remove.
927         * extend.texi (Deprecated Features): Add strict-prototypes.
928         (Backwards Compatibility): New node.
929
930 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
931
932         * config/i386/i386.md (andsi_1+1): Allow HImode.
933         (andsi_1+2): Require q_regs_operand.
934
935 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
936
937         * config/i386/i386.md (call_pop): Check operands[0],
938         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
939         (call): Likewise.
940         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
941         (call_value): Likewise.
942
943 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
944
945         * toplev.c (pipe_closed): Delete.
946         (crash_signal): New.  Generate ICE for a fatal signal.
947         (float_signal): Call crash_signal outside a float-handler
948         block, not abort.
949         (main): Install crash_signal as handler for core-dumping signals.
950
951 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
952
953         * rs6000.c (print_operand, case 'T'): New case.
954
955         * rs6000.md (call_indirect_aix32): Convert to expander of
956         scheduled instructions.
957         (call_indirect_aix64): Likewise.
958         (call_value_indirect_aix{32,64}): Likewise.
959         (call, call_value): Invoke expanders for AIX.  Fall through to
960         matchers for SysV.
961         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
962         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
963         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
964         only "g" constraint.
965         (call_nonlocal_aix64): Likewise.
966         (call_value_nonlocal_aix{32,64}): Likewise.
967         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
968         operands.
969         (call_value_nonlocal_sysv): New pattern.
970         (indirect_jump{si,di}): Use new 'T' modifier.
971         (tablejump{si,di} matchers): Likewise.
972         (return_internal_{si,di}): Likewise.
973         (return_eh_{si,di}): Likewise.
974
975 2000-07-24  Richard Henderson  <rth@cygnus.com>
976
977         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
978         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
979         * config/ia64/ia64.md (movdi_internal): Use it.
980
981 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
982
983         * cppexp.c: Warn about unary + if -Wtraditional.
984         * cpplex.c (lex_line): Always set BOL on the first token of a line.
985
986 2000-07-24  Michael Meissner  <meissner@redhat.com>
987
988         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
989         unsupported macro.
990
991 2000-07-24  Nick Clifton  <nickc@cygnus.com>
992
993         * config/arm/arm.c (emit_multi_reg_push): Generate a
994         REG_FRAME_RELEATED_NOTE that is compatable with the code in
995         dwarf2out_debug_frame_expr.
996
997 2000-07-24  Jason Merrill  <jason@redhat.com>
998
999         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
1000         UNALIGNED_INT_ASM_OP.
1001         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
1002         a location expression.
1003         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't 
1004         assume indirect access if we're saving the CFA address exactly.
1005
1006         * Makefile.in (bootstrap): Move -BstageN/ to the end.
1007
1008 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
1009
1010         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
1011         as well.
1012
1013 2000-07-24  Michael Meissner  <meissner@redhat.com>
1014
1015         * invoke.texi (D30V Options): Add d30v options.
1016
1017 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
1018
1019         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
1020         needed by our gcse pass anymore.
1021         (free_pre_mem): Corresponding changes.
1022         (compute_pre_data): Do not call compute_transpout anymore.
1023
1024         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
1025         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
1026         changes.
1027
1028         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
1029         (compute_pre_data): Do it here instead.
1030
1031         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
1032         'temp_bitmap'.
1033         (pre_delete): Corresponding changes.
1034
1035 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
1036
1037         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
1038         to figure out whether or not a variable has already been emitted.
1039
1040 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com> 
1041
1042         * config/i860/i860.md (untyped_call expander): Use GEN_CALL 
1043         instead of gen_call.
1044
1045 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
1046
1047         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
1048
1049 2000-07-23  Kazu Hirata  <kazu@hxi.com>
1050
1051         * h8300.c: Fix formatting.
1052
1053 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1054
1055         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
1056         for `long' switch expression into a plain warning.
1057
1058         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
1059         (yylex): Don't pedwarn for "inline" in C99 mode.
1060
1061         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
1062         with %p.
1063         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
1064         ggc_alloc): Likewise.
1065         * bb-reorder.c (dump_scope_forest_1): Likewise.
1066
1067 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
1068
1069         * reload.c (find_reloads_toplev): Add new parameter
1070         "address_reloaded".
1071         (find_reloads): Add new parameter to find_reloads_toplev calls.
1072
1073 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
1074
1075         * collect2.c (main): Typo fixed.
1076         * diagnostic.c: Typo fixed.
1077         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
1078         * eh-common.h: Typo fixed.
1079         * emit-rtl.c (start_sequence): Typo fixed.
1080         * flow.c (find_label_refs): Typo fixed.
1081         (calculate_global_regs_live): Typo fixed.
1082         (mark_regno_cond_dead): Typo fixed.
1083         (create_edge_list): Typos fixed.
1084         (verify_edge_list): Typo fixed.
1085         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
1086         * loop.c (strength_reduce): Typo in function name fixed.
1087         * rtl.h: Added comments.  Typo in function name fixed.
1088         * rtlanal.c: Typo in function name fixed.
1089         (insn_dependant_p): Rename to ...
1090         (insn_dependent_p): ... this.
1091         (computed_jumo_p): Typo fixed.
1092
1093 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1094
1095         * system.h (__FUNCTION__): Wrap definition in #ifndef.
1096
1097 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
1098
1099         * rs6000.h (SIZE_TYPE): Define.
1100
1101 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
1102
1103         * ssa.c (rename_insn_1): Don't rename registers that are
1104         CLOBBERed.
1105
1106 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
1107
1108         * diagnostic.c (trim_filename, fancy_abort): Moved here from
1109         rtl.c.
1110         (fatal_function, set_fatal_function): Removed.
1111         (fatal): Don't prepare for or call the fatal_function.
1112         (diagnostic_lock, error_recursion): New.
1113         (diagnostic_for_decl, report_diagnostic): Guard against
1114         re-entering the error reporting routines.
1115         (fancy_abort): Assume function is not NULL.
1116
1117         * errors.c (fancy_abort): New.  Assume function is not NULL.
1118         * tradcpp.c (fancy_abort): Assume function is not NULL.
1119
1120         * system.h: Provide default definition of __FUNCTION__.
1121         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
1122         Always use __FUNCTION__ in definition of abort.
1123         * tree.h: Likewise.
1124         * varray.h: Likewise.
1125         * toplev.h: Likewise.  Don't prototype set_fatal_function.
1126
1127 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
1128
1129         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
1130         in 64-bit mode.
1131         * glimits.h: Don't do #if defined for ARCH_PPC.
1132
1133         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
1134         constants of size no larger than a pointer should go in the TOC.
1135         Add 'MODE' parameter.
1136         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
1137         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
1138         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
1139         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
1140         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
1141         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
1142         (rs6000_legitimize_address): Likewise.
1143         (rs6000_emit_move): Likewise.
1144         (rs6000_select_rtx_section): Likewise.
1145         (output_toc): Deal properly with outputting small constants like
1146         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
1147         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
1148         MODE parameter.  Put small constants in the TOC.
1149
1150         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
1151         easy in SImode.
1152         (rs6000_emit_move): When reload calls us with an illegitimate
1153         address, exit early.  Move the change_address calls to one place
1154         at the end of the routine.  Merge the SImode and DImode expanders.
1155         When called by reload to put an integer into a FP register, force
1156         it to memory.
1157
1158         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
1159         field.
1160         (rs6000_hash_constant): Hash mode too.
1161         (toc_hash_function): Allow for key_mode.
1162         (toc_hash_eq): Structures are different if key_mode differs.
1163         (output_toc): Add 'mode' parameter.  Save key_mode.
1164         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
1165         Pass 'mode' parameter.
1166         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
1167
1168         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
1169         for vtable references.
1170
1171         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
1172         choice, don't put integer values in FP regs.
1173
1174 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
1175
1176         * flow.c (verify_flow_info): Revamp code to verify that the
1177         head and end of each basic block are in the insn chain.
1178
1179 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
1180
1181         * gcse.c (record_one_set): Prepend instead of append onto
1182         reg_set_table, making it O(n) instead O(n^2).
1183         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
1184         Use a queue instead of a stack as worklist.
1185
1186 2000-07-20  Kazu Hirata  <kazu@hxi.com>
1187
1188         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
1189         * h8300.h (OK_FOR_T): New.
1190         (EXTRA_CONSTRAINT): Support OK_FOR_T.
1191         * h8300.md: Use inc/dec.[wl] for increment/decrement
1192         by 1 and 2 in HI and SI modes.
1193
1194 2000-07-20  Jim Wilson  <wilson@cygnus.com>
1195
1196         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
1197         larger than 14 bits.
1198
1199 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
1200
1201         * cppmacro.c (CAN_PASTE_AFTER): New macro.
1202         (count_params): Don't set GNU_REST_ARGS on anything.
1203         (save_expansion): Set PASTE_LEFT only on tokens for which
1204         CAN_PASTE_AFTER is true, or which are named operators.
1205
1206         * cpplex.c (parse_args): Distinguish between a rest argument
1207         given one empty argument, and a rest argument given zero arguments.
1208         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
1209         deletion of previous token based on that.
1210         (get_raw_token): Flatten some control structure.
1211
1212         * cpplib.h (CPP_LAST_EQ): Correct.
1213         (VOID_REST): New token flag.
1214         (GNU_REST_ARGS): Delete.
1215
1216         * tradcpp.c (main): Don't munge -D options.
1217         (make_definition): Bring -D handling in line with cpplib.
1218         (do_define): Strip all leading whitespace from macro definitions.
1219
1220 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
1221
1222         * Makefile.in (tradcpp): Depend on intl.o and version.o.
1223
1224 2000-07-20  Bruce Korb  <bkorb@gnu.org>
1225
1226         * fixincl/check.tpl: strip the platform specific types before testing
1227         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
1228         * fixincl/fixincl.tpl: use platform specific types
1229         * fixincl/fixlib.h: include the platform specific types
1230         * fixincl/inclhack.def(gnu_types): don't supply the types
1231         * fixincl/fixincl.x: regen
1232
1233 2000-07-19  Jim Wilson  <wilson@cygnus.com>
1234
1235         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
1236         GR_REGS.
1237
1238 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
1239
1240         * tradcpp.c (rescan): Do not recognize directives when the #
1241         is indented.
1242
1243 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
1244
1245         Implement C++ named operators.
1246
1247         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
1248         of operators allowed in #if and having an _EQ variant.  Add
1249         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
1250         (cpp_token flags): Add NAMED_OP.
1251         (enum node_type): Add T_OPERATOR.
1252         (struct cpp_hashnode): Add code slot to value union.
1253         * cpphash.h (spec_nodes): Remove n_defined.
1254
1255         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
1256         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
1257         (is_macro_disabled): Tweak error messages.
1258
1259         * cpplib.c (get_define_node): Disallow all named operators as
1260         macro names.  Tweak error messages.
1261         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
1262
1263         * cppinit.c (builtin_array): Add entries for the named operators.
1264         * cppexp.c (lex): Check for CPP_DEFINED token.
1265         (priority table): Add entries for CPP_MIN and CPP_MAX.
1266         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
1267
1268 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
1269
1270         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
1271         larger than the array of cuids.
1272         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
1273         cuids.
1274
1275 2000-07-19  Bruce Korb  <bkorb@gnu.org>
1276
1277         * fixinc/fixincl.c:  Convert to using a table of environment variables
1278         and activate the auto-edit marker on the fixed output files.
1279         * fixinc/fixlib.h:  Define the environment table
1280         * fixinc/fixincl.sh: export the ${INPUT} dir
1281         * fixinc/check.tpl: likewise
1282
1283 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
1284
1285         * gcc.c (.h spec): Fix typo.
1286
1287 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
1288
1289         * Makefile.in: Fix tradcif.c path.
1290
1291 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
1292
1293         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
1294           macros, not five.
1295
1296         * cpphash.h (TOKEN_NAME): New macro.
1297         (_cpp_spell_operator): Deleted.
1298         (token_spellings): Now _cpp_token_spellings.
1299
1300         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
1301         * cpplex.c: Use OP and TK macros when expanding the
1302         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
1303         store the stringification of the enumeration name (CPP_CHAR,
1304         etc.) in the name slot of token_spellings.
1305         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
1306         token_spellings directly.
1307         * cpplib.c: Use TOKEN_SPELL.
1308
1309         * cpplex.c (_cpp_push_token): If the token being pushed back
1310         is the previous token in this context, just subtract one from
1311         context->posn.
1312         * cppmacro.c (save_expansion): Clear aux field when storing a
1313         placemarker.
1314
1315 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
1316
1317         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
1318         buffer, provided it is not NULL.
1319
1320 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
1321
1322         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
1323         case of invalid volatile re-declaration.
1324
1325 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
1326
1327         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
1328         (expand_call): Adjust caller.
1329
1330 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
1331
1332         * diagnostic.h (report_diagnostic): Change prototype.
1333
1334         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
1335         diagnostic_for_decl):  Change prototype.
1336         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
1337         error, warning, error_with_file_and_line,
1338         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
1339         Adjust call to report_diagnostic, diagnostic_for_decl.
1340         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
1341         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
1342
1343         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
1344         varaible argument list.
1345
1346 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
1347
1348         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
1349         moved to cppmacro.c.
1350         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
1351         dump_hash_helper): Delete.
1352         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
1353         cpp_forall_identifiers): New. Implement specialized version of
1354         Vlad's expandable hash table.
1355         (cpp_lookup): Use new functions.
1356         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
1357         implementation.
1358         * cppmacro.c: New file.
1359         * cppinit.c (dump_macros_helper): New.
1360         (cpp_finish): Iterate over the identifier table directly.
1361         * cpplex.c (parse_name): Calculate the hash of the identifier
1362         while we scan it.  Use _cpp_lookup_with_hash when we can.
1363
1364         * cpphash.h: Update prototypes.
1365         (xcnewvec, HASHSTEP): New helper macros.
1366         * cpplib.h: Update prototypes.
1367         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
1368         (cppmacro.o): New rule.
1369         (cpphash.o): Update deps.
1370
1371         * cppmain.c: Do not set pfile->printer if no_output is on.
1372
1373 2000-07-15  Neil Booth  <neilb@earthling.net>
1374
1375         * cpplib.c: Change all directive-handler functions to return
1376         void, not int.
1377         * cpphash.h: Update typedefs.
1378
1379 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
1380
1381         * configure: Regenerate.
1382
1383         * extend.texi (Extended Asm): Mention that a memory clobber
1384         does not count as a side-effect.
1385
1386         * unroll.c (copy_loop_body): Fix one instance of using host
1387         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
1388         cross-compile.
1389
1390         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
1391
1392 2000-07-17  Richard Henderson  <rth@cygnus.com>
1393
1394         * config/ia64/ia64.md (movdi): Split out load address code.
1395         New post-reload splitter for symbolic operands.
1396         (movdi_internal): Abort if we didn't split symbolic operands
1397         when we should have.
1398         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
1399         (ia64_reorg): Split insns when not optimizing.
1400         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
1401
1402 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1403
1404         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
1405         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
1406
1407 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
1408
1409         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
1410
1411 2000-07-17  Jason Merrill  <jason@redhat.com>
1412
1413         * Makefile.in (clean): Remove libgcc directory.
1414
1415         * configure.in (-Wno-long-long check): Use higher-level macros.
1416
1417 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
1418
1419         * simplify-rtx.c (simplify_binary_operation): Recognize
1420            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
1421         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
1422            a CONST_INT, it will always be zero.
1423
1424 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
1425
1426         * loop.c (check_dbra_loop) : Return if more than one condition is
1427         present to control the loop.
1428
1429 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
1430
1431         * mips.c (mips_expand_prologue): Don't calculate the last argument
1432         register unless we need it.  When we are calculating this, make
1433         sure FUNCTION_ARG is giving us a REG.
1434
1435 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1436
1437         * flow.c (libcall_dead_p): Use single_set to verify the insn
1438         has only one set and get for analysis.
1439         (propagate_one_insn): Don't pass the PATTERN of the insn.
1440
1441 2000-07-17  Mark Klein <mklein@dis.com>
1442
1443          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
1444
1445 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1446
1447         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
1448         * configure.in (TARGET_GETGROUPS_T): Evaluate.
1449         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
1450         of second argument of getgroups.
1451         * configure, config.in: Rebuilt.
1452
1453 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
1454
1455         * simplify-rtx.c (simplify_relational_operation): Two signed
1456         values with equal high words are less/greater than each other if
1457         their low words are less/greater when considered as unsigned.
1458
1459 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
1460
1461         * configure.in (vax-*-openbsd):  Change to new style configuration,
1462         add collect2/float_format information.
1463         * configure:  Rebuilt.
1464         * config/vax/openbsd1.h:  New.
1465         * config/vax/openbsd.h:  New.
1466         * config/vax/t-openbsd:  New.
1467
1468 2000-07-17  Chip Salzenberg  <chip@valinux.com>
1469
1470         * c-common.c (shorten_compare): Quiet warnings about unsigned
1471         comparisons with zero when they occur in a system header.
1472
1473 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1474
1475         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
1476         update to describe current practice.
1477
1478         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
1479
1480         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
1481         references to C9X.  Change references to -fstd and -flang-isoc9x
1482         to refer to -std.
1483
1484         * c-common.c (scan_char_table): Allow "z" length modifiers on
1485         diouxXn formats.
1486         (check_format_info): Use TYPE_DOMAIN on the type matched against
1487         for "z" formats, to retrieve the language size_t rather than the
1488         internal one.
1489
1490         * c-common.c (check_format_info): Do not make a pedantic objection
1491         to the 'L' length modifier if used with a floating point type
1492         character.
1493
1494         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
1495         constants in C99 mode.
1496
1497 2000-07-17  Kazu Hirata  <kazu@hxi.com>
1498
1499         * h8300.md: Fix the format of mac.
1500         (movsi_h8300hs): Output a tab after stmac instead of a space.
1501
1502         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
1503         profitable adds/subs sequences.
1504
1505         * fold-const.c: Fix comment typos.
1506
1507 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
1508
1509         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
1510
1511 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1512
1513         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
1514
1515 2000-07-16  Neil Booth  <NeilB@earthling.net>
1516
1517         * cpplex.c: Update comments.
1518         * README.Portability: Small update.
1519
1520 2000-07-16  Neil Booth  <NeilB@earthling.net>
1521
1522         * README.Portability:  Small update.
1523
1524 2000-07-15  Richard Henderson  <rth@cygnus.com>
1525
1526         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
1527         * config/ia64/ia64.c (ia64_move_ok): New function.
1528         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
1529         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
1530
1531 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
1532
1533         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
1534         immediately following a paste operator.
1535         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
1536         (cpp_reader_init): Call it, if HOST_EBCDIC.
1537         (cpp_handle_options): Do not sort option list here.
1538         (handle_option): Rename to cpp_handle_option and export.
1539         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
1540         _cpp_get_token directly.
1541         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
1542         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
1543         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
1544         cpp_scan_line.
1545
1546 2000-07-15  Richard Henderson  <rth@cygnus.com>
1547
1548         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
1549         cast around an expression.  Tidy other unsigned tests.
1550
1551 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
1552
1553         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
1554         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
1555         (v_message_with_decl): Rename to ...
1556         (format_with_decl): ... this. Tweak
1557         (diagnostic_for_decl): New function.
1558         (fatal_io_error): Use verbatim in lieu of notice.
1559         (announce_function): Use verbatim.
1560         (default_print_error_function): Likewise.
1561         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
1562         infratructure.
1563
1564 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1565
1566         * mips.c (function_arg_pass_by_reference): Don't do automatic
1567         aggregate initialization.
1568         (machine_dependent_reorg): Initialize variable `mode'.
1569
1570         * mips.md (absdi2): Change variable `regno1' to unsigned int.
1571         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
1572         conflicts with sys/param.h macro of the same name.
1573         (reload_outdi): Likewise.
1574
1575 2000-07-15  Michael Meissner  <meissner@redhat.com>
1576
1577         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
1578         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
1579         create a new node instead.
1580
1581 2000-07-15  Neil Booth  <NeilB@earthling.net>
1582
1583         * README.Portability: Correct example about calling a function
1584         through a pointer to function.  Format wide paragraphs.
1585
1586 2000-07-15  Michael Meissner  <meissner@redhat.com>
1587
1588         * README.Portability: Update integer suffixes and function
1589         prototype sections.
1590
1591 2000-07-15  Neil Booth  <NeilB@earthling.net>
1592
1593         * README.Portability: Small update.
1594
1595 2000-07-15  Neil Booth  <NeilB@earthling.net>
1596
1597         * README.Portability: New file.
1598
1599 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
1600
1601         * INSTALL: Give special instructions for building GCC on Irix 6.
1602         * config/mips/x-iris6 (CC): Don't set it.
1603         (OLDCC): Likewise.
1604
1605 2000-07-14  Jason Merrill  <jason@redhat.com>
1606
1607         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
1608         register in the stack and later in another register, use the new
1609         register.
1610
1611 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
1612
1613         * config/mips/mips.md: (absdi2): Handle sign_extend for
1614         second operand.
1615
1616 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
1617
1618         * cpplib.c (do_pragma_dependency): Tidy warning messages.
1619
1620 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
1621
1622         * .cvsignore: Correct typo.
1623
1624 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
1625
1626         * .cvsignore: Add generated YACC files.
1627         * objc/.cvsignore: New file.
1628
1629 2000-07-14  Neil Booth  <NeilB@earthling.net>
1630
1631         * cpplex.c (adjust_column): New funcion.
1632         (skip_whitespace): Use it.
1633         (skip_block_comment): Use it, and warn about /*/* with
1634         -Wcomments.
1635
1636 2000-07-14  Neil Booth  <NeilB@earthling.net>
1637
1638         * cpphash.c (struct macro_info): Add new members.
1639         (_cpp_free_definition): Delete the macro directly.
1640         (count_params): Return void, with first token of
1641         expansion in struct macro_info on success.
1642         (parse_define): Return int.  Hoist syntax checking from
1643         save_macro_expansion.  Leave call to save_expansion to
1644         _cpp_create_definition.
1645         (alloc_macro): Needs just 2 arguments.
1646         (free_macro): Delete.
1647         (save_expansion): Don't perform syntax check.
1648         (_cpp_create_definition): Call save_expansion.
1649
1650 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1651
1652         * genrecog.c (write_header): Split long string.
1653
1654         * cpphash.c (macro_info): Don't use the `signed' keyword.
1655
1656         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
1657
1658 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
1659
1660         * calls.c (stored_args_map): New variable.
1661         (check_sibcall_argument_overlap_1): New.
1662         (check_sibcall_argument_overlap): New.
1663         (expand_call): Initialize stored_args_map.
1664         Call check_sibcall_argument_overlap.
1665
1666 2000-07-13  Bruce Korb  <bkorb@gnu.org>
1667
1668         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
1669         (emit_gnu_type): utility procedure for gnu_type_fix
1670         (gnu_type_fix): implement various pre-processor guards around
1671         standard types so these types can be defined over and over
1672         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
1673         types alluded to above will have GNU-compliant base types
1674         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
1675         * fixinc/inclhack.def: add test_text entries and utilize the new
1676         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
1677         * fixinc/fixincl.x: regenerate
1678
1679 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1680
1681         * diagnostic.c (vline_wrapper_message_with_location,
1682         v_message_with_file_and_line, v_error_with_file_and_file,
1683         v_error_for_asm, v_warning_for_asm, vfatal,
1684         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
1685         vsorry, verror, vwarning, vpedwarn): Remove.
1686         (diagnostic_for_asm): New function.
1687         (pedwarn, error, warning, pedwarn_with_file_and_line,
1688         error_with_file_and_line, warning_with_file_and_line, sorry,
1689         error_for_asm, warning_for_asm, fatal): Reimplement.
1690         (finish_diagnostic): Clear diagnostic info as well.
1691
1692 2000-07-13  Neil Booth  <NeilB@earthling.net>
1693
1694         * c-common.h (flag_digraphs): New.
1695         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
1696         * c-lex.c (yylex): Use flag_digraphs to decide whether to
1697         honour digraphs.
1698
1699 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
1700
1701         * gcc.c (do_spec_1): Add new %B operator.
1702         (set_input): Prepare for %B.
1703
1704         (link_command_spec): Move up with the other tm.h-
1705         overrideable specs.  Factor out the portion conditional on
1706         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
1707         (struct compiler): Just have a single spec string.  All users
1708         updated.
1709         (default_compilers): Remove unnecessary braces.
1710         (static_specs): Update.
1711
1712         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
1713         named specs.
1714         (C and assembly specs): Use the new named specs, as appropriate.
1715
1716         * objc/lang-specs.h: Use the new named specs.
1717         Remove unnecessary braces.
1718
1719 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
1720
1721         * gcc.c (execute): If a subprocess gets a fatal signal, report
1722         strsignal() of the signal number, and ask for a bug report.
1723         Do not do this for SIGPIPE if there's already been an error.
1724
1725         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
1726         Delete pipe_closed.
1727
1728         * tradcif.c: Remove.
1729
1730 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
1731
1732         * final.c (profile_function): Do not emit profile counters in
1733         the data section, if NO_PROFILE_COUNTERS is defined.
1734         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
1735         FUNCTION_PROFILER.
1736
1737         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
1738         (FUNCTION_PROFILER): Just emit a call to mcount.
1739
1740 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
1741
1742         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
1743
1744         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
1745         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
1746         traditional, lang_chill, or lang_fortran.
1747
1748         * cppfiles.c: #undef strcmp to suppress warning about macros
1749         used without arguments.
1750         (_cpp_execute_include): Use f, not fname, in "No include path"
1751         error.
1752         (_cpp_pop_file_buffer): New function.
1753         * cpplib.c: Don't include <sys/mman.h>.
1754         (cpp_push_buffer): Set line_base and lineno in new buffer.
1755         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
1756
1757         * cpplex.c: Move all prototypes and structure declarations to the
1758         top of the file.  Properly parenthesise some macro arguments.
1759         (cpp_scan_line): New function.
1760         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
1761         don't need to walk up the stack counting.
1762
1763 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1764
1765         * c-common.c (combine_strings): Emit a pedantic warning when a
1766         string length is greater than the minimum ANSI C is required
1767         to support.
1768
1769 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
1770
1771         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
1772         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
1773
1774 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1775
1776         * c-decl.c (define_label): Warn about identifier conflicts with
1777         labels in traditional C.
1778
1779         * c-parse.in (unop +): Warn about the unary plus operator for
1780         traditional C.
1781
1782         * c-typeck.c (store_init_value): Warn about automatic aggregate
1783         initialization for traditional C.
1784
1785         * invoke.texi (-Wtraditional): Document new warnings.
1786
1787 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
1788
1789         * Makefile.in (c-errors.o): Fix thinko in dependency.
1790
1791 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
1792
1793         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
1794         -traditional, -ftraditional, or -traditional-cpp was given.
1795         Do not pass -traditional to the preprocessor.
1796         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
1797         preprocessor does it automatically.
1798         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
1799
1800         * ch/lang-specs.h: Always use tradcpp.  Do not pass
1801         -traditional, -trigraphs, or -pedantic to the preprocessor.
1802         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
1803         _LANGUAGE_FORTRAN.
1804
1805 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
1806
1807         * cppexp.c (LOGICAL): Delete macro.
1808         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
1809         and && directly.
1810
1811         * cpphash.c (HASHSIZE): Increase to 4096.
1812         (struct hashdummy): Add hash field.
1813         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
1814         the string values using memcmp.
1815         (cpp_lookup): Set dummy.hash.
1816
1817 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
1818
1819         * configure.in (m88k-openbsd): Express configuration using new fragment
1820         style.
1821         * configure: Rebuilt.
1822         * m88k/aout-dbx.h: New.
1823         * m88k/openbsd.h: New.
1824         * m88k/xm-openbsd.h: New.
1825
1826 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1827
1828         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
1829
1830 2000-07-12  Richard Henderson  <rth@cygnus.com>
1831
1832         * reload.c (push_secondary_reload): Make sure to add the new
1833         reload at the end, after acquiring secondary memory.
1834
1835 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1836
1837         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
1838
1839         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
1840         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
1841
1842         * c-parse.in (stmt): Delete unused variables.
1843
1844         * convert.c (convert_to_vector): Likewise.
1845
1846         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
1847
1848         * tree.c (finish_vector_type): Prototype.
1849
1850 2000-07-12  Bruce Korb  <bkorb@gnu.org>
1851
1852         * fixinc/fixfixes.c: use xmalloc
1853         * fixinc/fixincl.c(initialize): set program name for xmalloc
1854         * fixinc/fixlib.c(must_malloc): obsolete
1855         (is_cxx_header): no longer used - disabled
1856         (skip_quote): inserted and disabled for future use
1857         * fixinc/fixlib.h: reflects above
1858         * fixinc/fixtests.c: removed dinkleberries
1859
1860 2000-07-12  Neil Booth  <NeilB@earthling.net>
1861
1862         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
1863         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
1864
1865         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
1866         struct toklist_dummy): New.
1867         (cpp_free_definition): Free macros with free_macro.
1868         (count_params): Don't save paramter spellings.  Save macro
1869         information in a struct macro_info.
1870         (parse_define): Don't allocate a token list.
1871         (save_expansion): Allocate the macro's token list, and
1872         save parameter spellings if necessary.  Use TOKEN_SPELL.
1873         (cpp_create_definition): Make list const.
1874
1875 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
1876
1877         * c-typeck.c (pedwarn_c99): Move to
1878         * c-errors.c: ... Here.
1879         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
1880         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
1881         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
1882         (c-errors.o): List dependency.
1883
1884 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
1885
1886         * c-parse.c: Remove.
1887         * c-parse.h: Likewise.
1888         * c-parse.y: Likewise.
1889         * objc/objc-parse.c: Likewise.
1890         * objc/objc-pasre.y: Likewise.
1891
1892 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
1893
1894         * gcc.texi: Fix minor typos
1895         * extend.texi: Fix minor typos
1896
1897 2000-07-11  Marc Espie <espie@openbsd.org>
1898
1899         * collect2.c (main): Recognize .lo as object files.
1900
1901 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1902
1903         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
1904         true.
1905
1906         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
1907         with MAP_ANONYMOUS and MAP_ANON.
1908         * configure, config.in: Rebuilt.
1909
1910 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
1911
1912         * diagnostic.c (save_output_state): Remove.
1913         (restore_output_state): Likewise.
1914         (clear_text_info): New function.
1915         (clear_diagnostic_info): Likewise.
1916         (output_text_length, is_starting_newline, output_prefix,
1917         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
1918         prefixing_policy, output_buffer_ptr_to_format_args): New macros
1919         (set_real_maximum_length, output_set_maximum_length,
1920         output_set_prefix, output_get_prefix, output_set_maximum_length,
1921         output_destroy_prefix, init_output_buffer,
1922         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
1923         output_add_newline, output_add_character, output_add_space,
1924         output_append_r, output_append, wrap_text, output_format,
1925         output_do_printf, output_printf, output_do_verbatim,
1926         output_verbatim, verbatim): Use them.
1927         (output_clear): Split into cleat_text_info and
1928         clear_diagnostic_info.
1929         (struct output_state): Move to...
1930
1931         * diagnostic.h: ...Here
1932         (struct output_buffer): Adjust.
1933
1934 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
1935
1936         * cpplex.c (parse_name): No longer inline (premature optimization).
1937         (do_pop_context): Fold into pop_context.
1938         (pop_context): Returns int.
1939         (lex_next): Hoist test for end of directive into pop_context.
1940         (push_macro_context): Returns int; takes just reader and token.
1941         Hoist test for excessive nesting to caller.
1942         (push_arg_context): Returns void; takes just reader and token.
1943         Do not call stringify_arg or get_raw_token.
1944         (get_raw_token): Convert tail recursion through push_arg_context
1945         to a loop at this level.  Call stringify_arg here if appropriate.
1946         (maybe_paste_with_next): Convert tail recursion to a while loop.
1947         Hoist test of paste_level to caller.
1948
1949         (stringify_arg): Push arg context at beginning.
1950         (cpp_get_token): Split out core into _cpp_get_token.  Call
1951         process_directive here.  Throw away CPP_PLACEMARKER tokens.
1952         (_cpp_get_token): Convert tail recursion through
1953         push_macro_context to a loop at this level.
1954         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
1955         _cpp_get_raw_token): Use _cpp_get_token.
1956         (_cpp_skip_rest_of_line): Drop the context stack directly; do
1957         not call pop_context.
1958         (_cpp_run_directive): Call lex_next directly.
1959
1960         * cpphash.h: Prototype _cpp_get_token.
1961         * cppexp.c (lex): Use it.
1962         * cpphash.c (parse_define): Use it.
1963         * cpplib.c (get_define_node, do_undef, parse_include,
1964         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
1965         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
1966         parse_ifdef, validate_else): Use it.
1967         (cpp_push_buffer): Tweak error message; abort if anyone tries
1968         to push a buffer while macro expansions are stacked.
1969
1970 2000-07-11  Donn Terry  <donnte@microsoft.com>
1971
1972         * cpplex.c (free_macro_args, save_token): Cast arg of free
1973         and/or xrealloc to PTR.
1974         (_cpp_init_input_buffer): Clear all fields of the base context.
1975
1976 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
1977
1978         * gensupport.c (process_rtx): Make rtl checking stop
1979         complaining about the define_insn while it is being
1980         converted from a define_insn_and_split.
1981
1982 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
1983
1984         * config/mips/mips.c (simple_memory_operand): Access the
1985         INTVAL of the address, not it's containing MEM.
1986
1987 2000-07-11  Bruce Korb  <bkorb@gnu.org>
1988
1989         * fixinc/fixtests.c(double_slash): obsolete
1990         (else_endif_label): likewise
1991         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
1992         (libc1_ifdefd_memx): correct initial comment
1993         and omit the #if/#endif pair from the memxxx declarations
1994         * fixinc/fixincl.x: regen
1995
1996 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1997
1998         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
1999
2000 2000-07-11  Neil Booth  <NeilB@earthling.net>
2001
2002         * cpp.texi: Update.
2003
2004 2000-07-11  Neil Booth  <NeilB@earthling.net>
2005
2006         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
2007         (handle_option): Set digraphs according to standard.
2008         Merge OPT_lang_c89 handler with OPT_std_c89.
2009
2010         * cpplex.c: (lex_line, can_paste): Honour digraphs in
2011         accordance with the digraphs flag.
2012
2013         * cpplib.h: (struct cpp_options): New option digraphs.
2014
2015 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
2016             Bruce Korb  <bkorb@gnu.org>
2017
2018         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
2019         * fixinc/fixincl.x: Regenerate.
2020         * fixinc/tests/base/testing.h: Add testcase.
2021
2022 2000-07-10  Richard Henderson  <rth@cygnus.com>
2023
2024         * config/ia64/ia64.c (got_symbolic_operand): New.
2025         (symbolic_operand, move_operand): Revert 0701 change.
2026         * config/ia64/ia64.h (PREDICATE_CODES): Update.
2027         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
2028         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
2029         split the offset into a 14-bit low part instead of a 13-bit low part.
2030         (load_fptr): Mark the mem as unchanging.
2031         (load_symptr): Use got_symbolic_operand.
2032
2033 2000-07-10  Nick Clifton  <nickc@cygnus.com>
2034
2035         * libgcc2.c (next_stack_level): Cast result of computation to
2036         (void **) so that the assignment does not generate a warning.
2037
2038 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
2039
2040         * flags.h : Add new variable flag_single_precision_constant.
2041         * toplev.c (display_help) : Add -fsingle-precision-constant option.
2042         (flag_single_precision_constant): New.
2043         * c-lex.c (yylex): Convert floating point constant to single
2044         precision constant.
2045         * invoke.texi : Add documentation for this new option.
2046
2047 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
2048
2049         * diagnostic.c (output_octal): Second parameter is unsigned.
2050         (output_long_octal): Likewise.
2051         (output_hexadecimal): Likewise.
2052         (output_long_hexadecimal): Likewise.
2053         (output_format): Adjust arguments extraction. Tweak.
2054         (output_verbatim, verbatim): End variable argument list.
2055         (report_diagnostic): Improve documentation.
2056
2057 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
2058
2059         * c-common.h (build_stmt): Declare.
2060         (build_continue_stmt): Likewise.
2061         (build_break_stmt): Likewise.
2062         (build_return_stmt): Likewise.
2063
2064         * c-decl.c (do_case): Rewrite to do what previously done in
2065         c-parse.in.
2066
2067         * c-semantics.c (build_stmt): Define.
2068         (build_return_stmt): Likewise.
2069         (build_break_stmt): Likewise.
2070         (build_continue_stmt): Likewise.
2071         (build_case_label): Likewise.
2072
2073         * c-parse.in (BREAK): Change to build tree, then generate RTL.
2074         (CONTINUE): Likewise.
2075         (RETURN): Likewise.
2076         (CASE): Likewise.
2077         (DEFAULT): Likewise.
2078
2079         * c-parse.y: Regenerate.
2080         * c-pasre.c: Likewise.
2081
2082 2000-07-09  Jason Merrill  <jason@redhat.com>
2083
2084         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
2085
2086         * tree.h (STRIP_NOPS): Check for error_mark_node.
2087         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
2088         (dwarf2out_*): Remove duplicate declarations.
2089
2090         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
2091         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
2092
2093 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
2094
2095         * diagnostic.c (wrap_text): New function.
2096         (maybe_wrap_text): Likewise.
2097         (output_add_string): Use it.
2098         (output_format): Likewise.
2099         (count_error): Use verbatim instead of notice.
2100         (report_error_function): Likewise. Don't use plain fprintf.
2101         (finish_diagnostic): New function.
2102         (output_do_verbatim): Tweak.  Commonalize functionalities in
2103         output_verbatim and verbatim.
2104         (output_verbatim): Adjust.
2105         (verbatim): Likewise.
2106         (report_diagnostic): Define.
2107
2108         * diagnostic.h (report_diagnostic): Prototype.
2109
2110 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
2111
2112         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
2113
2114 2000-07-09  Neil Booth  <NeilB@earthling.net>
2115
2116         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
2117         IShspace, ISspace: Update.
2118
2119         * cppinit.c: ISTABLE: Update.
2120         V: New.
2121
2122         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
2123         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
2124         (skip_block_comment, skip_line_comment, parse_string,
2125         lex_line): Use is_vspace rather than IS_NEWLINE.
2126         (skip_whitespace, lex_line): Clean up to use is_nvspace.
2127         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
2128         gets a BOL flag.
2129         (lex_next): Unconditionally stop if within a directive.
2130         Treat directives within macro invocations as directives
2131         (after parse_args emits error), not as the argument.
2132
2133 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
2134
2135         * diagnostic.c (diagnostic_args): New macro.
2136         (diagnostic_msg): Likewise.
2137         (output_formatted_integer): Likewise.
2138         (output_state): New data type.
2139         (digit_buffer): Make global.
2140         (output_add_integer): Rename to output_decimal. Squeeze
2141         digit_buffer.
2142         (output_long_decimal, output_unsigned_decimal,
2143         output_long_unsigned_decimal, output_octal, output_long_octal,
2144         output_hexadecimal, output_long_hexadecimal): New functions.
2145         (output_append_r): New function.
2146         (output_append): Tweak.
2147         (output_flush_on): Rename to output_to_stream.
2148         (output_format): Change prototype.  Improve documentation. Handle
2149         more format specifiers.
2150         (build_location_prefix): Rename to context_as_prefix.
2151         (output_notice): Rename to output_do_printf.
2152         (output_printf): Tweak.
2153         (line_wrapper_printf): Likewise.
2154         (vline_wrapper_message_with_location): Adjust call to renamed
2155         functions.
2156         (v_message_with_decl): Likewise.
2157         (default_print_error_function): Likewise.
2158         (save_output_state): New function.
2159         (restore_output_state): Likewise.
2160         (output_do_verbatim): Likewise.
2161         (output_verbatim): Define.
2162         (verbatim): Likewise.
2163
2164         * diagnostic.h (printer_fn): Change return type from void to int.
2165         Improve documentation.
2166         (output_add_integer): Rename to output_decimal.
2167         (output_flush_on, output_format): Don't export.
2168         (output_verbatim, verbatim): Declare.
2169
2170 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
2171
2172         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
2173         Check whether c divides op1 exactly if operation is not
2174         multiplication.
2175
2176 2000-07-08  Richard Henderson  <rth@cygnus.com>
2177
2178         * final.c (final): Do not abort when reg-stack introduces
2179         a new insn.
2180
2181 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
2182
2183         * cpplib.h (struct cpp_name): Now struct cpp_string.
2184         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
2185         CPP_HEADER_NAME): Change to type S.
2186         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
2187         field, a cpp_hashnode *.  All references to val.name updated
2188         to use val.str or val.node as appropriate.
2189         (struct cpp_reader): Add spec_nodes field.
2190         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
2191
2192         * cpphash.h (struct spec_nodes): New.
2193         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
2194         val.str.  All references to 'spelling > SPELL_NONE' updated to
2195         match.
2196
2197         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
2198         pfile->buffer->inc are not NULL before dereferencing them.
2199
2200         * cpplex.c (parse_name): Take a pointer to the current token,
2201         plus current position and limit as args; return the new
2202         position; don't copy the text of a name into the string
2203         buffer, instead call cpp_lookup and store the node pointer.
2204         If extending a token, copy out the text of the old into a
2205         scratch buffer, append the new, look that up and store the new
2206         node pointer.  Inline.
2207         (maybe_paste_with_next): If the result of paste is a NAME,
2208         then look up the pasted text and store its node pointer.
2209         (lex_line): Adjust for new parse_name interface.
2210         Check for L"str", L'str' using spec_nodes->n_L.
2211         (spell_token): SPELL_IDENT tokens have their spelling in
2212         val.node->name.  Handle SPELL_STRING tokens that don't have
2213         string delimiters.
2214         (_cpp_expand_name_space,
2215         (can_paste): Check for L ## "str" using spec_nodes->n_L.
2216         (cpp_get_token, special_symbol): No need to call cpp_lookup.
2217         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
2218         return 1=equal 0=not, not a tristate.
2219
2220         * cpphash.c (var_args_str): Delete.
2221         (find_param): Compare node fields directly.
2222         (is__va_args__): Use CPP_PEDANTIC.  Just compare
2223         token->val.node with spec_nodes->n__VA_ARGS__.
2224         (dump_funlike_macro): Don't use var_args_str.
2225
2226         * cpplib.c (_cpp_check_directive): Just walk through
2227         spec_nodes->dirs comparing pointers.
2228         (get_define_node, do_pragma_poison, detect_if_not_defined,
2229         parse_ifdef): The identifier has already been looked up.
2230         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
2231         node.
2232         (do_if): Only call detect_if_not_defined at beginning of file.
2233         (_cpp_parse_assertion): Only copy string pointers for
2234         SPELL_STRING tokens.
2235         (pragma_dispatch): Take a node pointer and examine its name
2236         field.
2237         (_cpp_init_stacks): Also initialize the spec_nodes structure.
2238
2239         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
2240         _cpp_init_macros.
2241         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
2242         reverse order from the corresponding _cpp_init_* routines.
2243
2244         * cppexp.c (parse_number, parse_charconst, parse_defined,
2245         lex): Check val.node->type instead of calling cpp_defined.
2246         Use spec_nodes entries where appropriate.
2247
2248         * fix-header.c, scan-decls.c: Update for interface changes.
2249
2250 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
2251
2252         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
2253         emitting aux_truncdfsf2.
2254
2255 2000-07-03  Donn Terry  (donnte@microsoft.com)
2256
2257         * cppinit.c (print_help): split overlong line into ISO C89
2258         maximum chunks.
2259
2260 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
2261
2262         * cppexp.c: Update all code for new lexer interface.
2263         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
2264         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
2265         * cpplex.c (token_names): Trim leading CPP_ from names; make
2266         the strings unsigned.
2267         (_cpp_spell_operator): New.
2268         (is_macro_disabled): Disable all macros if rescanning
2269         preprocessed text.
2270         (_cpp_get_directive_token): Remove.
2271
2272         * cppinit.c: Don't set no_macro_expand.
2273         * cpplib.c (read_line_number, do_line): Check only for EOF,
2274         not VSPACE.
2275         * cpphash.h: Update prototypes.
2276         * cpplib.h (CPP_VSPACE): Remove.
2277         (struct cpp_reader): Remove no_macro_expand.
2278
2279 2000-07-08  Neil Booth  <NeilB@earthling.net>
2280
2281         * cpphash.c (is__va_args__): New function.
2282         (count_params): Fix line reported in error messages.  Use
2283         is__va_args__.  Don't return ')' on error.  Flag GNU style
2284         rest args macro definitions.
2285         (parse_define): Check macro name is not __VA_ARGS__.
2286         (save_expansion): Check identifier in non-varargs-macro is
2287         not __VA_ARGS__.  Don't flag GNU_VARARGS.
2288         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
2289         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
2290          than per-token GNU_VARARGS.
2291         * cpplib.h (GNU_VARARGS): Remove.
2292         (GNU_REST_ARGS): New.
2293
2294 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2295
2296         * i386.md (call_pop, call, call_value_pop): Do not set
2297         current_function_uses_pic_offset_table for calls to static
2298         functions or indirect calls.
2299
2300 2000-07-07  Jim Wilson  <wilson@cygnus.com>
2301
2302         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
2303         is_predicate_reg, then take max write_count of register pair.
2304
2305 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2306
2307         * tradcpp.c (main): Rename label `include' to `add_include' to
2308         avoid conflicts with variable `include' in traditional C.
2309
2310 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
2311
2312         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
2313
2314 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
2315
2316         * sibcall.c (uses_addressof): Add INMEM argument, check for
2317         current_function_internal_arg_pointer outside of MEM rtxs in addition
2318         to ADDRESSOFs.
2319         (sequence_uses_addressof): Update caller.
2320
2321 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
2322
2323         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
2324         and friends.
2325
2326 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2327
2328         * system.h (UNION_INIT_ZERO): New macro for initializing union
2329         members in structs.
2330
2331         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
2332
2333 2000-07-07  Neil Booth  <NeilB@earthling.net>
2334
2335         * cpp.texi: Update.
2336
2337 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
2338
2339         * final.c (final): Detect out of bounds array access to
2340         the insn_lengths array.
2341
2342 2000-07-07  Kazu Hirata  <kazu@hxi.com>
2343
2344         * fold-const.c (fold): Fix a comment typo.
2345
2346 2000-07-07  Neil Booth  <NeilB@earthling.net>
2347
2348         * cpp.texi: Update to new lexer.
2349
2350 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
2351
2352         * tradcpp.c: New file.
2353         * tradcif.y: New file.
2354         * tradcif.c: New generated file.
2355
2356         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
2357         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
2358         dependencies of C.  Install tradcpp from install-common, in
2359         $(libsubdir).
2360
2361 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
2362
2363         * cppinit.c: Include cppdefault.h.  Refer to
2364         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
2365         to GCC_INCLUDE_DIR and its length.
2366         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
2367         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
2368         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
2369         cppdefault.h.
2370         (include_defaults_array): Move to cppdefault.c.
2371
2372         * cppdefault.h: New file.
2373         * cppdefault.c: New file.
2374
2375         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
2376         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
2377         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
2378         this file.
2379
2380 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2381
2382         * reload.c (push_reload): When seeing if can reuse a register,
2383         check extra registers against widest of INMODE and OUTMODE.
2384
2385 2000-07-06  Neil Booth  <NeilB@earthling.net>
2386
2387         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
2388         based on full length of predicate.
2389
2390 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
2391
2392         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
2393         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
2394
2395 2000-07-05  Kazu Hirata  <kazu@hxi.com>
2396
2397         * h8300-proto.h: Fix formatting.
2398         * h8300.c: Likewise.
2399         * h8300.h: Likewise.
2400
2401 2000-07-05  Jim Wilson  <wilson@cygnus.com>
2402
2403         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
2404         CCmode.
2405
2406 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
2407
2408         * invoke.texi: Fix minor typos
2409         * md.texi: Fix minor typos
2410
2411 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
2412
2413         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
2414
2415 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
2416
2417         * cpplex.c: Don't include sys/mman.h.
2418         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
2419
2420         * cpplib.c: Include sys/mman.h and obstack.h.
2421         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
2422         obstack.
2423         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
2424         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
2425         bother freeing if stack entries (they will be freed with their buffer).
2426         (do_endif): Free if stack entries from the buffer obstack.
2427         (push_conditional): Allocate if stack entries from the buffer obstack.
2428
2429         (find_answer): Rename to _cpp_find_answer.
2430         (do_assert, do_unassert): Update.
2431
2432         * cpphash.h: Update prototypes.
2433         (xobnew): New convenience macro.
2434         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
2435         Update comments.
2436         (struct cpp_hashnode): Remove disabled field.
2437
2438         * cppinit.c: Don't include hashtab.h or splay-tree.h.
2439         (report_missing_guard): Moved to cppfiles.c.
2440         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
2441         cpp_init_includes.
2442         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
2443         cpp_cleanup_includes.  Don't destroy hashtab or
2444         all_include_files here.
2445         (cpp_finish): Use _cpp_report_missing_guards.
2446
2447         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
2448         (_cpp_init_include_table): Rename _cpp_init_includes.
2449         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
2450
2451         * cppexp.c (parse_assertion): Update for new name of
2452         find_answer.
2453
2454         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
2455
2456 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
2457
2458         * cpplib.c (do_ident): s/VSPACE/EOF/
2459
2460 2000-07-05  Neil Booth  <NeilB@earthling.net>
2461
2462         * cpplex.c: Fix trigraph replacement within strings.
2463
2464 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2465
2466         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
2467
2468         * xcoffout.c (assign_type_number): Constify.
2469         (xcoffout_source_file): Add static prototype.  Don't needlessly
2470         cast away const-ness.
2471
2472 2000-07-04  Jason Merrill  <jason@redhat.com>
2473
2474         * frame.h (frame_state): Move base_offset to end.
2475
2476 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
2477
2478         * calls.c (emit_library_call_value_1): Revert previous change.
2479
2480 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
2481
2482         * fix-header.c (struct partial_proto): Remove unnecessary fields.
2483         (recognized_extern, recognized_function, read_scan_file):
2484         Update for new scheme.
2485         (check_protection): It's still a multiple include guard even
2486         if it doesn't always trigger.
2487         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
2488         new scheme.
2489         * scan.h: Declare struct cpp_token.  Update prototypes.
2490
2491 2000-07-03  Neil Booth  <neilb@earthling.net>
2492             Zack Weinberg  <zack@wolery.cumb.org>
2493
2494         Complete overhaul of the lexer and macro expander.
2495
2496         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
2497         arg, arglist, argdata, reflist, collect_objlike_expansion,
2498         collect_funlike_expansion, collect_params,
2499         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
2500         unsafe_chars, macarg, compare_defs, special_symbol,
2501         scan_arguments, stringify, funlike_macroexpand,
2502         _cpp_quote_string, monthnames): Delete.
2503         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
2504         _cpp_create_definition, _cpp_dump_definition,
2505         dump_hash_helper): Adjust.
2506         (find_param, count_params, parse_define, var_args_str,
2507         check_macro_redefinition, save_expansion): New.
2508
2509         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
2510         parse_string, output_line_command, trigraph_replace,
2511         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
2512         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
2513         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
2514         _cpp_skip_rest_of_line): Modify.
2515
2516         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
2517         find_position, null_warning, bump_column, expand_name_space,
2518         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
2519         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
2520         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
2521         _cpp_prescan): Delete.
2522
2523         (dump_param_spelling, process_directive, lex_next,
2524         is_macro_disabled, stringify_arg, expand_context_stack,
2525         output_token, make_string_token, alloc_number_token,
2526         special_symbol, duplicate_token, maybe_paste_with_next,
2527         can_paste, prevent_macro_expansion, restore_macro_expansion,
2528         get_temp_token, release_temp_tokens, quote_string,
2529         token_names, token_spellings, _cpp_expand_name_space,
2530         _cpp_glue_header_name, _cpp_reserve_name_space,
2531         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
2532         placemarker_token, eof_token, cpp_context, macro_args,
2533         get_raw_token, parse_arg, parse_args, save_token,
2534         push_arg_context, push_macro_context, pop_context,
2535         do_pop_context, free_macro_args, _cpp_get_line,
2536         _cpp_run_directive): New.
2537
2538         * cpplib.c (validate_else, parse_include, push_conditional,
2539         pass_thru_directive, read_line_number, parse_ifdef,
2540         detect_if_not_defined, _cpp_check_directive, do_define,
2541         do_undef, do_include, do_import, do_include_next, do_error,
2542         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
2543         top_pragmas, do_pragma_gcc, do_pragma_implementation,
2544         do_pragma_poison, do_pragma_system_header,
2545         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
2546         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
2547         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
2548         cpp_defined): Update for new scheme.
2549         (strtoul_for_line, get_define_node, dump_macro_name,
2550         _cpp_check_linemarker, _cpp_parse_assertion): New.
2551         (_cpp_handle_directive, do_pragma_default): Delete.
2552
2553         * cpphash.h (struct predicate): Now struct answer.
2554         (enum spell_type, struct token_spelling, struct directive,
2555         directive_handler): New.
2556         Update prototypes.  Remove unused macros.
2557         * cpplib.h: Update prototypes.  Remove unused macros,
2558         structure definitions, and fields.
2559
2560         * cpperror.c (print_containing_files, v_message): Adjust.
2561         * cppexp.c (parse_assertion, lex, parse_escape,
2562         _cpp_parse_expr): Adjust.
2563         * cppfiles.c (open_include_file, _cpp_execute_include,
2564         _cpp_compare_file_date, cpp_read_file, read_include_file):
2565         Adjust.
2566         * cppinit.c (dump_special_to_buffer): Delete.
2567         (append_include_chain, merge_include_chains, cpp_reader_init,
2568         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
2569         cpp_finish, handle_option, print_help): Adjust.
2570         * cppmain.c (main): Adjust.
2571
2572 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
2573
2574         * cppspec.c (lang_specific_driver): Use double quotes in error
2575         message.
2576
2577 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
2578
2579         * calls.c (emit_library_call_value_1): Use valreg instead
2580         of hard_libcall_value.
2581
2582 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
2583
2584         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
2585         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
2586         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
2587         (movhi): Likewise.
2588         (movqi): Likewise.
2589         (movdf): Likewise.
2590         (movsf): Likewise.
2591         (movdi): Likewise.
2592         (movti): Likewise.
2593
2594         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
2595         mode instead of wider_mode is being used.
2596
2597 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
2598
2599         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
2600         of 'r'. Use q_regs_operand.
2601         (andsi_1+2): Use q_regs_operand.
2602
2603 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
2604
2605         * builtins.c (get_memory_rtx): Always put into alias set 0.
2606
2607 2000-07-03  Nick Clifton  <nickc@cygnus.com>
2608
2609         * config/arm/arm.md: Fix post increment and pre increment
2610         peepholes so that they do not generate UNPREDICATBLE opcodes.
2611         (ie ones where the increment clobbers the source/destination).
2612
2613 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
2614
2615         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
2616         change too big for -mtiny-stack" a warning, if larger than 63.
2617         (out_set_stack_ptr): Change the logic so -mno-interrupts is
2618         always safe to use on possible future devices.
2619         (function_prologue): Write SPH before SPL, for consistency.
2620         If interrupt_func_p true, we know we have enabled interrupts.
2621         (avr_num_arg_regs): New function.  Round up to even number of
2622         bytes if no -mpack-args or if calling a libgcc function.
2623         (function_arg, function_arg_advance): Use it.
2624         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
2625         Output "movw" if available.
2626         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
2627         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
2628         (asm_output_section_name): Add blanks for consistent output.
2629         (encode_section_info): Set TREE_READONLY for progmem data to
2630         avoid gas warnings about changed section attributes.
2631         (avr_hard_regno_mode_ok): Force non-QImode data to start in
2632         even numbered registers on devices with "movw".
2633         * config/avr/avr.h (MASK_*): Define bits for target_flags.
2634         (TARGET_SWITCHES): Mark help strings for translation.
2635         Add new -mpack-args and -menhanced switches.
2636         (TARGET_OPTIONS): Mark help strings for translation.
2637         (progmem_section): Add section attributes.
2638         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
2639         Output "movw" if available.
2640         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
2641         New patterns.
2642         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
2643         call convention (arguments aligned on even registers).
2644         (_cleanup, _exit): Make weak symbols libc can override.
2645
2646 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2647
2648         * fp-bit.h: New file.
2649
2650         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
2651         Comment #endif statements.
2652         (__thenan_sf, __thenan_df): Add missing braces around initializer.
2653
2654 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
2655
2656         * gcse.c (compute_pre_data): Compute ae_kill using other local
2657         properties instead of calling compute_ae_kill.
2658
2659         * alias.c (init_alias_analysis): Do not call
2660         prologue_epilogue_contains until after reload has completed.
2661
2662 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
2663
2664         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
2665         (genrtl_finish_compound_stmt): Likewise.
2666         (genrtl_compound_stmt): Change to return void.
2667
2668         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
2669         move code from here to ...
2670         (genrtl_compound_stmt): ... here.
2671         (genrtl_finish_compound_stmt): Remove.
2672         (expand_stmt): Add comment.
2673
2674 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
2675
2676         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
2677         and VOID_TYPE_P.
2678
2679 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
2680
2681         * cpplib.h (struct cpp_reader): New field include_depth.
2682         (struct cpp_printer): Rename last_bsd to last_id.
2683         * cppfiles.c (read_include_file): Bump include_depth.
2684         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
2685         (output_line_command): Output correct #line if a header
2686         is including itself and is not protected against multiple inclusion.
2687         Use include_depth instead of buffer_stack_depth, last_id instead of
2688         last_bsd.
2689         * cppinit.c (cpp_start_read): Initialize last_id instead of
2690         last_bsd.
2691
2692 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
2693
2694         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
2695         (c-semantics.o): New target.
2696
2697         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
2698         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
2699         (genrtl_clear_out_block): Likewise.
2700         (genrtl_goto_stmt): Likewise.
2701         (genrtl_expr_stmt): Likewise.
2702         (genrtl_decl_stmt): Likewise.
2703         (genrtl_if_stmt): Likewise.
2704         (genrtl_while_stmt): Likewise.
2705         (genrtl_do_stmt): Likewise.
2706         (genrtl_return_stmt): Likewise.
2707         (genrtl_for_stmt): Likewise.
2708         (genrtl_break_stmt): Likewise.
2709         (genrtl_continue_stmt): Likewise.
2710         (genrtl_scope_stmt): Likewise.
2711         (genrtl_switch_stmt): Likewise.
2712         (genrtl_case_label): Likewise.
2713         (genrtl_begin_compound_stmt): Likewise.
2714         (gerntl_finish_compound_stmt): Likewise.
2715         (genrtl_compound_stmt): Likewise.
2716         (genrtl_asm_stmt): Likewise.
2717         (genrtl_decl_cleanup): Likewise.
2718         (DECL_ANON_UNION_ELEMS): Likewise.
2719         (emit_local_var): Likewise.
2720         (make_rtl_for_local_static): Likewise.
2721         (expand_cond): Likewise.
2722         (expand_stmt): Likewise.
2723         (c_expand_return): Likewise.
2724         (c_expand_start_case): Likewise.
2725         (do_case): Likewise.
2726         (COMPOUND_STMT_NO_SCOPE): Likewise.
2727         (c_expand_asm_operands): Likewise.
2728         (NEW_FOR_SCOPE_P): New macro.
2729         (expand_expr_stmt_fn): New type.
2730
2731         (set_current_function_name_declared): Likewise.
2732         (current_function_name_declared): Likewise.
2733         (lang_expand_stmt): Likewise.
2734         (stmts_are_full_exprs_p): Likewise.
2735         (anon_aggr_type_p): Likewise.
2736         (lang_expand_expr_stmt): Likewise.
2737         (build_case_label): Likewise.
2738
2739         * c-decl.c (lang_expand_expr_stmt): Initialize.
2740         (stmts_are_full_exprs_p): Define.
2741         (current_function_name_declared): Likewise.
2742         (do_case): Likewise.
2743         (lang_expand_stmt): Likewise.
2744         (set_current_function_name_declared): Likewise.
2745         (anon_aggr_type_p): Likewise.
2746
2747         * c-semantics.c: New file.
2748         (expand_cond): Moved from cp/semantics.c.
2749         (genrtl_do_pushlevel): Likewise.
2750         (genrtl_clear_out_block): Likewise.
2751         (genrtl_goto_stmt): Likewise.
2752         (genrtl_expr_stmt): Likewise.
2753         (genrtl_decl_stmt): Likewise.
2754         (genrtl_if_stmt): Likewise.
2755         (genrtl_while_stmt): Likewise.
2756         (genrtl_do_stmt): Likewise.
2757         (genrtl_return_stmt): Likewise.
2758         (genrtl_for_stmt): Likewise.
2759         (genrtl_break_stmt): Likewise.
2760         (genrtl_continue_stmt): Likewise.
2761         (genrtl_scope_stmt): Likewise.
2762         (genrtl_switch_stmt): Likewise.
2763         (genrtl_case_label): Likewise.
2764         (genrtl_begin_compound_stmt): Likewise.
2765         (genrtl_finish_compound_stmt): Likewise.
2766         (genrtl_compound_stmt): Likewise.
2767         (genrtl_asm_stmt): Likewise.
2768         (genrtl_decl_cleanup): Likewise.
2769         (make_rtl_for_local_static): Moved from cp/decl.c.
2770         (emit_local_var): Likewise.
2771         (expand_stmt): Define.
2772
2773         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
2774         (c_expand_return): Likewise.
2775         (c_expand_start_case): Likewise.
2776
2777 2000-07-01  Richard Henderson  <rth@cygnus.com>
2778
2779         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
2780         with the low 13 bits set.
2781         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
2782         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
2783         of the low 13 bits into a CONST plus an adddi3.
2784         (load_symptr): Set RTX_UNCHANGING_P.
2785
2786 See ChangeLog.3 for earlier changes.
2787