OSDN Git Service

* aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
2
3         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
4         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
5         a plain file.
6         * configure.in: Call AC_FUNC_MMAP_FILE.
7         * configure: Regenerate.
8         * config.in: Regenerate.
9
10         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
11         * fixinc/fixincl.c: Likewise.
12
13 2000-04-17  Richard Henderson  <rth@cygnus.com>
14
15         * builtins.c (expand_builtin_expect): New.
16         (expand_builtin): Call it.
17         * builtins.def (BUILT_IN_EXPECT): New.
18         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
19         * extend.texi: Document it.
20
21         * predict.c (expected_value_to_br_prob): New.
22         (find_expected_value): New.
23         * basic-block.h (expected_value_to_br_prob): Declare.
24         * toplev.c (rest_of_compilation): Invoke it.
25
26         * rtl.h (NOTE_EXPECTED_VALUE): New.
27         (NOTE_INSN_EXPECTED_VALUE): New.
28         * rtl.c (note_insn_name): Update.
29         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
30         cases; handle NOTE_INSN_EXPECTED_VALUE.
31
32 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
33
34         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
35         leaf sibcall delay slot if flag_pic.
36         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
37
38 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
39
40         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
41
42         * fixproto: If fix-header fails, exit with an error.
43
44 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
45
46         * cse.c (struct check_depdendence_data): New.
47         (check_dependence): New function.
48         (invalidate): Use check_depdenence.
49
50 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
51
52         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
53         UNITS_PER_WORD is unsigned.
54
55         * tree.h (struct tree_common): Remove misleading comment.
56
57 2000-04-16  Dave Pitts  <dpitts@cozx.com>
58
59         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
60         message in quotes. Otherwise, IBM's make program treats the '#' as the
61         start of a comment and ignores the remainder of the line.
62
63         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
64         upper case.
65         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
66         * cexp.y (initialize_random_junk): Likewise.
67         * cppfiles.c (find_include_file): Cast alloca return value.
68         * cppinit.c (initialize_standard_includes): Likewise.
69         * cpplib.c (cpp_define, cpp_undef): Likewise.
70         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
71         * final.c (output_asm_insn): Allow for holes in EBCDIC.
72         * fold-const.c (CHARMASK): New.
73         (real_hex_to_f): Use it.
74         * real.c (CHARMASK): New.
75         (etoasc, asctoeg): Use it.
76         (asctoeg): EBCDIC lower case characters preceed upper case.
77
78         * i370.c (mvs_add_label): Change spacing for coding conventions.
79         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
80         outputing case vectors.
81         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
82         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
83         since vector in in the data CSECT.
84         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
85         * i370.md (Many patterns): Put the length in the XL directives.
86         (movdi): Put back STM and MVC in definition.
87         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
88         pattern using the TCA.
89         * oe.h (CPP_SPEC): Added to allow trigraphs.
90         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
91         not support the "long long" type.
92
93 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
94
95         * config/mips/mips-protos.h (mips_legitimate_address_p): New
96         function.
97         (mips_reg_mode_ok_for_base_p): Likewise.
98         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
99         (REG_OK_FOR_INDEX_P): Define unconditionally.
100         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
101         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
102         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
103         that GET_MODE_SIZE is unsigned.
104         (mips_reg_mode_ok_for_base_p): Define.
105         (mips_legitimate_address_p): Likewise.  Adjust now
106         that GET_MODE_SIZE is unsigned.
107         (block_move_loop): Make the number of bytes unsigned.
108         (expand_block_move): Likewise.
109         (function_arg): Make the loop counter unsigned to match the
110         boundary condition.
111
112 2000-04-16  Richard Henderson  <rth@cygnus.com>
113
114         * rtl.h (enum insn_note): New enumeration.  Subsume
115         NOTE_INSN_DELETED and friends.
116         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
117         * rtl.c (note_insn_name): Tweak string order.
118
119 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
120
121         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
122         to offset * 2.
123
124         * cpplex.c (output_line_command): Remove debugging prints.
125         (cpp_output_tokens): Don't write out a zero-length buffer or
126         try to see if it has a newline in it.
127         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
128         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
129         the end of the loop.  Use memmove.  Don't read past the end of
130         the buffer.  Remove trailing newlines from error messages.
131
132 2004-04-16  Neil Booth  <NeilB@earthling.net>
133
134         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
135         * cpplib.c: Add new syntax flags to directive table, and
136         supporting macros.
137
138 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
139
140         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
141         using ret $N.
142
143 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
144
145         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
146         * haifa-sched.c: Update -fsched-verbose comments to use "=".
147
148 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
149
150         * Makefile.in (ggc-page.o): Now includes toplev.h.
151         * ggc-page.c (toplev.h): Now included.
152         (gc_time): Remove declaration.
153         (ggc_collect): TIME now long.
154         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
155         others static.
156         * toplev.h (gc_time, parse_time, gc_time): New declarations.
157
158         * toplev.c: Make *_time variable long to reduce chance of overflow.
159         (TIMEVAR): Likewise for `otime'.
160         (print_time): Arg is now long; compute percentage in FP and round.
161         * toplev.h (print_time): Arg is long.
162
163         * tree.c: Minor whitespace changes.
164
165         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
166         * configure: Rebuilt.
167         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
168         (__fixunsxfDI): Renamed from __fixunsxfdi.
169         (__fixunsdfDI): Renamed from __fixunsdfdi.
170         (__fixunssfDI): Renamed from __fixunssfdi.
171         (__floatdisf): Use proper type in REP_BIT macro.
172         (__fixunsxfSI): Renamed from __fixunsxfsi.
173         (__fixunsdfSI): Renamed from __fixunsdfsi.
174         (__fixunssfSI): Renamed from __fixunssfsi.
175         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
176         Change location of macros and upper-case some names as above.
177         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
178         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
179
180         * varasm.c (assemble_variable): Add cast to remove warning.
181         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
182
183         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
184         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
185         region number to -1.
186
187 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
188
189         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
190         call unshare_all_rtl.
191
192         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
193
194 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
195
196         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
197         Use .s1 not .s0 for all FP instructions.
198
199 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
200
201         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
202         interfaces.
203         (safe_fwrite, output_line_command): New static functions.
204         (cpp_expand_to_buffer): Now private to cpplib.
205         (cpp_scan_buffer): Take a printer.
206
207         * cpphash.h: Update prototypes.
208         * cpplib.h: Update prototypes.
209         (cpp_printer): New.
210         (cpp_buffer): Remove last_nominal_fname.
211         (cpp_reader): Remove lineno.
212
213         * cppmain.c: Use a cpp_printer.
214         * fix-header.c: No need to inhibit line commands.  Call
215         cpp_start_read with no printer.
216
217         * cpperror.c (cpp_notice_from_errno): Provide default name.
218         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
219         (find_include_file, cpp_read_file): Use make_IHASH.
220         (file_cleanup): Set control_macro and clear
221         input_stack_listing_current here.
222         (_cpp_execute_include): Don't output entering-file marker.
223         * cpphash.c (special_symbol): Look for the line number in the
224         buffer, not the reader.
225         (_cpp_macroexpand): No need to disable line commands.
226         (_cpp_dump_definition): No need to generate line commands.
227         (dump_hash_helper): Remove excess newline from output.
228         * cppinit.c (dump_special_to_buffer): No need to generate line
229         commands.
230         (cpp_printer_init): New.
231         (cpp_start_read): Take a printer, and start it up if it's not
232         NULL.  No need to generate line commands.
233         (cpp_finish): Expect no buffers stacked at all.  Take a
234         printer argument, and flush the output buffer if it's not
235         NULL.
236         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
237         Don't put two hashes at the beginning of an assertion.
238         (cpp_get_token): Don't increment pfile->lineno or emit line
239         commands here.  Return EOF if there's no buffer when we get
240         EOF.
241         * cpplib.c (do_define, skip_if_group): 
242         No need to disable line commands.
243         (_cpp_output_line_command): Delete function.
244         (do_line): Don't emit line commands here, but set things up so
245         they will be emitted if necessary.  Use _cpp_fake_ihash to
246         make unique nominal_fnames if necessary.
247         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
248         with 0 for column, not -1.
249         (_cpp_handle_eof): Don't set the control macro here.  Don't
250         clear input_stack_listing_current here.  Don't emit line
251         commands.
252
253 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
254
255         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
256         always, use the default SVR4 start address.
257
258         * config/rs6000/linux.h (LINK_SPEC): Don't define.
259         (LINK_SHLIB_SPEC): Define.
260         (LINK_START_DEFAULT_SPEC): Define.
261         (LINK_OS_DEFAULT_SPEC): Define.
262
263         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
264
265         * config/rs6000/eabi.asm (__eabi): Call __init rather than 
266         __do_global_ctors to handle constructors.
267         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
268         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
269         (STARTFILE_MVME_SPEC): Likewise.
270         (STARTFILE_SIM_SPEC): Likewise.
271         (ENDFILE_ADS_SPEC): Use crtend.
272         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
273         (ENDFILE_MVME_SPEC): Likewise.
274         (ENDFILE_SIM_SPEC): Likewise.
275         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
276         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
277         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
278         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
279         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
280         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
281         (CRTSTUFF_T_CFLAGS_S): Define.
282         * config/rs6000/eabi-ctors.c: Delete.
283         
284         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
285         boundary.
286         (__fini): Likewise.
287         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
288         boundary.
289         (__fini): Likewise.
290
291 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
292
293         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
294         plus mask size is smaller or equal to the mode size.
295
296 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
297
298         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
299         not yet set.
300
301         * expr.c (reload.h): Now included.
302         (emit_block_move): Set volatile_ok when checking for movstr.
303         (emit_move_1): Check for replacements in addresses in multi-word case.
304         * Makefile.in (expr.o): Now includes reload.h.
305
306         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
307         Never have a LIBCALL end a basic block.
308         (find_basic_blocks_1): Likewise.
309         Reorganize CALL_INSN cases.
310
311         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
312
313 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
314
315         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
316         completers from mov.ret instruction.
317
318 2000-04-14  Richard Henderson  <rth@cygnus.com>
319
320         * fold-const.c (extract_muldiv): Don't distribute and widen
321         multiply across plus for non-sizetype unsigned types.
322
323 2000-04-14  Richard Henderson  <rth@cygnus.com>
324
325         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
326         If the original source is dead in the incr insn, it's dead now.
327
328 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
329
330         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
331         see if DECL_BIT_FIELD needs to still be set.
332
333         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
334
335         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
336         print_int_cst_octal with something that's not an INTEGER_CST.
337
338         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
339         and not a SUBREG to a FLOAT rtl.
340
341 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
342
343         * emit-rtl.c (try_split): Avoid infinite loop if the split
344         results in a sequence that contains the original insn.
345
346 2000-04-13  Andreas Jaeger  <aj@suse.de>
347
348         * config/mips/mips.c (expand_block_move): Pass alignment
349         argument to move_by_pieces in bits, not bytes.
350
351         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
352         __pic__ for little endian.
353
354 2000-04-13  Andreas Jaeger  <aj@suse.de>
355
356         * config/i386/i386-protos.h: Add prototype for
357         uno_comparison_operator.
358
359 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
360
361         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
362         * calls.c (ECF_PURE): New flag.
363         (emit_call_1): Handle ECF_PURE calls.
364         (initialize_argument_information): Unset ECF_PURE flag too.
365         (precompute_arguments): Precompute for ECF_PURE too.
366         (expand_call): Handle ECF_PURE calls too.
367         (emit_library_call_value_1): Rename no_queue argument to fn_type,
368         accept value of 2 as pure function.
369         (emit_library_call_value, emit_library_call): Rename no_queue argument
370         to fn_type.
371         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
372
373         * tree.h (DECL_IS_PURE): New macro.
374         (struct tree_decl): Add pure_flag.
375         * c-common.c (enum attrs): Add attribute "pure".
376         (init_attributes): Initialize attribute "pure"
377         (decl_attributes): Handle attribute "pure".
378         * extend.texi (Attribute "pure"): Document.
379         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
380         in pure function.
381         (flags_from_decl_or_type): Support attribute "pure".
382
383 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
384
385         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
386         the token except for numbers and identifiers.
387
388 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
389
390         * i386.c (ix86_expand_binary_operator,
391         ix86_expand_unary_operator): Check no_new_pseudos
392         instead of reload_in_progress and reload_completed.
393         (ix86_split_ashldi, ix86_split_ashrdi,
394         ix86_split_lshrdi): Check no_new_pseudos instead
395         of reload_completed.
396
397 2000-04-12  Jeffrey A Law  (law@cygnus.com)
398
399         * function.c (purge_addressof): Unshare any shared rtl created by
400         purge_addressof and its children.
401
402 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
403
404         * function.c (aggregate_value_p): VOID_TYPE nodes are never
405         aggregates.
406
407 2000-04-05  Andreas Jaeger  <aj@suse.de>
408
409         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
410         not compiling PIC code, add flags for mabi=64.
411         (SUBTARGET_CPP_SIZE_SPEC): New.
412         (SUBTARGET_CPP_SPEC): New.
413         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
414         for MIPS/Linux and lots of code needs these defines.
415
416 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
417
418         * reorg.c (fill_slots_from_thread): Check side_effects_p when
419         trying the "opposite arithmetic" approach.
420
421 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
422
423         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
424         (struct sh_args): Add new field force_mem.
425         (INIT_CUMULATIVE_ARGS): Initialize it.
426         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
427
428 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
429
430         * calls.c (expand_call): Do not reverse args in "equal from" field.
431         (emit_library_call_value_1): Emit_libcall_block for const and pure
432         function.
433
434 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
435
436         * reload1.c (reload_combine): Don't enable optimization for fixed
437         registers when encountering a BARRIER.
438
439 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
440
441         * builtins.c (expand_builtin_memcmp): Do expansion even with
442         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
443
444         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
445         stack is propertly aligned; add sanity checking for aligned
446         stack pointer.
447         (expand_library_call_value_1): Add sanity checking for aligned
448         stack pointer.
449
450 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
451  
452         * calls.c (emit_library_call_value_1): Change 3rd arg to
453         locate_and_pad_parm to disregard the setting of partial.
454
455 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
456
457         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
458
459         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
460         CALL_INSN from the normal case.
461
462 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
463
464         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
465         New global variables.
466         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
467         adjustment.
468         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
469         Declare,
470         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
471          TARGET_ADD_ESP_8): New macros.
472         * i386.md: Add peep2s to convert esp adjustments to push and pop
473         instructions.
474         (pushsi_prologue, popsi_epilogue): New patterns.
475
476 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
477
478         * real.c (toe64): Remove stale #endif from the last change.
479
480 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
481
482         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
483         * real.c (toe64): Revert previous change.
484
485 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
486
487         * objc/objc-act.c: Include ggc.h.
488         (objc_tree_index, objc_global_trees): Convert most of the
489         static tree variables into a static array with previous names
490         as defines.
491         (objc_ellipsis_node): New variable.
492         (lang_init): Call objc_act_parse_init and c_parse_init.
493         Create objc_ellipsis_node.
494         (build_selector_translation_table): Use objc_ellipsis_node instead
495         of (tree)1.
496         (hack_method_prototype): Likewise.
497         (get_arg_type_list): Likewise.
498         (start_method_def): Likewise.
499         (continue_method_def): Likewise.
500         (gen_method_decl): Likewise.
501         (ggc_mark_imp_list): New function.
502         (ggc_mark_hash_table): New function.
503         (objc_act_parse_init): New function.
504         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
505         * c-parse.in (c_parse_init): For objc add roots of objc specific
506         local tree variables.
507         * objc/objc-parse.y: Rebuilt.
508         * objc/objc-parse.c: Rebuilt.
509         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
510
511 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
512
513         * cse.c (delete_trivially_dead_insns): Also delete insns
514         that copy a register to itself where the destination is
515         a strict_low_part.
516
517 2000-04-11  Richard Henderson  <rth@cygnus.com>
518
519         * flow.c (struct propagate_block_info): Add new_dead, new_live.
520         (propagate_block): Initialize them.  Use them in parallel instead
521         of one tmp variable, ie revert much of the 0408 and 0407 functional
522         changes, but keep the structural changes.
523         (mark_set_regs): Take new_dead from propagate_block_info instead.
524         (mark_set_1, mark_set_reg): Likewise.
525         (mark_used_regs): Likewise with new_live.
526         (mark_used_reg): Likewise.  Revert 0408 change.
527
528 2000-04-11  Nick Clifton  <nickc@cygnus.com>
529
530         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
531         restriction.
532         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
533
534 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
535
536         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
537         const section to output a CONSTRUCTOR based on the same conditions
538         used for VAR_DECLs.
539
540 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
541
542         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
543         * pa/pa-protos.h (output_call): Add additional argument indicating
544         if the call is a sibling/tail call.
545         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
546         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
547         (function_arg, function_arg_partial_nregs): Likewise
548         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
549         (emit_move_sequence): Zero extend certain constants as needed
550         for TARGET_64BIT.
551         (compute_zdepdi_operands, output_64bit_and): New functions.
552         (output_64bit_ior, function_arg): Likewise.
553         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
554         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
555         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
556         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
557         (output_bvb): Likewise.
558         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
559         (output_call): New argument 'sibcall'.  Generate sibcall sequences
560         as needed.
561         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
562         (ouput_arg_descriptor): Do not emit argument descriptors for
563         TARGET_64BIT.
564         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
565         defined.
566         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
567         (FUNCTION_OK_FOR_SIBALL): Define.
568         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
569         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
570         (CPP_SPEC): Use new spec infrastructure.
571         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
572         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
573         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
574         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
575         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
576         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
577         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
578         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
579         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
580         (FUNCTION_ARG); Call out to C code.
581         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
582         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
583         (MIN_UNITS_PER_WORD): Likewise.
584         * pa/pa.md (cmpdi): New expander.
585         (scc patterns, movstrsi): Not available for TARGET_64BIT.
586         (64bit conditional arithmetic): New patterns.
587         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
588         (movsicc): Not available if modes on all the operands to not match.     
589         (movdicc): New expander and associated patterns.
590         (64bit branches): New patterns.
591         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
592         (pre_ldd, post_std): New patterns.
593         (64bit addil, load low part): New patterns.
594         (special movsf constant): Not available for TARGET_64BIT.
595         (movsf, movdf expanders): Force constants into memory.
596         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
597         (64bit movdf/movdi patterns): New patterns.
598         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
599         for TARGET_64BIT.
600         (extendqidi2, extendhidi2, extendsidi2): Similarly.
601         (adddi3 expander): Allow "arith_operand" for second input.
602         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
603         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
604         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
605         (muldi3): New expander for TARGET_64BIT.
606         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
607         for TARGET_64BIT.
608         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
609         patterns for TARGET_64BIT.
610         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
611         patterns for TARGET_64BIT.
612         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
613         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
614         (sibcall_epilogue): New expander.
615         (casesi): Tweak for TARGET_64BIT.
616         (call expanders): Set & use the outgoing argument pointer.  Use the
617         64bit call patterns as needed. Add additional arg to output_call.
618         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
619         (sibcall, sibcall_internal_symref): New expanders.
620         (sibcall_value, sibcall_value_internal_symref
621         (interspace_jump): Turn into an expander + matching patterns.
622         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
623         * pa/pa64-regs.h: Eliminate trigraph sequences.
624         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
625
626 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
627
628         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
629         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
630         cpp_token with cpp_ttype everywhere.
631         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
632         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
633         CPP_BUF_COL.  Line and column numbers are unsigned int, not
634         long.
635         * cpplex.c (cpp_buf_line_and_col): Delete.
636         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
637         'long lineno' to 'unsigned int lineno'.
638         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
639
640 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
641
642         * extend.texi: ISO C99 is not a draft anymore.
643         * invoke.texi: ISO C++ is not a draft anymore.
644         * cpp.texi: __cplusplus is required by the ISO standard.
645
646         * extend.texi (-fthis-is-variable): Undocument.
647         * flags.h (warn_template_debugging): Remove declaration.
648         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
649         -Wenum-clash, -Wtemplate-debugging): Undocument.
650
651 2000-04-10  Nick Clifton  <nickc@cygnus.com>
652
653         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
654         integer.
655         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
656         integer.
657         (ARM_SIGN_EXTEND): Use HOST_UINT.
658         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
659         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
660         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
661         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
662
663         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
664         (arm_gen_constant): Use HOST_UINT.
665         (arm_canonicalize_constant): Use HOST_UINT.
666         (arm_reload_in_hi): Use HOST_UINT.
667         (arm_reload_out_hi): Use HOST_UINT.
668         (output_multi_immediate): Use HOST_UINT.
669         (int_log2): Use HOST_UINT.
670         (arm_poke_function_name): Use HOST_UINT.
671         (arm_output_epilogue): Use arm_volatile_func().
672         (output_thumb_prologue): Use arm_strip_name_encoding().
673         
674 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
675
676         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
677         of sequence point problems.
678
679 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
680
681         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
682         Recomment.
683         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
684
685 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
686
687         * sbitmap.h: Whitespace changes and use upper-case macro args.
688         (struct simple_bitmap_def): All sizes now unsigned.
689         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
690         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
691         (sbitmap_vector_alloc): Parms and local vars now unsigned.
692         (sbitmap_zero): Cast bzero arg to PTR.
693         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
694         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
695         loop to make structure clearer.
696         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
697         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
698         (sbitmap_a_and_b_or_c): Likewise.
699         (sbitmap_intersection_of_succs): Minor cleanups.
700         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
701         (sbitmap_union_of_preds): Likewise.
702         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
703         (debug_sbitmap): New function.
704         
705         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
706         * c-typeck.c (convert_for_assignment): Likewise.
707
708         * expmed.c (init_expmed): Don't free objects we make.
709         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
710
711         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
712         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
713
714         * gcse.c (expr_hash_table_size): Now unsigned.
715         (compute_ae_gen): Local variable `i' now unsigned.
716         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
717         (compute_transout, hoist_code): Likewise.
718         (compute_local_properties): Likewise, also hash_table_size.
719         (alloc_expr_hash_table): N_INSNS now unsigned.
720         (delete_null_pointer_checks): Mark arg F as unused.
721
722         * regrename.c: Minor cleanups, including chang some variables
723         to unsigned int.
724
725 2000-04-10  Neil Booth  <NeilB@earthling.net>
726
727         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
728         than GETC ().
729         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
730
731 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
732
733         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
734         __classof__, and __headof__ from the list of gnu keywords.
735         (-ansi): Remove -foperator-names from list of implied options. 
736         Do not call it ANSI C++.
737         (-foperator-names): Document as -fno-operator-names.
738
739 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
740
741         * cpphash.c (timestamp): Delete.
742         (del_HASHNODE): If type is T_MCONST, free value.cpval.
743         (special_symbol): Remove unnecessary braces.  Remove
744         T_VERSION.  Treat T_STDC like T_CONST unless
745         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
746         when one is encountered, then convert them into T_MCONST
747         nodes.
748         * cppinit.c (builtin_array): version_string is T_MCONST.
749         __STDC__ has a "1" in its cpval.  Don't have a terminator
750         entry.  Clean up which entries are dumped.
751         (initialize_builtins): Only __STDC__ gets the special
752         -traditional treatment.  Count the length of builtin_array.
753         Render version_string here.
754         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
755         * cpplib.h (struct cpp_reader): Remove timebuf. 
756
757 2000-04-09  Richard Henderson  <rth@cygnus.com>
758
759         * genrecog.c (pred): Update comparison_operator for the unordered
760         operators.
761
762         * config/i386/i386.c (no_comparison_operator): Disallow unordered
763         operators.
764         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
765         (uno_comparison_operator): New.
766         (put_condition_code): Handle UNORDERED/ORDERED.
767         (unsigned_comparison): Likewise.
768         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
769         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
770         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
771         update all callers.  Handle all 8 unordered operators.
772         (ix86_expand_setcc): Lose the unordered argument, update all callers.
773         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
774         * config/i386/i386.h (PREDICATE_CODES): Update.
775         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
776         (ix86_expand_branch, ix86_expand_setcc): Update.
777         * config/i386/i386.md (sunordered, sordered): New.
778         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
779         (bunordered, bordered): New.
780         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
781         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
782         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
783
784 2000-04-09  Philip Blundell  <philb@gnu.org>
785
786         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
787         
788 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
789
790         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
791         fix_truncxfhi2): New patterns.
792         * i386.c (output_fix_trunc): Handle converting to HImode.
793
794 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
795
796         * ssa.c (convert_to_ssa): Eliminate dead code when calling
797         life_analysis.  
798         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
799         (for_each_successor_phi): Change parameter to basic_block.
800         (coalesce_regs_in_successor_phi_nodes): Likewise.
801         (coalesce_regs_in_copies): Likewise.
802         (compute_coalesced_reg_partition): Use basic_block instead of index.
803         * rtl.h (convert_to_ssa): Delete.
804         (convert_from_ssa): Likewise.
805         (successor_phi_fn): Likewise.
806         (for_each_successor_phi): Likewise.
807         (in_ssa_form): Likewise.
808         * basic-block.h (convert_to_ssa): Moved from rtl.h.
809         (convert_from_ssa): Likewise.
810         (successor_phi_fn): Likewise.
811         (in_ssa_form): Likewise.
812         (for_each_successor_phi): Likewise.  Change parameter to basic_block. 
813         * flow.c (calculate_global_regs_live): Pass a basic_block to
814         for_each_successor_phi.
815
816 2000-04-08  Richard Henderson  <rth@cygnus.com>
817
818         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
819         was modified in the current insn.
820
821 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
822
823         * arm/thumb.md: Delete.
824         * arm/thumb-protos.h: Delete.
825
826 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
827
828         Merge changes from merged-arm-thumb-backend-branch onto trunk.
829
830         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
831
832         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
833         into branch.
834
835         * arm.md (nop): Use the standard RTL expression.  Don't code as a
836         define_expand.
837         (*arm_nop, *thumb_nop): Delete.
838
839         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
840         constants.  Use casts instead.
841         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
842         output_multi_immediate, arm_poke_function_name): Likewise.
843         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
844         MASK_RETURN_ADDDR): Likewise.
845
846         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
847
848         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325 
849         into branch.
850         
851         * arm.md (eh_epilogue): New function.
852         * arm.h (struct machine_function): Move to here ...
853         * arm.c: ... from here.
854         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
855         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
856         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
857
858         2000-03-30  Nick Clifton  <nickc@cygnus.com>
859
860         * config/arm/semi.h (ASM_SPEC): Restore definition.
861         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
862
863         * config/arm/elf.h (ASM_SPEC): Restore definition.
864         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
865
866         * config/arm/arm.h (ASM_SPEC): Remove definition.
867         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
868
869         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
870
871         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
872
873         2000-03-24  Nick Clifton  <nickc@cygnus.com>
874
875         Various formating tidyups, elimination of compile time
876         warnings and synchronisation with internal sources:
877         
878         * config/arm/arm-protos.h (assemble_align): Add prototype.
879         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
880         (gen_comapre_reg): Rename to arm_gen_compare_reg.
881         (arm_return_addr_rtx): Rename to arm_return_addr.
882
883         * config/arm/arm.c: Include except.h.
884         Define shorter typenames for strict minipool_node and struct
885         minipool_fix.
886         (arm_return_in_memory): For WinCE return all structures <= 32 bits
887         in memory.
888         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
889         (gen_comapre_reg): Rename to arm_gen_compare_reg.
890
891         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
892         already defined.
893         (ASM_SPEC): Define if not already defined.
894         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
895
896         * config/arm/arm.md: Rename references to gen_rotated_half_load to
897         arm_gen_rotated_half_load, and references to gen_comapre_reg to
898         arm_gen_compare_reg.
899         (indirect_jump):  Only accept register operands.
900         (load_indirect_jump): Keep this pattern since combine can generate
901         it.
902
903         * config/arm/coff.h: Include aout.h.
904         (MULTILIB_DEFAULTS): Only define if not already defined.
905
906         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
907         into arm.h (so that COFF ports can support thumb based aliases).
908         (ASM_SPEC): Move definition into arm.h
909         
910         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
911         redundant apcs spec.
912         (ASM_SPEC): Move definition to arm.h
913
914         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
915
916         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
917         for entries in the .bss section
918
919         2000-03-23  Nick Clifton  <nickc@cygnus.com>
920
921         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
922         to thumb_far_jump_used_p.
923
924         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
925         single integer parameter.
926
927         * config/arm/arm.c (struct machine_function): Add two new
928         fields, 'far_jump_used' and 'arg_pointer_live'.
929         (thumb_far_jump_used_p): Once the decision has been made that
930         far jumps might be used, always return true.
931         If being called from the initial elimination offset macro then
932         do not bother to perform the test if the arg pointer is not
933         being used.
934         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
935         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
936
937         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
938
939         * arm.c (output_return_instruction): Handle more cases where we can
940         return from a function with an ldr instruction.
941         (arm_output_epilogue): Likewise.
942
943         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
944         if we need to push a large stack frame and there are no callee-saved
945         registers.
946
947         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
948         in ARM code if the frame pointer has been eliminated.
949
950         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
951         unspec_volatile arguments to avoid duplicates.
952         (consttable_1, consttable_2): Fixes for big-endian mode.
953
954         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
955         as appropriate.
956
957         Re-write constant pool code.
958         * arm.c (minipool_node, minipool_fix): New types.
959         (minifix): Delete type.
960         (arm_add_minipool_constant): Delete.
961         (arm_compute_minipool_offsets, arm_find_barrier, 
962         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
963         (get_jump_table_size): Now returns HOST_WIDE_INT.
964         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
965         functions.
966         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
967         (assign_minipool_offsets, arm_print_value): Likewise.
968         (dump_minipool): Rewrite.
969         (arm_barrier_cost): New function.
970         (create_fix_barrier): New function.
971         (push_minipool_barrier): New function.
972         (push_minipool_fix): Record additional information about the fixup 
973         required.
974         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
975         check the mode of what needs fixing.
976         (arm_reorg): Rewrite.
977
978         2000-03-08  Nick Clifton  <nickc@cygnus.com>
979
980         * config/arm/arm.md (indirect_jump): Force constant addresses into
981         a register. 
982
983         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
984
985         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
986
987         2000-02-24  Nick Clifton  <nickc@cygnus.com>
988
989         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
990         adjust is word aligned.
991         (thumb_expand_epilogue): Make sure that stack adjust is word
992         aligned.
993
994         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
995         
996         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
997
998         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
999         pointer relative addresses.
1000
1001         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
1002
1003         * arm.c (find_barrier): Find the last barrier within the allowed 
1004         range.
1005
1006         2000-02-09  Nick Clifton  <nickc@cygnus.com>
1007
1008         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
1009
1010         2000-02-09  Nick Clifton  <nickc@cygnus.com>
1011
1012         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
1013         ARM_FUNCTION_PROFILER. 
1014
1015         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
1016         ARM_FUNCTION_PROFILER. 
1017
1018         * config/arm/linux-oldld.h: Imported from mainline sources.
1019
1020         2000-02-07  Nick Clifton  <nickc@cygnus.com>
1021
1022         * config/arm/lib1funcs.asm: Merge in thumb functions from
1023         lib1thumb.asm.
1024         
1025         * config/arm/lib1thumb.asm: Delete.
1026
1027         2000-02-04  Nick Clifton  <nickc@cygnus.com>
1028
1029         * config/arm/arm.c: Sychronised with current Red hat local
1030         sources. 
1031         * config/arm/arm.h: Ditto.
1032         * config/arm/arm-protos.h: Ditto.
1033
1034         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
1035
1036         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
1037
1038         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
1039         byte stores.
1040
1041         2000-02-02  Nick Clifton  <nickc@cygnus.com>
1042
1043         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
1044
1045         * config/arm/arm.md (epilogue): Fix rtl checking abort because
1046         (return) was emited using an emit_insn() call. 
1047         
1048         2000-01-31  Nick Clifton  <nickc@cygnus.com>
1049
1050         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
1051         thumb stack frame.
1052         (thumb_exit): Move frame pointer back into hard frame pointer
1053         register if backtracing is being used.
1054
1055         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
1056
1057         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113 
1058         into branch.
1059
1060         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
1061
1062         * config/arm/arm.md (neg_pool_offset): Provide default for new
1063         attribute.
1064         (arm_movsi_insn): Add neg_pool_offset attribute.
1065         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
1066         rtx for the insn that starts the scan and an unsigned long for its
1067         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
1068         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
1069         instructions in *PINSERTED.
1070         (struct minipool_fixup): Add MIN_ADDRESS elt.
1071         (sort_fixups): Compute it.
1072         (arm_reorg): Changes to support inserting pools before the insn to be
1073         fixed up.
1074
1075         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
1076
1077         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
1078         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
1079         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
1080
1081         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
1082
1083         * config/arm/semi.h (TARGET_VERSION): Do not define if already
1084         defined.
1085         (TARGET_DEFAULT): Do not define if already defined.
1086
1087         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
1088
1089         * config/arm/arm.md (anddi3): Allow disjoint source operands.
1090         (iordi3): Allow disjoint source operands.
1091         (xordi3): Allow disjoint source operands.
1092         (negdi2): Permit construction for ARM and Thumb.
1093         (arm_negdi2): Renamed version of old negdi2 pattern.
1094         (thumb_negdi2): New pattern: Only permit non-overlapping
1095         source and destination.
1096
1097         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
1098
1099         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
1100         scratch low register so that it will not be deleted.
1101
1102         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
1103
1104         * config/arm/pe.h (ARM_PE): Define.
1105         
1106         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
1107         interfacearm attribute if this is a PE toolchain.
1108         (output_return_instruction): Do not emit anything if the function
1109         has the naked attribute set.
1110         (is_called_in_ARM_mode): If the function has the interfacearm
1111         attribute then return true.
1112         (thumb_expand_prologue): Do not generate a prologue for naked
1113         functions.
1114         (thumb_expand_epilogue): Do not generate an epilogie for a naked
1115         function.
1116         (output_thumb_prologue): Do not bother if the function is naked.
1117         Strip PE encoding from function name before emitting.
1118
1119         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
1120
1121         * arm.md (pic_load_addr): Fix constraints.
1122
1123         * arm.md (casesi_insn): Fix mis-applied patch.
1124
1125         * arm.md ("core" function unit): Add rules for single- and
1126         multi-cycle insns.
1127         (All TARGET_THUMB patterns): Add "type" attribute information
1128         where needed.
1129         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
1130         the following insn is a CALL.
1131
1132         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
1133         pointer.
1134         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the 
1135         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
1136         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
1137         
1138         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
1139
1140         * config/arm/linux-gas.h: oops - this file was missed out when the
1141         branch was created...
1142
1143         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
1144
1145         * thumb.c: Deleted.  Move contents to ...
1146         * arm.c: ... here.
1147         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
1148         rule for thumb.o
1149         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
1150         * configure: Regen.
1151
1152         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
1153         declare a prototype for asm_output_align();
1154
1155         * arm.c (thumb_condition_code): Delete.
1156         (arm_print_operand): Always use arm_condition_code array.
1157
1158         * arm.c (thumb_return_addr_rtx): Delete.
1159         (arm_save_machine_status, arm_restore_machine_status): Delete.
1160         (arm_init_machine_status, arm_mark_machine_status): New functions.
1161         (arm_init_expanders): Update accordingly.
1162         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
1163         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
1164         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
1165         
1166         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
1167
1168         * configure.in : Fix arm-*-aout target to use new t-arm-aout
1169         script. 
1170         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
1171         targets.
1172
1173         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
1174
1175         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
1176         stack backtrace structure.
1177
1178         * config/arm/arm-protos.h: Add prototypes for functions defined in
1179         arm/pe.h.
1180         
1181         * config/arm/arm.c (arm_override_options): Fix selection of 
1182         attributes of default processor.
1183         
1184         * config/arm/coff.h: Delete needless #include.
1185         
1186         * config/arm/pe.c: Delete unused code.
1187         
1188         * config/arm/pe.h (CPP_DEFINES): Delete
1189         (SUBTARGET_CPP_SPEC): Define.
1190         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
1191         
1192         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
1193
1194         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
1195
1196         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
1197         updated.
1198         (CAN_DEBUG_WITHOUT_FP): Define.
1199         (FIXED_REGISTERS): Make r11 call-saved.
1200         (CALL_USED_REGISTERS): Likewise.
1201         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
1202         (FRAME_POINTER_REQUIRED): Correct logic for determining when a 
1203         frame-pointer is required.
1204         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
1205         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
1206         if the target normally needs a stack frame in non-leaf functions.
1207         (use_return_insn): Correct logic for determining when a return
1208         instruction can be used.
1209         (output_return_instruction): Handle the frame-pointer register as
1210         a normal register when not TARGET_APCS_FRAME.
1211         (arm_output_prologue): Likewise.
1212         (arm_output_epilogue): Likewise.
1213         (output_func_epilogue): Likewise.
1214         (arm_expand_prologue): Likewise.
1215         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
1216
1217         * arm.c (use_return_insn): No need to check floating point regs if
1218         TARGET_SOFT_FLOAT.
1219         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
1220         the code of value stored in the minipool array.
1221         (arm_add_minipool_constant): Likewise.
1222
1223 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1224
1225         * basic-block.h (conflict_graph_enum_fn): K&R fix.
1226
1227 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1228
1229         * tree.c (tree_expr_nonnegative_p): New function.
1230
1231         * tree.h (tree_expr_nonnegative_p): Declare.
1232
1233         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
1234         elide some sign_compare warnings.
1235         (build_conditional_expr): Likewise.
1236
1237 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
1238
1239         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
1240
1241         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
1242         * i386.c (print_operand): Use the proper suffix for a 387 HImode
1243         operand.  Abort if a 387 operand has an unsupported size.
1244
1245 2000-04-08  Neil Booth  <NeilB@earthling.net>
1246
1247         * cppexp.c (parse_charconst): Null does not end character
1248         constants.
1249         * cppinit.c (ISTABLE): Null character handled as whitespace.
1250         * cpplex.c (null_warning):  new function.
1251         (skip_string): Emit warning if nulls encountered.
1252         (_cpp_skip_hspace): Emit warning if nulls encountered.
1253         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
1254         them.
1255         * cpp.texi: Update.
1256
1257 2000-04-07  Richard Henderson  <rth@cygnus.com>
1258
1259         * flow.c (loop_depth): Remove.
1260         (reg_next_use, cc0_live, mem_set_list): Replace with ...
1261         (struct propagate_block_info): New.
1262         (life_analysis): Don't allocate reg_next_use.
1263         (propagate_block_delete_insn): Break out of propagate_block.
1264         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
1265         (propagate_block_delete_libcall): Likewise.
1266         (propagate_block): Create a propagate_block_info struct to pass
1267         to subroutines.  Allocate one not two temporary regsets.  Don't
1268         clobber memory for const calls.  Look for clobbers in
1269         CALL_INSN_FUNCTION_USAGE.
1270         (mark_set_regs): Recognize COND_EXEC.
1271         (mark_set_reg): Break out of mark_set_1.
1272         (mark_used_reg): Break out of mark_used_regs.
1273         (mark_used_regs): Recognize COND_EXEC.
1274         (insn_dead_p): Use propagate_block_info struct.
1275         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
1276         (find_auto_inc, try_pre_increment_1): Likewise.
1277         (print_rtl_with_bb): Dump regs live at end too.
1278         (count_reg_sets_1): Pass in loop_depth.
1279         (count_reg_sets, count_reg_references): Likewise.
1280         (recompute_reg_usage): Provide it.
1281
1282 2000-04-07  Richard Henderson  <rth@cygnus.com>
1283
1284         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
1285         not the raw files.
1286
1287 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
1288
1289         * cpplib.c (do_elif): Skip the rest of the line if we're
1290         not going to bother evaluating it.
1291         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
1292         to avoid pointless calls to the lexer.
1293
1294 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
1295
1296         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
1297
1298 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
1299
1300         * calls.c (expand_call): emit_queue if we're trying a sibcall.
1301
1302 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
1303
1304         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
1305
1306 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
1307
1308         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
1309         crtend so they can be multilibbed.
1310         (STAGESTUFF): Remove s-crt and s-crtS.
1311
1312 2000-04-07  Richard Henderson  <rth@cygnus.com>
1313
1314         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
1315         if we discover we need a pseudo and no_new_pseudos is true.
1316         * config/alpha/alpha.md (ne:DI insn): New.
1317         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
1318
1319 2000-04-07  Richard Henderson  <rth@cygnus.com>
1320
1321         * rtl.def (COND_EXEC): New.
1322         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
1323         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
1324
1325         * genconfig.c (have_cond_arith_flag): Remove.
1326         (have_cond_exec_flag): New.
1327         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
1328         (main): Print HAVE_conditional_execution.
1329
1330         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
1331         (sched_analyze_insn, print_pattern): Likewise.
1332         * reload.c (find_equiv_reg): Likewise.
1333         * rtlanal.c (reg_referenced_p): Likewise.
1334         (note_stores, dead_or_set_regno_p): Likewise.
1335         (reg_overlap_mentioned_p): Rewrite to use a switch.
1336
1337         * ggc.h (struct rtx_def): Forward declare.
1338
1339         * print-rtl.c (debug_rtx_range): New.
1340         * rtl.h (debug_rtx_range): Declare.
1341
1342         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
1343
1344         * gcse.c (gcse_main): Don't rebuild the CFG here.
1345         (delete_null_pointer_checks): Likewise.
1346         * ssa.c (convert_to_ssa): Likewise.
1347         * toplev.c (rest_of_compilation): Do it here instead.  Combine
1348         sequential calls to TIMEVAR.  Consistently use `insns' instead of
1349         `get_insns()'.  Always split insns after reload when optimizing.
1350
1351         * basic-block.h (merge_blocks_nomove): Declare.
1352         (tidy_fallthru_edge): Declare.
1353         * flow.c (merge_blocks_nomove): Document as merging into previous
1354         blocks.  Remove cruft from between blocks; remove all edges out of A.
1355         (tidy_fallthru_edge): Export.
1356
1357 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
1358
1359         * ssa.c (compute_conservative_reg_partition): Declare with
1360         void arguments.
1361         * toplev.c (clean_dump_file): Remove previously-deleted function
1362         inadvertantly merged back in.
1363         * conflict.c (conflict_graph_add): Use a single call to
1364         htab_find_slot to look up and insert.
1365
1366 2000-04-06  Richard Henderson  <rth@cygnus.com>
1367
1368         * genrecog.c (*): Rename _last_insn to last_insn.
1369         (make_insn_sequence): Set the position of the peephole2 C test
1370         to be at the last insn.
1371
1372 2000-04-06  Richard Henderson  <rth@cygnus.com>
1373
1374         * flow.c (compute_flow_dominators): Free worklist.
1375
1376 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
1377
1378         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
1379
1380 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
1381
1382         * rtl.h (INSN_P): New macro.
1383         (successor_phi_fn): New typedef.
1384         (for_each_successor_phi): New prototype.
1385         (in_ssa_form): New variable.
1386         (PHI_NODE_P): Likewise.
1387         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
1388         phi nodes in successors.
1389         (mark_used_regs): Add PHI case.
1390         (set_phi_alternative_reg): New function.
1391         (life_analysis): Assert that dead code elimination is not selected
1392         when in SSA form.
1393         * toplev.c (to_ssa_time): New variable.
1394         (from_ssa_time): Likewise.
1395         (compile_file): Zero to_ssa_time and from_ssa_time.
1396         Print time to convert to and from SSA.
1397         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
1398         (print_time): Compute percent fraction as integer.
1399         * ssa.c (PHI_NODE_P): Moved to rtl.h.
1400         (convert_to_ssa): Check if we're already in SSA.  
1401         Don't eliminate dead code in life_analysis.
1402         Rerun flow and life analysis at bottom.
1403         (eliminate_phi): Use canonical regnos when adding nodes.
1404         (mark_reg_in_phi): New function.
1405         (mark_phi_and_copy_regs): Likewise.
1406         (convert_from_ssa): Rerun life analysis at top.  
1407         Use coalesced partition.
1408         Check for removing a phi node at the end of the block.
1409         (compute_coalesced_reg_partition): New function.
1410         (coalesce_regs_in_copies): Likewise.
1411         (coalesce_reg_in_phi): Likewise.
1412         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
1413         (for_each_successor_phi): Likewise.
1414         (rename_context): New struct.
1415         (rename_block): Use a rename_context with rename_insn_1.  When
1416         renaming sets of a subreg, emit a copy of the entire reg first.
1417         (rename_insn_1): Treat data as a rename_context *.  Save current
1418         insn in set_data.
1419         (rename_set_data): Add field set_insn.
1420         * Makefile.in (HASHTAB_H): Move up in file.
1421         (OBSTACK_H): New macro.
1422         (collect2.o): Use OBSTACK_H in dependencies.
1423         (sdbout.o): Likewise.
1424         (emit-rtl.o): Likewise.
1425         (simplify-rtx.o): Likewise.
1426         (fix-header.o): Likewise.
1427         (OBJS): Add conflict.o.
1428         (conflict.o): New rule.
1429         * basic-block.h: Include partition.h.
1430         (conflict_graph): New typedef.
1431         (conflict_graph_enum_fn): Likewise.
1432         (conflict_graph_new): New prototype.
1433         (conflict_graph_delete): Likewise.
1434         (conflict_graph_add): Likewise.
1435         (conflict_graph_conflict_p): Likewise.
1436         (conflict_graph_enum): Likewise.
1437         (conflict_graph_merge_regs): Likewise.
1438         (conflict_graph_print): Likewise.
1439         (conflict_graph_compute): Likewise.
1440         * conflict.c: New file.
1441
1442 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
1443
1444         * tlink.c (read_repo_files): Don't look for .rpo info for
1445         linker flags.
1446
1447 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1448
1449         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
1450
1451 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1452
1453         * config/sh/lib1funcs.asm (___udivsi3_i4):
1454         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
1455         only depends on FMOVD_WORKS.
1456
1457 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1458
1459         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
1460         make double constant 8-byte aligned.
1461
1462 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
1463
1464         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
1465         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
1466         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
1467         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
1468         Accept storing GENERAL_REGS into offsetable memory.
1469         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
1470         building a TFmode constant other than 0.0L into GENERAL_REGS.
1471
1472 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
1473
1474         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
1475         
1476 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
1477
1478         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
1479         (macro_cleanup): No need to cast pbuf->macro.
1480         (collect_expansion): Use _cpp_get_define_token.  Goto done if
1481         it returns VSPACE.  Remove check for trailing space after
1482         CPP_COMMENT.
1483         (_cpp_create_definition): Don't diddle flags here.  Return
1484         directly on error.
1485         (unsafe_chars): Handle c1 being EOF.
1486         (push_macro_expansion): Use unsafe_chars for both accidental-paste
1487         checks.  Don't push the buffer till after we're done with
1488         them.
1489         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
1490         (PEEKN, FORWARD, GETC, PEEKC): Use them.
1491         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
1492         appropriately.
1493         (_cpp_parse_assertion): Don't NUL terminate.
1494         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
1495         hspace before calling _cpp_parse_assertion.  Remove all sets
1496         of only_seen_white. Treat '\f' as hspace.  Don't do anything
1497         special with '\n' here.
1498         (maybe_macroexpand): Handle T_EMPTY hash entries without
1499         pushing a buffer at all.
1500         (cpp_get_token): Handle clearing only_seen_white here.  Handle
1501         incrementing the line number here.  Clear
1502         potential_control_macro as well as only_seen_white, if
1503         appropriate.
1504         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
1505         (_cpp_get_define_token): New function, basically like
1506         _cpp_get_directive_token was but doesn't eat horizontal space.
1507         Don't do anything with only_seen_white here.
1508         (_cpp_get_directive_token): Just call _cpp_get_define_token
1509         repeatedly till it returns non-hspace.
1510
1511         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
1512         (conditional_skip, skip_if_group): Return int.
1513         (DIRECTIVE_TABLE): Change origin of all conditional directives
1514         to "COND".
1515         (TRAD_DIRECT_P): New macro.
1516         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
1517         an error for a bogus directive, unless -lang-asm.  Use
1518         TRAD_DIRECT_P. Loop calling handler functions till one returns
1519         zero.
1520         (get_macro_name): Don't diddle flags here.
1521         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
1522         Create T_EMPTY nodes for #define macro /* nothing */.
1523         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
1524         Use hp->name when calling pass_thru_directive.
1525         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
1526         Return the result of conditional_skip and/or skip_if_group.
1527         Don't call _cpp_output_line_command.
1528         (consider_directive_while_skipping): Use _cpp_get_directive_token.
1529         Issue -Wtraditional warnings as appropriate.  Don't complain
1530         about unrecognized directives.  If we are to stop skipping,
1531         return the number of the directive that ended the skip.
1532         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
1533         expansion and line commands while skipping.  Return the result
1534         of consider_directive_while_skipping, if nonzero.
1535         (do_endif): Just set potential_control_macro here.
1536         (validate_else): Use _cpp_get_directive_token.
1537         (do_assert, do_unassert): Don't save pointers into the
1538         token_buffer across calls to the lexer.  Use
1539         _cpp_get_directive_token.  
1540
1541         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a 
1542         pointer, not an offset.  Replace 'data', which was a generic
1543         pointer, with 'macro', which points to a struct hashnode.
1544         (cpp_reader): Add 'potential_control_macro' pointer.
1545         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
1546         (CPP_BUF_GET, CPP_FORWARD): Delete.
1547         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
1548         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
1549         ACTIVE_MARK_P): Update.
1550         (_cpp_get_define_token): New internal function.
1551         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
1552
1553 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
1554
1555         * configure.in: And here.
1556         * configure: Regenerate.
1557         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
1558         --enable-libstdcxx-v3 is passed at configure time.
1559         * config.h.in: Regenerate.
1560
1561 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
1562
1563         * final.c (final): Use xcalloc to allocate line_note_exists.
1564         * function.c (free_after_compilation): Free the temp_slots.
1565         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
1566         (combine_temp_slot): Free temp_slots when they get combined.
1567         (purge_addressof): Fix typo in comment.
1568         * stmt.c (mark_goto_fixup): Mark the fixup itself.
1569         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
1570
1571         * ggc.h: Include varray.h.
1572         (ggc_pending_trees): Declare.
1573         (ggc_mark_tree_children): Remove declaration.
1574         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
1575         * ggc-common.c (ggc_pending_trees): New variable.
1576         (ggc_mark_roots): Call ggc_mark_trees.
1577         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
1578         the ggc_pending_trees.
1579         * Makefile.in (GGC_H): New variable.  Use it throughout in place
1580         of ggc.h.
1581         
1582 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1583
1584         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
1585         GET_MODE_SIZE.
1586
1587 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1588
1589         * sh.c (sh_insn_length_adjustment): New function.
1590         * sh-protos.h (sh_insn_length_adjustment): Declare.
1591         * sh.h (ADJUST_INSN_LENGTH): Use it.
1592
1593 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
1594
1595         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
1596         from the insn where REG_RETVAL is added.
1597         (emit_no_conflict_block): Ditto.
1598
1599         * md.texi (Standard Names): Clarify when movX is needed.
1600
1601         * combine.c (simplify_comparison) [MINUS]: Do not replace
1602         all (op (minus A B) 0) with (op A B).
1603
1604 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
1605                           J"orn Rennecke <amylaar@cygnus.co.uk>
1606
1607         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
1608         (block_lump_real): Likewise.
1609
1610 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
1611
1612         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
1613         remaining non-zero debugging masks.
1614
1615 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
1616
1617         * basic-block.h (verify_flow_info): Declare.
1618         (flow_loop_outside_edge_p): Declare.
1619         * flow.c (verify_flow_info): Remove declaration.
1620         (clear_log_links, flow_loop_outside_edge_p): Likewise.
1621
1622 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
1623
1624         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
1625         not C++ comments.
1626
1627 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
1628
1629         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
1630         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
1631         seqdi_zero_trunc+1): Allow splits only if registers are
1632         different.
1633
1634 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
1635
1636         * acconfig.h: Add HAVE_GAS_HIDDEN.
1637         * config.in: Regenerated.
1638         * configure.in: Add test for .hidden pseudo-op in gas.
1639         * configure: Regenerated.
1640         * crtstuff.c: Include auto-host.h.
1641         Emit additional .hidden pseudo-op for __dso_handle if the
1642         assembler knows about it.
1643
1644 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
1645
1646         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
1647         before freeing argnames.
1648         * cpplib.c (do_ifndef): Cast return value of xstrdup.
1649
1650 2000-04-05  Michael Meissner  <meissner@redhat.com>
1651
1652         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
1653         Walton <jonboy@gordian.com> to make memory references with update
1654         work wtih -mregnames.
1655
1656 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1657
1658         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
1659         (regrename_optimize): Rename variables `def_uses' and
1660         `ext_basic_blocks' to avoid conflicts with similarly named
1661         typedefs in traditional C.
1662
1663         * calls.c (initialize_argument_information): Fix typo in previous
1664         change.
1665
1666 2000-04-04  Richard Henderson  <rth@cygnus.com>
1667
1668         * regrename.c (consider_available): Test fixed_regs not
1669         PIC_OFFSET_TABLE_REGNUM.
1670
1671 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
1672
1673         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
1674         crtend.
1675         (CRTSTUFF_T_CFLAGS_S): Delete definition.
1676         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
1677         (ENDFILE_LINUX_SPEC): Always use crtend.
1678         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
1679         (powerpc-*-linux-gnu): Likewise.
1680         * configure: Regenerate.
1681
1682         * config/rs6000/eabi.h: Don't include sysv4.h.
1683         (MULTILIB_DEFAULTS): Don't define.
1684         * config/rs6000/eabiaix.h: Don't include eabi.h.
1685         * config/rs6000/eabile.h: Delete.
1686         * config/rs6000/eabilesim.h: Delete.
1687         * config/rs6000/eabisim.h: Don't include eabi.h.
1688         * config/rs6000/linux.h: Don't include sysv4.h.
1689         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
1690         (MULTILIB_DEFAULTS): Don't redefine.
1691         * config/rs6000/rtems.h: Don't include eabi.h.
1692         * config/rs6000/sol2.h: Don't include sysv4le.h.
1693         * config/rs6000/sysv4le.h: Don't include sysv4.h.
1694         * config/rs6000/t-ppc: Delete.
1695         * config/rs6000/t-ppcgas: Correct comment.
1696         * config/rs6000/t-ppcos: Correct comment.  Don't build 
1697         multilibs for -fPIC, rather use -fPIC -mstrict-align 
1698         as default.
1699         * config/rs6000/t-ppc: Delete.
1700         * config/rs6000/vxppc.h: Don't include sysv4.h.
1701         * config/rs6000/vxppcle.h: Delete.
1702         * configure.in: Use multiple header files for p2pc ELF targets
1703         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
1704         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
1705         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
1706         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
1707         always available for these platforms.
1708
1709 2000-04-04  Richard Henderson  <rth@cygnus.com>
1710
1711         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
1712
1713 2000-04-04  Stan Cox  <scox@cygnus.com> 
1714
1715         * Makefile.in: Add rules for regrename.o
1716         * regrename.c: New file.
1717         * rtl.h (regrename_optimize): Add prototype.
1718         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
1719         (compile_file, decode_d_option): Add support for -frename-registers.
1720         (rest_of_compilation): Call regrename_optimize.
1721         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
1722         New macros.     
1723         
1724 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1725
1726         * Makefile (gccbug): New target.
1727         (doc): Depend on it.
1728         * gcc.texi (Bugs): Link subnodes.
1729         (gccbug): New node.
1730         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
1731         Document severities, priorities, and classes in bug form.
1732
1733 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
1734
1735         * cpplex.c (trigraph_map, speccase): Combine into single
1736         table, chartab.
1737         (NORMAL, NONTRI): New macros.
1738         (_cpp_read_and_prescan): Change to use unified table.  Use
1739         is_hspace to test for whitespace.
1740
1741         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
1742         definition that doesn't provoke the "empty body in an
1743         if-statement" warning.
1744
1745 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
1746
1747         * builtins.c (expand_builtin_strlen): Force the source to
1748         be a memory address.
1749
1750 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1751
1752         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
1753
1754 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1755
1756         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
1757          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
1758         (ECF_IS_CONST): Rename to ECF_CONST.
1759         (special_function_p): Make static, change interface.
1760         (flags_from_decl_or_type, try_to_integrate): Break out from ...
1761         (expand_call) ... here; convert number of variables to flags.
1762         (emit_library_call_vlue_1): Likewise.
1763         (setjmp_call_p): New function.
1764         (initialize_argument_information): Accepts flags as argument;
1765         return flags.
1766         (precompute_arguments): Likewise.
1767         * tree.h (special_function_p): Remove.
1768         (setjmp_call_p): Add prototype.
1769
1770 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
1771
1772         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
1773         so that addresses are offsetable by up to 16 bytes.
1774         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
1775         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
1776         offsetable.
1777
1778         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
1779         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
1780         (movsf): Don't force any constant to memory if target is integer
1781         hard register.
1782         Move fp_zero_operand check below the const0_rtx check.
1783         (movtf): Likewise. Also allow fp_zero_operand for stores into
1784         memory.
1785         (movdf): Likewise. Also allow fp_zero_operand for stores into
1786         memory and into integer hard registers.
1787         (clear_df, clear_dfp, movdf_const_intreg_sp32,
1788         movdf_const_intreg_sp64): Remove.
1789         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
1790         conditions.
1791         (movdf_no_e_insn_v9_sp32): New pattern.
1792         (movdf_insn_v9only): Remove.
1793         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
1794         (movdf_insn_sp64): Remove.
1795         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
1796         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
1797         (following splits): Rewrite conditions. Add two new splits
1798         for storing 0.0 into memory and registers.
1799         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
1800         (movtf_insn_sp32): Redo constraints and conditions.
1801         (movtf_insn_vis_sp32): New pattern.
1802         (movtf_no_e_insn_sp32): Redo constraints and conditions.
1803         (movtf_insn_hq_sp64): Likewise.
1804         (movtf_insn_hq_vis_sp64): New pattern.
1805         (movtf_insn_sp64): Redo constraints and conditions.
1806         (movtf_insn_vis_sp64): New pattern.
1807         (movtf_no_e_insn_sp64): Redo constraints and conditions.
1808         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
1809         or memory.
1810         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
1811         -mvis or -m64 to take down the number of various reload patterns.
1812
1813 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
1814
1815         * pa/pa-64.h: New file.
1816         * pa/pa64-regs.h: New file.
1817         * pa/pa64-start.h: New file.
1818         * pa/t-pa64: New file.
1819         * pa/xm-pa64hpux.h: New file.
1820
1821 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1822
1823         * sparc.c (output_restore_regs): Prototype.
1824         (sparc_emit_float_lib_cmp): Constification.
1825
1826         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
1827
1828         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
1829         Prototype.
1830
1831         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
1832         (get_value_hash, hash_rtx): Likewise.
1833
1834         * ssa.c (compute_conservative_reg_partition): Prototype.
1835
1836         * tree.c (mark_hash_entry): Prototype.
1837
1838 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
1839
1840         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
1841         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
1842         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
1843
1844         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
1845         * objc/lang-specs.h: Likewise.
1846
1847 2000-04-03  Neil Booth  <NeilB@earthling.net>
1848
1849         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
1850         and SYNTAX_ERROR2. Replace `' in messages with ''.
1851         (op_to_str): Make re-entrant.
1852         (_cpp_parse_expr): Implement new error macros. Use | rather
1853         than || to logically or 2 boolean integers.  Simply expression
1854         checking we have a left operand iff needed.
1855
1856 2000-04-03  Nick Clifton  <nickc@cygnus.com>
1857
1858         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
1859
1860 2000-04-03  Philip Blundell  <philb@gnu.org>
1861
1862         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
1863
1864 2000-04-03  Felix Lee  <flee@cygnus.com>
1865
1866         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
1867         (run_shell): Use it. 
1868
1869 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
1870
1871         * Makefile.in (stmp-int-hdrs): Make include subdir here...
1872         (stmp-fixproto): ...rather than here.
1873
1874 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
1875
1876         * pa.c (print_operand): Compute 'base' only inside the code paths
1877         that use it.
1878
1879 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
1880
1881         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
1882         CEIL_DIV_EXPR.
1883
1884 2000-04-03  Philipp Thomas  <pthomas@suse.de>
1885
1886         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
1887
1888 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
1889
1890         * Makefile.in (alias.o): Depend on $(TREE_H).
1891
1892 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
1893
1894         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
1895         processing C++.
1896         * cpplib.c (_cpp_handle_directive): Improve warnings for
1897         traditional C and indented directives.
1898
1899         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
1900         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
1901         fixinc/inclhack.def: Indent the # of #include_next one space.
1902         * cp/rtti.c: Un-indent #if and #endif.
1903
1904         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
1905         syntax error, but an error has already been printed.
1906         * cpplex.c (_cpp_parse_assertion): Give a more specific error
1907         message when called with nothing remaining on the line.
1908         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
1909         OTHER token, not an ASSERTION.
1910         * cpplib.c (do_assert): When we create a 'base' node, clear
1911         its aschain pointer.
1912
1913 2000-04-02  Neil Booth <NeilB@earthling.net>
1914
1915         * cppexp.c:  New typedef op_t.  struct operation and struct 
1916         token updated to use it.
1917         (op_to_str): New function.
1918         (_cpp_parse_expr): Error messages modified to use op_to_str.
1919
1920 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1921
1922         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
1923         before checking MUST_PASS_IN_STACK.
1924
1925 2000-04-02  Neil Booth <NeilB@earthling.net>
1926
1927         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
1928         flags and initial priority into a single constant.  New
1929         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
1930         (_parse_cpp_expr): Implement new constants.  Take left operand
1931         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
1932         parse indicated by reducing FINISHED token.  Remove new lines
1933         from cpp_error messages.
1934
1935 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
1936
1937         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
1938         permanent obstack.
1939
1940 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
1941
1942         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
1943         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
1944         the strings and function names on the fly.  Take the #sccs
1945         entry out of the table if SCCS_DIRECTIVE is not defined.
1946         (_cpp_handle_directive): Decide if the # was at the beginning
1947         of the line here.  Issue -pedantic warnings for extended
1948         directives here.  Warn about K+R directives with the #
1949         indented, and C89/extended directives with the # not indented,
1950         here.
1951         (do_import, do_include_next, do_warning, do_ident, do_sccs,
1952         do_assert, do_unassert): Don't issue pedantic warning here.
1953
1954         * cpphash.h: Add CPP_WTRADITIONAL macro.
1955         * cpplib.h (struct cpp_options): Rename warn_stringify to
1956         warn_traditional; update comments.
1957         * cppinit.c (handle_option): Set warn_traditional not
1958         warn_stringify.
1959         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
1960         CPP_WTRADITIONAL (pfile).
1961         * cpplex.c (_cpp_lex_token): Don't decide if directives should
1962         be ignored in -traditional mode here.
1963
1964         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
1965         to initialize speccase[] and trigraph_map[].  Delete all
1966         references to pfile->input_speccase.  Always treat '?' as a
1967         special character.  Remove table-initialization code from
1968         _cpp_init_input_buffer.
1969
1970         * cpplib.h (struct cpp_reader): Remove input_speccase field.
1971         * cppinit.c (cpp_cleanup): Don't free input_speccase.
1972
1973 2000-04-01  Richard Henderson  <rth@cygnus.com>
1974
1975         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
1976         (mostlyclean): Likewise.
1977
1978         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
1979         (struct dump_file_info, enum dump_file_index, dump_file): New.
1980         (open_dump_file): Take a dump_file_index not a suffix, and a decl
1981         not a string.  Clean out file if we havn't yet done so.  Do nothing
1982         if the dump isn't enabled.
1983         (close_dump_file): Do nothing if the dump isn't open.  Dump 
1984         graph data if requested.
1985         (dump_rtl, clean_dump_file): Remove.
1986         (compile_file): Don't clean the dump files.  Only finalize .bp dump
1987         if flag_test_coverage or flag_branch_probabilities.  Only finalize
1988         .combine dump if optimizing.  Iterate over dump_file to finalize the
1989         graph dumps.
1990         (rest_of_compilation): Update for open_dump_file/close_dump_file.
1991         Convert all uses of dump_rtl.
1992         (decode_d_option): Iterate over dump_file to implement 'a' and to
1993         locate pass-specific dumps.
1994
1995 2000-04-01  Neil Booth <NeilB@earthling.net>
1996
1997         * cppexp.c: Redefine priority constants.
1998         (_cpp_parse_expr): Replace left and right priority scheme with
1999         single priority logic.  Move LOGICAL to same place as COMPARE.
2000         Remove bogus check for multiple unary +/- operators.
2001
2002 2000-04-01  Neil Booth <NeilB@earthling.net>
2003
2004         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
2005         within the switch statement.  Binary operations break out of
2006         the switch naturally.  '(' tokens handled by forcing
2007         immediate shift.  ')' handled by forcing immediate reduce to
2008         the previous '('.  New error messages.
2009         
2010 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
2011
2012         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
2013         part', it's already in use.  Use %K instead.  Add a return at the
2014         end of what is now %K.
2015         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. 
2016
2017 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2018
2019         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
2020         allocate_dynamic_stack_space.
2021         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
2022         update stack_pointer_delta; do not update arg_size_so_far.
2023         (compute_argument_block_size): Use stack_delta instead of
2024         stack_pointer_pending and arg_size_so_far.
2025         (expand_call): Add sanity checking for stack_pointer_delta;
2026         save and restore stack_pointer_delta for SIB, use
2027         stack_pointer_delta for alignment; do not update arg_space_so_far.
2028         (emit_library_call_value): Use stack_pointer_delta for alignment.
2029         (store_one_arg): Do not update arg_space_so_far.
2030         * explow.c (adjust_stack, anti_adjust_stack): Update
2031         stack_pointer_delta.
2032         (allocate_dynamic_stack_space): Add sanity checking for
2033         stack_pointer_delta.
2034         * expr.c (init_expr, clear_pending_stack_adjust): Clear
2035         stack_pointer_delta.
2036         (emit_push_insn): Update stack_pointer_delta.
2037         * function.h (struct expr_status): Add x_stack_pointer_delta;
2038         remove x_arg_space_so_far.
2039         (arg_space_so_far): Remove.
2040         (stack_pointer_delta): New macro.
2041
2042 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
2043
2044         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
2045         Reorder struct cpp_options and struct cpp_reader for better 
2046         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
2047         takes two args.  Change all 'char' flags to 'unsigned char'.
2048         Move show_column flag into struct cpp_options.  Don't
2049         prototype cpp_options_init.
2050         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
2051         cppinit.c, cpplex.c, cpplib.c:
2052         Replace CPP_OPTIONS (pfile)->whatever with
2053         CPP_OPTION (pfile, whatever), and likewise for
2054         opts = CPP_OPTIONS (pfile); ... opts->whatever;
2055
2056         * cppinit.c (merge_include_chains): Take a cpp_reader *.
2057         Extract CPP_OPTION (pfile, pending) and work with that
2058         directly.
2059         (cpp_options_init): Delete.
2060         (cpp_reader_init): Turn on on-by-default options here.
2061         Allocate the pending structure here.              
2062         (cl_options, enum opt_code): Define these from the same table,
2063         kept in a large macro.  Add -fshow-column and -fno-show-column
2064         options.
2065
2066         * cpperror.c (v_message): If show_column is off, don't print
2067         the column number.
2068
2069         * cppmain.c: Update for new interface.
2070         * fix-header.c: Likewise.
2071
2072 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
2073
2074         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
2075         definition.
2076         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
2077         are passed to any invocation of AR_FOR_TARGET.
2078         (AR_CREATE_FOR_TARGET): New macro.
2079         (AR_EXTRACT_FOR_TARGET): New macro.
2080         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
2081         AR_EXTRACT_FOR_TARGET.
2082         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
2083         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
2084         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
2085         AR_EXTRACT_FOR_TARGET to sub-makes.
2086
2087 2000-03-31  Neil Booth <NeilB@earthling.net>
2088
2089         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
2090         PAREN_INNER_PRIO.
2091         (_cpp_parse_expr): Check for multiple unary +/- operators.
2092         Correct priorities of ':' and '?'.  Treat ')' as having a
2093         value.  Ensure conditional expression is not void.
2094         
2095 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
2096
2097         * alias.c (canon_rtx): Make it global.
2098         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
2099         equality.
2100         * cse.c (struct table_elt): Add canon_exp.
2101         (insert): Clear it.
2102         (invalidate): Canonicalize expressions only once.
2103         * rtl.h (canon_rtx): Declare.
2104
2105 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
2106
2107         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
2108         * alias.c (reg_known_value): Add comments.
2109         (init_alias_analysis): Likewise.
2110         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
2111         address.
2112         (cse_basic_block): Fix typo in comment.
2113         * emit-rtl.c: Include hashtab.h.
2114         (const_int_htab): New variable.
2115         (const_int_htab_hash): New function.
2116         (const_int_htab_eq): Likewise.
2117         (rtx_htab_mark_1): Likewise.
2118         (rtx_htab_mark): Likewise.
2119         (gen_rtx_CONST_INT): Cache all CONST_INTs.
2120         (unshare_all_rtx): Fix formatting.
2121         (init_emit_once): Initialize const_int_htab.
2122         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
2123         address.
2124         * rtl.texi: Document the fact that all CONST_INTs with the same
2125         value are shared.
2126
2127 2000-03-30  Richard Henderson  <rth@cygnus.com>
2128
2129         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
2130
2131 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
2132
2133         * configure.in: Comment out --enable-c-cpplib stanza.
2134         * configure: Regenerate.
2135
2136 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2137
2138         * expr.c (store_constructor): Properly compute displacement and
2139         alignment when offset is variable.
2140
2141         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
2142         cases of alignment in bytes.
2143
2144 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
2145
2146         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
2147         since it is used to generate c-parse.y.
2148         * objc-parse.c, objc-parse.y: Regenerated.
2149
2150         * function.c (expand_function_end): Pass alignment argument to
2151         emit_block_move in bits, not bytes.
2152
2153 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2154
2155         * expr.c (move_by_pieces_ninsns): Fix one more missing align
2156         correction.
2157
2158         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
2159
2160         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
2161         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
2162         * function.c (assign_parms): Likewise.
2163         * integrate.c (expand_inline_function): Likewise.
2164         * stmt.c (expand_decl): Likewise.
2165         (copy_rtx_and_substitute): Likewise.
2166         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
2167         (clear_by_pieces): Fix error in last change.
2168         * emit-rtl.c (init_emit): Set known registers alignment in bits.
2169         * function.h (regno_pointer_align): Now unsigned.
2170         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
2171         is in bits.
2172         * config/i386/i386.c (aligned_operand): Likewise.
2173         * config/sparc/sparc.c (mem_min_alignment): Likewise.
2174         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
2175         (unaligned_memory_operand): Likewise.
2176         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
2177         Also make alignments and sizes unsigned and some whitespace cleanup.
2178         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
2179
2180         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
2181         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
2182         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
2183         (expand_builtin_memset): Likewise, but to clear_storage.
2184         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
2185         (restore_fixed_argument_area): Likewise.
2186         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
2187         (load_register_parameters): Likewise, to emit_group_load.
2188         (expand_call): Likewise, to emit_group_store and emit_block_move.
2189         (emit_library_call_value_1): Likewise, to emit_block_move.
2190         (store_one_arg): Likewise, and to emit_push_insn.
2191         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
2192         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
2193         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
2194         (emit_block_move, emit_group_load, emit_group_store): Likewise.
2195         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
2196         (expand_assigment, store_expr, store_constructor_field): Likewise.
2197         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
2198         (store_constructor, store_field, get_inner_reference): Likewise.
2199         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
2200         (expand_expr, case COMPONENT_REF): Likewise.
2201         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
2202         and positions; reindent code.
2203         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
2204         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
2205         (assign_parms): Likewise to emit_group_store.
2206         * optabs.c (prepare_cmp_insn): Alignment is in bits.
2207         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
2208         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
2209         (expand_return): Likewise to {extract,store}_bit_field.
2210         * stor-layout.c (get_mode_alignment): Minor cleanup.
2211         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
2212         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
2213         
2214 2000-03-29  Nick Clifton  <nickc@cygnus.com>
2215
2216         * config/arm/arm.h: Undo effects of previous delta:
2217         (ASM_SPEC): Do not define.
2218         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
2219
2220         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
2221         typo. 
2222
2223 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
2224
2225         * cppinit.c (cpp_start_read): Call initialize_dependency_output
2226         only after reading in the primary source file.
2227
2228 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
2229
2230         * c-common.c (c_common_nodes_and_builtins): The first parameter to
2231         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
2232         or a reference to a va_list.
2233         * builtins.c (stabilize_va_list): Simplify now we don't have to
2234         work around C array address decay.
2235         * c-typeck.c (convert_for_assignment): Handle assignment to
2236         a reference parameter by taking the address of the RHS.
2237         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
2238         (va_copy): Likewise.
2239         (__va_copy): Likewise.
2240         * ginclude/varargs.h (va_start): Likewise.
2241         (__va_copy): Likewise.
2242
2243 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
2244
2245         * i386/djgpp.h: Remove extraneous "+".
2246
2247         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
2248
2249         * calls.c (expand_call): Fix typo in last change.
2250
2251 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
2252
2253         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
2254         been expanded.
2255
2256 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2257
2258         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
2259         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
2260         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
2261         * tree.c (bit_position, byte_position): Likewise.
2262         * tree.h: Declare new functions.
2263
2264 2000-03-29  Nick Clifton  <nickc@cygnus.com>
2265
2266         * config/arm/arm.c: Minor formatting changes/
2267         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
2268         already defined.
2269         (ASM_SPEC): Define if not already defined.
2270
2271 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
2272
2273         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
2274         _cpp_calc_hash.
2275
2276 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
2277
2278         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
2279         value, don't output it as unsigned.
2280
2281 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
2282
2283         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
2284
2285 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2286
2287         * c-common.c (c_common_nodes_and_builtins): Don't special case
2288         cplus_mode when declaring builtin bzero/bcmp, always avoid
2289         prototype arguments.
2290
2291 2000-03-29  Bruce Korb  <bkorb@gnu.org>
2292
2293         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
2294         to a non-file
2295
2296 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2297
2298         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
2299         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
2300         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
2301         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
2302         (save_fixed_argument_area, restore_fixed_argument_area):
2303         conditionize by #ifdef REG_PARM_STACK_SPACE only.
2304         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
2305         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
2306         (precompute_register_parameters): Avoid #ifdefs on
2307         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
2308         (stire_one_args): Likewise.
2309         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
2310         (emit_library_call_value_1): Likewise.
2311         (compute_argument_block_size): Align to STACK_BOUNDARY only for
2312         ACCUMULATE_OUTGOING_ARGS.
2313         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
2314         value.
2315         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
2316         (use_crosses_set_p): Likewise.
2317         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
2318         #define ACCUMULATE_OUTGOING_ARGS 1.
2319         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
2320         frames.
2321         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
2322         constants.
2323         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
2324         (TARGET_SWITCHES): Add push-args, no-push-args,
2325         accumulate-outgoing-args and no-accumulate-outgoing-args.
2326         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
2327         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
2328         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
2329         and PUSH_ROUNDING.
2330         (emit_push_insn): Likewise.
2331         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
2332         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
2333         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
2334         (STACK_DYNAMIC_OFFSET): Define correctly for both
2335         ACCUMULATE_OUTGOING_ARGS and normal mode.
2336         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
2337         * tm.texi (PUSH_ARGS): Document.
2338         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
2339
2340 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2341
2342         * flags.h (flag_optimize_sibling_calls): Declare.
2343         * calls.c (expand_call): Fail sibcall when
2344         !flag_optimize_sibling_calls
2345         * invoke.texi (flag_optimize_sibling_calls): Document.
2346         * toplev.c (flag_optimize_sibling_calls): New global variable.
2347         (f_options): Add flag_optimize_sibling_calls.
2348         (rest_of_compilation): Conditionize
2349         optimize_sibling_and_tail_recursive_calls by
2350         flag_optimize_sibling_calls.
2351         (main): Set flag_optimize_sibling_calls for -O2.
2352         * stmt.c (expand_return): Conditionize tail recursion by
2353         flag_optimize_sibling_calls.
2354
2355 2000-03-29  Richard Henderson  <rth@cygnus.com>
2356
2357         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
2358         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
2359
2360 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
2361
2362         * except.c (add_eh_table_entry): Mark type_info's as referenced.        
2363
2364 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2365
2366         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
2367         is given.
2368         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
2369         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
2370         * config/rs6000/aix.h: then modified likewise.
2371
2372 2000-03-28  Richard Henderson  <rth@cygnus.com>
2373
2374         * rtl.h: Redistribute enum reg_note documentation. 
2375         Kill trailing whitespace.
2376         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
2377         Kill trailing whitespace.
2378
2379 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
2380
2381         * cppfiles.c (hash_IHASH): Just return i->hash.
2382         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
2383         htab_find_with_hash.
2384         (cpp_read_file): Likewise.
2385         (find_include_file): Likewise.  Properly initialize
2386         ih->nshort.  Share ih->name and ih->nshort if possible.
2387         * cpphash.c (_cpp_calc_hash): New function.
2388         (hash_HASHNODE): Just return h->hash.
2389         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
2390         htab_find_with_hash.
2391         * cpphash.h: Prototype _cpp_calc_hash.
2392         * cppinit.c (initialize_builtins): Provide a valid hash
2393         to _cpp_make_hashnode, using _cpp_calc_hash.
2394
2395         * cpphash.c (collect_expansion): # is not a special character
2396         in object-like macros.  In -traditional mode, /**/ is not
2397         token paste at the beginning or end of the line.
2398         * cpplib.c (do_include, do_import, do_include_next): If
2399         parse_include fails, return immediately.
2400
2401 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
2402
2403         * config/arm/arm.md (return peepholes): Update to reflect the new
2404         call insn patterns.
2405         * config/arm/arm.c (arm_volatile_func): Also check
2406         current_function_nothrow.
2407         (output_return_instruction, output_func_prologue): Use it.
2408         (arm_output_epilogue, arm_expand_prologue): Likewise.
2409
2410 2000-03-27  Tom Tromey  <tromey@cygnus.com>
2411
2412         * gcc.c (handle_braces): In {x*...} case, break out of loop if
2413         switch is found.
2414
2415 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2416
2417         * expr.c (store_constructor): SIZE now signed.
2418         For EXPR_SIZE, don't evaluate size; just needed if constant.
2419         * fold-const.c (fold): Fix a number of cases when folded tree is
2420         wrong type.
2421         * function.c (flush_addressof): Reenable.
2422         * tree.h (flush_addressof): Likewise.
2423         * toplev.c (independent_decode_option): Look at strings_processed.
2424         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
2425
2426 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
2427
2428         * sibcall.c (indentify_call_return_value): Find last call in the chain;
2429         Allow stack adjustment after function call.
2430
2431         * regmove.c (struct csa_memlist): Make mem field rtx *.
2432         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
2433         (try_apply_stack_adjustment): Replace whole MEM rtx.
2434         (combine_stack_adjustments_for_block): Update calls
2435         to record_one_stack_ref.
2436
2437 2000-03-28  Neil Booth  <NeilB@earthling.net>
2438
2439         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
2440         '\\' rather than a null character, so nulls are not special.  Fix
2441         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
2442         speed trigraph conversion.
2443         (_cpp_init_input_buffer): Initialize trigraph map.
2444
2445 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
2446
2447         * config/i386/i386.c (output_387_binary_op): Correct intel
2448         mode assembly output, and add spaces after commas in AT&T
2449         output.  Correct Unixware assembler comment.  Document input
2450         constraints.  Comment fp operations.  Reduce profligate buffer
2451         size.  Remove extraneous abort.  Localize temp var.
2452         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
2453         (output_fix_trunc): Add spaces after commas in assembly output.
2454
2455 2000-03-27  Richard Henderson  <rth@cygnus.com>
2456
2457         * i386-protos.h (ix86_match_ccmode): Declare.
2458         * i386.c (ix86_match_ccmode): New.
2459         (ix86_expand_fp_compare): Update for pattern renames.
2460         (ix86_expand_strlensi_unroll_1): Likewise.
2461         * i386.h (EXTRA_CC_MODES): Add CCZ.
2462         (SELECT_CC_MODE): Use it for EQ/NE zero.
2463         * i386.md (cmpsi_ccz_1): New.
2464         (cmpqi_ccz_1): New.
2465         (*testsi_ccz_1): New.
2466         (testqi_ccz_1): New.
2467         (cmpsi_ccno_1): Rename from cmpsi_0.
2468         (testsi_ccno_1): Rename from testsi_1.
2469         (testqi_ccno_1): Rename from testqi_1.
2470         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
2471         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
2472         (*cmphi_0): Use ix86_match_ccmode.
2473         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
2474         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
2475         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
2476         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
2477         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
2478         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
2479         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
2480         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
2481         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
2482         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
2483         (appropriate peepholes): Likewise.
2484         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
2485         (*subsi_3, *subhi_3, *subqi_3): Remove.
2486         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
2487         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
2488         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
2489         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
2490         (x86_shift_adj_1): Use CCZ.
2491         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
2492
2493 2000-03-27  Stan Cox  <scox@cygnus.com> 
2494
2495         * resource.h (mark_resource_type): New.
2496         * resource.c (find_dead_or_set_registers, mark_target_live_regs, 
2497         find_free_register): Use mark_resource_type.
2498         (mark_set_resources): Change include_delayed_effects
2499         to mark_resource_type.
2500         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, 
2501         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): 
2502         Use mark_resource_type.
2503         
2504 2000-03-27  Richard Henderson  <rth@cygnus.com>
2505
2506         * i386.md (call_pop_0, call_value_pop_0): New.
2507         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
2508         (call_value_pop_1): Likewise.
2509         (call_0, call_value_0): New.
2510         (call_1, call_value_1): Remove constraint from unused arg.
2511
2512 2000-03-27  Nick Clifton  <nickc@cygnus.com>
2513
2514         * invoke.texi (Spec Files): Document new spec % command created by
2515         Tom Tromey's recent patch.
2516
2517 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
2518
2519         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
2520         if not defined.
2521
2522 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2523
2524         * expr.c (expand_assignment): Fix typo in last change.
2525
2526         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
2527
2528 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2529
2530         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
2531         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
2532         and DECL_INLINE if FUNCTION_DECL.
2533         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
2534         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
2535         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
2536         (combine_parm_decls): Likewise.
2537         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
2538         * print-tree.c (print_node): Likewise.
2539         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
2540         DECL_TRANSPARENT_UNION on proper decl types.
2541         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
2542         * stor-layout.c (layout_decl): Only check DECL_PACKED and
2543         DECL_BIT_FIELD of FIELD_DECL.
2544         * tree.h (DECL_RESULT_FLD): New macro.
2545         
2546         * expr.c (expand_assignment): Add code to handle variable-sized
2547         BLKmode case.
2548
2549 2000-03-26  Richard Henderson  <rth@cygnus.com>
2550
2551         * calls.c (expand_call): Pass parms not original exp to
2552         optimize_tail_recursion.  Mind return value instead of looking
2553         for a barrier.
2554         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
2555         call_expr.  Move checks for call_expr and current_function_decl ...
2556         (expand_return): ... here.
2557
2558 2000-03-26  Tom Tromey  <tromey@cygnus.com>
2559
2560         * gcc.c (handle_braces): Recognize `%{<S}' construct.
2561         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
2562         defines.
2563         (process_command): Use them.
2564         (check_live_switch): Likewise.
2565         (give_switch): Skip ignored switches.
2566
2567 2000-03-26  Jan Hubicka  <jh@suse.cz>
2568
2569         * jump.c (jump_optimize_1): Fix typo in elide optimizations
2570         for minimal jump pass test.
2571
2572 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
2573
2574         * integrate.c (function_cannot_inline_p): Do inline functions that
2575         return `void'.
2576
2577 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2578
2579         * stor-layout.c (layout_type, set_sizetype): early_type_list is
2580         now a list of TREE_LIST entries, not types.
2581         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
2582
2583         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
2584         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
2585         int_bit_position.
2586         * config/mips/mips.c (function_arg): Likewise; also remove cast
2587         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
2588         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
2589         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
2590         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
2591         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
2592         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
2593         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
2594         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
2595         num_adjusts now unsigned.
2596         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
2597         * config/sparc/sparc.c (struct function_arg_record_value_parms):
2598         NREGS now unsigned.
2599         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
2600         as is BITPOS variable; use host_integerp and int_bit_position.
2601         (function_arg_record_value_2): Likewise.
2602         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
2603         Variable REGNO now unsigned.
2604         (function_arg_record_value): NREGS now unsigned.
2605
2606 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
2607
2608         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
2609
2610 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2611
2612         * Rework fields used to describe positions of bitfields and
2613         modify sizes to be unsigned and use HOST_WIDE_INT.
2614         * alias.c (reg_known_value_size): Now unsigned.
2615         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
2616         (really_start_incremental_init): Use bitsize_zero_node.
2617         (push_init_level, pop_init_level, output_init_element): Likewise.
2618         Use bitsize_unit_node and bitsize_one_node.
2619         (output_pending_init_elements, process_init_element): Likewise.
2620         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
2621         (make_extraction): Position and length HOST_WIDE_INT and unsigned
2622         HOST_WIDE_INT, respectively.
2623         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
2624         (num_sign_bit_copies): Returns unsigned.
2625         BITWIDTH now unsigned; rework arithmetic.
2626         Remove recursive call from arg to MAX.
2627         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
2628         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
2629         REGNO now unsigned.
2630         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
2631         (find_split_point, expand_compound_operation, make_extraction): LEN
2632         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
2633         (make_field_assignment): Likewise.
2634         (combine_simplify_rtx): Add cast.
2635         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
2636         (force_to_mode): WIDTH now unsigned; add cast.
2637         (if_then_else_cond): SIZE now unsigned.
2638         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
2639         (extended_count): Now returns unsigned.
2640         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
2641         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
2642         (simplify_comparison): MODE_WIDTH now unsigned.
2643         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
2644         (mark_used_regs_combine): Likewise; rework arithmetic.
2645         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
2646         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
2647         (record_promoted_value): REGNO now unsigned.
2648         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
2649         (get_last_value): REGNO now unsigned.
2650         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
2651         (reg_dead_regno, reg_dead_endregno): Now unsigned.
2652         (remove_death): Arg REGNO now unsigned.
2653         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
2654         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
2655         now unsigned.
2656         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
2657         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
2658         (struct cse_reg_info): REGNO now unsigned.
2659         (cached_regno): Now unsigned.
2660         (REGNO_QTY_VALID_P): Add cast.
2661         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
2662         (remove_invalid_regs): Likewise.
2663         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
2664         as are variables END and I.
2665         (get_cse_reg_info, insert): Likewise.
2666         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
2667         (canon_hash): Likewise.
2668         (insert_regs, lookup_for_remove): REGNO now unsigned.
2669         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
2670         New variable RN.
2671         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
2672         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
2673         * emit-rtl.c (subreg_realpart_p): Add cast.
2674         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
2675         (operand_subword_force): Arg I is now unsigned.
2676         * except.c (eh_regs): Variable I is now unsigned.
2677         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
2678         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
2679         length is unsigned HOST_WIDE_INT; likewise for internal variables.
2680         (store_split_bit_field, extract_fixed_bit_field): Likewise.
2681         (extract_split_bit_field, store_bit_field, extract_bit_field):
2682         Likewise.
2683         * expr.c (store_constructor_fields, store_constructor, store_field):
2684         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
2685         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
2686         (do_jump): Likewise.
2687         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
2688         MAX_SIZE is now unsigned.
2689         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
2690         (emit_group_store): Likewise.
2691         (emit_move_insn): I now unsigned.
2692         (store_constructor): Use host_integerp, tree_low_cst, and
2693         bitsize_unit_node.
2694         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
2695         Rework all calculations to use trees and new fields.
2696         * expr.h (promoted_input_arg): Regno now unsigned.
2697         (store_bit_field, extract_bit_field): Adjust types of pos and size.
2698         (mark_seen_cases): Arg is HOST_WIDE_INT.
2699         * flow.c (verify_wide_reg_1): REGNO now unsigned.
2700         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
2701         precisions and alignments are unsigned.
2702         (optimize_bit_field_compare, fold_truthop): Likewise.
2703         (int_const_binop): Adjust threshold for size_int_type_wide call.
2704         (fold_convert): Likewise.
2705         (size_int_type_wide): Make table larger and fix thinko that only
2706         had half of table used.
2707         (all_ones_mask_p, fold): Precisions are unsigned.
2708         * function.c (put_reg_info_stack): REGNO is unsigned.
2709         (instantiate_decl): Size is HOST_WIDE_INT.
2710         (instantiate_virtual_regs): I is unsigned.
2711         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
2712         (promoted_input_arg): REGNO is unsigned.
2713         * function.h (struct function): x_max_parm_reg is now unsigned.
2714         * gcse.c (max_gcse_regno): Now unsigned.
2715         (struct null_pointer_info): min_reg and max_reg now unsigned.
2716         (lookup_set, next_set): REGNO arg now unsigned.
2717         (compute_hash_table): REGNO and I now unsigned.
2718         (handle_avail_expr): regnum_for_replacing now unsigned.
2719         (cprop_insn): REGNO now unsigned.
2720         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
2721         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
2722         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
2723         * hard-reg-set.h (reg_class_size): Now unsigned.
2724         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
2725         * jump.c (mark_modified_reg): I now unsigned; add cast.
2726         (rtx_equal_for_thread_p): Add cast.
2727         * loop.c (max_reg_before_loop): Now unsigned.
2728         (struct_movable): REGNO now unsigned.
2729         (try_copy_prop): REGNO arg unsigned.
2730         (regs_match_p): XN and YN now unsigned.
2731         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
2732         (strength_reduce): Likewise; NREGS also unsigned.
2733         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
2734         * loop.h (struct iv_class): REGNO now unsigned.
2735         (max_reg_before_loop, first_increment_giv, last_increment_giv):
2736         Now unsigned.
2737         * machmode.h (mode_size, mode_unit_size): Now unsigned.
2738         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
2739         * optabs.c (expand_binop): I and NWORDS now unsigned.
2740         (expand_unop): I now unsigned.
2741         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
2742         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
2743         * real.c (significand_size): Now returns unsigned.
2744         * real.h (significand_size): Likewise.
2745         * regclass.c (reg_class_size): Now unsigned.
2746         (choose_hard_reg_mode): Both operands now unsigned.
2747         (record_reg_classes): REGNO and NR now unsigned.
2748         (reg_scan): NREGS now unsigned.
2749         (reg_scan_update): old_max_regno now unsigned.
2750         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
2751         * reload.c (find_valid_class): BEST_SIZE now unsigned.
2752         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
2753         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
2754         Likewise for variable R.
2755         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
2756         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
2757         (find_equiv_reg): Add casts.
2758         (regno_clobbered_p): Arg REGNO now unsigned.
2759         * reload.h (struct reload): NREGS now unsigned.
2760         (refers_to_regno_for_reload_p): Regno args are unsigned.
2761         (regno_clobbered_p): Likewise.
2762         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
2763         (compute_use_by_pseudos): REGNO now unsigned.
2764         (find_reg): I and J now unsigned, new variable K, and change loop
2765         variables accordingly; THIS_NREGS now unsigned.
2766         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
2767         (spill_hard_reg): REGNO arg now unsigned; add casts.
2768         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
2769         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
2770         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
2771         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
2772         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
2773         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
2774         (emit_reload_insns): REGNO now unsigned.
2775         (reload_cse_move2add): Add cast.
2776         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
2777         and rework loop.
2778         * resource.c (mark_referenced_resources, mark_set_resources): New
2779         variable R; REGNO and LAST_REGNO now unsigned.
2780         (mark_target_live_regs): J and REGNO now unsigned.
2781         * rtl.c (mode_size, mode_unit_size): Now unsigned.
2782         * rtl.h (union rtunion_def): New field rtuint.
2783         (XCUINT): New macro.
2784         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
2785         (operand_subword, operand_subword_force): Word number is unsigned.
2786         (choose_hard_reg_mode): Operands are unsigned.
2787         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
2788         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
2789         (regno_use_in, combine_instructions, remove_death): Likewise.
2790         (reg_scan, reg_scan_update): Likewise.
2791         (extended_count): Return is unsigned.
2792         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
2793         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
2794         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
2795         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
2796         (reg_reg_last_1): FIRS and LAST now unsigned.
2797         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
2798         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
2799         now unsigned.
2800         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
2801         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
2802         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
2803         (replace_regs): Arg NREGS now unsigned.
2804         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
2805         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
2806         (simplify_binary_operation): Likewise.
2807         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
2808         THIS_LAST now unsigned.
2809         (cselib_record_set): Add cast.
2810         * ssa.c (ssa_max_reg_num): Now unsigned.
2811         (rename_block): REGNO now unsigned.
2812         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
2813         sizes now unsigned.
2814         (all_cases_count): Just return -1 not -2.
2815         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
2816         Rework tests to use trees whenever possible.
2817         Use host_integerp and tree_low_cst.
2818         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
2819         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
2820         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
2821         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
2822         (smallest_mode_for_size): Likewise.
2823         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
2824         KNOWN_ALIGN is now an alignment, so simplify code.
2825         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
2826         (start_record_layout): Renamed from new_record_layout_info.
2827         Update to new fields.
2828         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
2829         New functions.
2830         (place_union_field): Renamed from layout_union_field.
2831         Update to use new fields in rli.
2832         (place_field): Renamed from layout_field.
2833         Major rewrite to use new fields in rli; pass alignment to layout_decl.
2834         (finalize_record_size): Rework to use new fields in rli and handle
2835         union.
2836         (compute_record_mode): Rework to simplify and to use new DECL fields.
2837         (finalize_type_size): Make rounding more consistent.
2838         (finish_union_layout): Deleted.
2839         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
2840         (layout_type, case RECORD_TYPE): Call new function names.
2841         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
2842         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
2843         (get_best_mode): UNIT is now unsigned; remove casts.
2844         * tree.c (bit_position): Compute from new fields.
2845         (byte_position, int_byte_position): New functions.
2846         (print_type_hash_statistics): Cast to remove warning.
2847         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
2848         (build_index_type): Likewise; make subtype of sizetype.
2849         (build_index_2_type): Pass sizetype to build_range_type.
2850         (build_common_tree_nodes): Use size_int and bitsize_int to
2851         initialize nodes; add bitsize_{zero,one,unit}_node.
2852         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
2853         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
2854         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
2855         (DECL_FIELD_BITPOS): Deleted.
2856         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
2857         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
2858         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
2859         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
2860         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
2861         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
2862         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
2863         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
2864         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
2865         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
2866         (DECL_ALIGN): Adjust to new field in union.
2867         (DECL_OFFSET_ALIGN): New field.
2868         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
2869         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
2870         (union tree_decl): Add struct for both aligns.
2871         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
2872         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
2873         (struct record_layout_info): Rework fields to have offset
2874         alignment and byte and bit position.
2875         (start_record_layout, place_field): Renamed from old names.
2876         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
2877         (byte_position, int_byte_position): Likewise.
2878         (get_inner_reference): Change types of position and length.
2879         * unroll.c (unroll_loop): New variable R; use for some loops.
2880         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
2881         (calculate_giv_inc): Arg REGNO now unsigned.
2882         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
2883         * varasm.c (assemble_variable): Clean up handling of size using
2884         host_integerp and tree_low_cst.
2885         (decode_addr_const): Use byte, not bit, position.
2886         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
2887         use tree_low_cst and int_bit_position.
2888         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
2889         
2890 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
2891
2892         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
2893         (reorder_block_def): New members eff_head and eff_end.
2894         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
2895         (verify_insn_chain): New function.
2896         (skip_insns_between_block): Add code to skip deleted insns.
2897         Check for note before using.
2898         (chain_reorder_blocks): Replace calls to skip_insns_between_block
2899         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
2900         Check for note before using.
2901         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
2902         (fixup_reorder_chain): Restructure, clean up, defect removal.
2903         (reorder_basic_blocks): Remove last_insn and references to it.
2904         Moved insn chain verification code into a new function (see above).
2905         Delete defective code that sets last insn.
2906         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
2907         all blocks.
2908
2909 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2910
2911         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
2912
2913 2000-03-24  Richard Henderson  <rth@cygnus.com>
2914
2915         * tree.c (lang_safe_for_unsave): Remove.
2916         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
2917         allowing for two levels of unsafeness.  Remove lang hook.
2918         * tree.h: Update declarations.
2919         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
2920         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
2921         Always fail sibcalls when there are pending cleanups.
2922
2923 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
2924
2925         * flow.c (propagate_block): When we delete an ADDR_VEC,
2926         also delete the BARRIER following it if there is one.
2927
2928 2000-03-24  Richard Henderson  <rth@cygnus.com>
2929
2930         * builtins.c (expand_builtin_bzero): Convert `length' argument
2931         to sizetype.
2932
2933 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
2934
2935         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
2936         comparison if regno's are equal.
2937         * calls.c (initialize_argument_informat): Add ecf_flags argument.
2938         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
2939         (expand_call): Update caller.
2940         Avoid making a sibling call if argument size of the callee is larger
2941         than argument size of the caller.
2942         Call hard_function_value with outgoing set if in sibcall pass.
2943         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
2944
2945         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
2946         Change LEAF_REGISTERS from an array initializer to actual array
2947         identifier. Move static global variable into the function.
2948         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
2949         sequences for leaf functions.
2950         * global.c (global_alloc): Likewise.
2951         * tm.texi (LEAF_REGISTERS): Update documentation.
2952
2953         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
2954         TARGET_FLAT leaf disabling hack.
2955         (LEAF_REGISTERS): Changed from an array initializer to actual array
2956         identifier to avoid duplication and remove the above hack.
2957         (FUNCTION_OK_FOR_SIBCALL): Define.
2958         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
2959         always like call attribute.
2960         (eligible_for_sibcall_delay): New attribute.
2961         (sibcall): New delay type.
2962         (sibcall, sibcall_value, sibcall_epilogue): New expands.
2963         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
2964         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
2965         * config/sparc/sparc.c (sparc_leaf_regs): New array.
2966         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
2967         New functions.
2968         (output_function_epilogue): Move part of the code into
2969         output_restore_regs.
2970         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
2971         TYPE_SIBCALL.
2972         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
2973         prototypes.
2974
2975         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
2976         until infrastructure is finished.
2977
2978 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
2979
2980         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
2981         (save_parm_insns): Not here.
2982
2983 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2984
2985         * builtins.c (expand_builtin_bzero): New function.
2986         (expand_builtin): Handle bzero.
2987
2988         * builtins.def: Add BUILT_IN_BZERO.
2989
2990         * c-common.c (c_common_nodes_and_builtins): Provide builtin
2991         prototype & function for bzero.
2992
2993 2000-03-23  Michael Meissner  <meissner@redhat.com>
2994
2995         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
2996         change adding TARGET_FP to the TF floating point insns, except for
2997         trunctfsf2, which generates direct calls to truncdfsf2.
2998
2999 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
3000
3001         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
3002         try to protect against middle-end changes that break binary
3003         compatibility.
3004         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
3005
3006 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3007
3008         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
3009
3010 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3011
3012         * calls.c (expand_call): If TARGET is passed by reference and
3013         is readonly, write a CLOBBER.
3014
3015 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3016
3017         * builtins.c (expand_builtin): Handle bcmp.
3018
3019         * builtins.def: Add BUILT_IN_BCMP.
3020
3021         * c-common.c (c_common_nodes_and_builtins): Provide builtin
3022         prototype & function for bcmp.
3023
3024 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
3025
3026         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
3027         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
3028         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
3029
3030 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
3031
3032         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
3033         alternative when using -fp64 -gp32.
3034
3035 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
3036
3037         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
3038         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
3039         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
3040
3041         * frame.h (frame_state): Revert last change.
3042         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
3043         * libgcc2.c (throw_helper): Revert last change.
3044         
3045 2000-03-22  Richard Henderson  <rth@cygnus.com>
3046
3047         * stmt.c (expand_asm_operands): Don't promote the temporary.
3048
3049 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
3050
3051         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
3052         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
3053           c_get_alias_set): Likewise.
3054         * c-decl.c (duplicate_decls): Likewise.
3055         * c-typeck.c (default_conversion,build_unary_op): Likewise.
3056         * calls.c (initialize_argument_information): Likewise.
3057         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
3058         Likewise.
3059         * dwarfout.c (decl_class_context,output_type): Likewise.
3060         * expr.c (get_inner_reference): Likewise.
3061         * fold-const.c (simple_operand_p,fold): Likewise.
3062         * function.c (aggregate_value_p): Likewise.
3063         * stmt.c (expand_asm_operands): Likewise.
3064         * varasm.c (named_section): Likewise.
3065
3066 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
3067
3068         Implement dwarf2 exception handling for the ARM.
3069         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
3070         (DWARF_FRAME_RETURN_COLUMN): Define.
3071         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
3072         REG_FRAME_RELATED_EXPR note.
3073         (emit_sfm): Likewise.
3074         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
3075         * dwarf2out.c (reg_save): Handle saving a register to itself.
3076         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
3077         * except.c (eh_regs): Don't use the static chain reg if it's
3078         callee-saved.
3079         * frame.h (frame_state): Add cfa_saved field.
3080         * frame.c (execute_cfa_insn): Set it.
3081         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in 
3082         the epilogue.
3083         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
3084         Now takes a parm.
3085         (instantiate_virtual_regs): Adjust.
3086         * tm.texi: Adjust.
3087         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
3088         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
3089         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
3090
3091         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
3092         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
3093
3094 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3095
3096         * builtins.def: New file.
3097
3098         * Makefile.in (TREE_H): Depend on builtins.def.
3099
3100         * builtins.c (built_in_names): Use builtins.def.
3101
3102         * tree.h (built_in_function): Likewise.
3103
3104 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
3105
3106         * tree.c (size_in_bytes): Return size_zero_node, not
3107         integer_zero_node.
3108
3109 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
3110
3111         * config/fp-bit.c (pack_d): Correct the case when a denormal
3112         is rounded up and stops being denormal.
3113
3114 2000-03-21  Richard Henderson  <rth@cygnus.com>
3115
3116         * config/alpha/alpha.c (function_arg): Check for void_type_node
3117         before using MUST_PASS_IN_STACK.
3118
3119 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
3120
3121         * regmove.c (combine_stack_adjustments_for_block): Check that
3122         the stack pointer is a valid memory address.
3123
3124 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
3125
3126         * calls.c: re-install Mar 16 emit_library_call merge.
3127
3128 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
3129
3130         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
3131         we cannot be sure that if reload_completed base register will
3132         be properly aligned.
3133
3134 2000-03-21  Richard Henderson  <rth@cygnus.com>
3135
3136         * flow.c (delete_block): Fix typo last change.
3137
3138 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
3139
3140         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
3141         not COMPLETE_TYPE_P, to check the type of the expression.
3142
3143 2000-03-21  Michael Meissner  <meissner@redhat.com>
3144
3145         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
3146         all floating point insns that just tested the macro
3147         TARGET_HAS_XFLOATING_LIBS.
3148         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
3149         used to only use the gprs.
3150
3151 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
3152
3153         * tree.h (COMPLETE_TYPE_P): New macro.
3154         (COMPLETE_OR_VOID_TYPE_P): New macro.
3155         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
3156         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
3157         * c-aux-info.c (gen_type): Use them.
3158         * c-common.c (c_expand_expr_stmt): Likewise.
3159         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
3160         grokdeclarator, grokparms, finish_struct, start_function,
3161         store_parm_decls, combine_parm_decls): Likewise.
3162         * c-parse.y (cast_expr): Likewise.
3163         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
3164         c_size_in_bytes, c_alignof, build_component_ref,
3165         build_indirect_ref, build_array_ref, convert_arguments,
3166         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
3167         * calls.c (initialize_argument_information): Likewise.
3168         * convert.c (convert_to_integer): Likewise.
3169         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
3170         * dwarfout.c (location_or_const_value_attribute,
3171         output_enumeration_type_die, output_structure_type_die,
3172         output_union_type_die, output_type): Likewise.
3173         * expr.c (safe_from_p, expand_expr): Likewise.
3174         * function.c (assign_parms): Likewise.
3175         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
3176         * tree.c (build_array_type, build_function_type,
3177         build_method_type, build_offset_type, build_complex_type): Likewise.
3178         * c-parse.c, c-parse.h: Regenerated.
3179
3180 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3181
3182         * config/c4x/rtems.h: Include config/rtems.h.
3183
3184 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
3185
3186         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
3187         decl is a FUNCTION_DECL
3188
3189 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
3190
3191         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
3192         function uses output registers.  Don't save RP for leaf functions.
3193         Do save RP even if no epilogue.
3194         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
3195         (CALL_USED_REGISTERS): Unmark in registers.
3196         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
3197         to near the middle.
3198
3199 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
3200
3201         * config/rs6000/rs6000.md (bunordered): New expander.
3202         (bordered): New expander.
3203         (buneq): New expander.
3204         (bunge): New expander.
3205         (bungt): New expander.
3206         (bunle): New expander.
3207         (bunlt): New expander.
3208         (bltgt): New expander.
3209  
3210         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
3211         (ccr_bit_negated_p): New function.
3212         (print_operand): For %C, generate appropriate cror for UNEQ,
3213         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
3214
3215 2000-03-20  Andreas Jaeger  <aj@suse.de>
3216
3217         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
3218         warning.
3219
3220         * tree.h (safe_for_unsave): Prototype.
3221
3222 2000-03-20  Richard Henderson  <rth@cygnus.com>
3223
3224         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
3225         (combine_stack_adjustments_for_block): Don't allow sp references
3226         in the side of a set we're not fixing up.
3227         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
3228         after life_analysis.
3229
3230 2000-03-20  Richard Henderson  <rth@cygnus.com>
3231
3232         * calls.c (expand_call): Don't bother generating tail call
3233         sequences if there are pending cleanups.  Use
3234         expand_start_target_temps/expand_end_target_temps to elide
3235         cleanups created during sibcall expansion.
3236
3237 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
3238
3239         * configure.in: Set $IFS to a value if it doesn't already have one
3240         in the --enable-checking handling.
3241         * configure: Regenerate.
3242
3243 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3244
3245         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
3246         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
3247         Regenerated.
3248
3249 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
3250
3251         * jump.c (delete_noop_moves): Remove code attempting to
3252         combine stack adjustments.
3253
3254 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3255
3256         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
3257         * except.c (emit_cleanup_handler): Use them.
3258         (expand_end_all_catch): Likewise.
3259         * function.c (fixup_var_refs): Likewise.
3260         (expand_function_end): Clear catch_clauses_last.
3261         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
3262         * except.h (struct eh_status): New field x_catch_clauses_last.
3263         (catch_clauses_last): New define.
3264
3265         * Makefile.in (tree.o): Depend on HASHTAB_H.
3266         * tree.c: Include hashtab.h.
3267         (struct type_hash): Remove next field.
3268         (TYPE_HASH_SIZE): Remove.
3269         (TYPE_HASH_INITIAL_SIZE): New define.
3270         (type_hash_table): Change type to htab_t.
3271         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
3272         mark_hash_entry): New functions.
3273         (init_obstacks): Allocate type hash.
3274         (type_hash_lookup): Use htab functions.
3275         (type_hash_add, mark_type_hash): Likewise.
3276         (dump_tree_statistics): Call print_type_hash_statistics.
3277
3278 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3279
3280         * rs6000/t-aix41: New file.
3281
3282         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
3283
3284 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
3285
3286         * tm.texi (Driver): Fix typos and tweak entry for
3287         INCLUDE_DEFAULTS.
3288         Move misplaced STRUCT_FORCE_BLK entry ...
3289         (Storage Layout): ... to here.
3290         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
3291
3292 2000-03-19  Richard Henderson  <rth@cygnus.com>
3293
3294         * flow.c (delete_block): Delete the addr_vec along with the block.
3295         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
3296         reference labels.
3297
3298         * fold-const.c (extract_muldiv): Apply type check for defined
3299         overflow to multiply as well as divide.
3300
3301         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
3302
3303 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
3304
3305         * emit-rtl.c (remove_unncessary_notes): Check that all
3306         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
3307         associated NOTE_BLOCK.
3308         * function.h (identify_blocks): Update comments.
3309         (reorder_blocks): Declare.
3310         * function.c (identify_blocks): Don't take paramters.
3311         (reorder_blocks): Don't take parameters.
3312         * loop.h (find_loop_tree_blocks): Remove.
3313         (unroll_block_trees): Likewise.
3314         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
3315         reorder_blocks instead of unroll_block_trees.h
3316         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
3317         * stmt.c (find_loop_tree_blocks): Remove.
3318         (unroll_block_trees): Likewise.
3319         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
3320         in whole-function mode.
3321         * tree.h (reorder_blocks): Remove declaration.
3322
3323         * expr.c: Include intl.h.
3324         * Makefile.in (expr.o): Depend on intl.h.
3325         
3326 2000-03-18  Richard Henderson  <rth@cygnus.com>
3327
3328         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
3329
3330 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
3331
3332         * tree.h (tree_index): Remove enumerals for integer types.
3333         (integer_type_kind): New type.
3334         (integer_types): New variable.
3335         (char_type_node): Adjust.
3336         (signed_char_type_node): Likewise.
3337         (unsigned_char_type_node): Likewise.
3338         (short_integer_type_node): Likewise.
3339         (short_unsigned_type_node): Likewise.
3340         (integer_type_node): Likewise.
3341         (unsigned_type_node): Likewise.
3342         (long_integer_type_node): Likewise.
3343         (long_unsigned_type_node): Likewise.
3344         (long_long_integer_type_node): Likewise.
3345         (long_long_unsigned_type_node): Likewise.
3346         * tree.c (integer_types): New variable.
3347         (init_obstacks): Register it as a root.
3348
3349 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
3350
3351         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
3352         NEXT_INSN. Update last insn in chain.
3353
3354 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
3355
3356         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
3357         with TYPE_DECL_SUPPRESS_DEBUG set.
3358
3359 2000-03-18  Richard Henderson  <rth@cygnus.com>
3360
3361         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
3362
3363 2000-03-18  Richard Henderson  <rth@cygnus.com>
3364
3365         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
3366         care for HALF_PIC_P.
3367         (expander_call_insn_operand): Remove.
3368         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
3369         * i386.h (PREDICATE_CODES): Update.
3370         * i386.md (all call expanders): Remove predicates, remove special
3371         handling for half-pic.
3372         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
3373         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
3374         (sibcall_epilogue): New.
3375
3376 2000-03-17  Richard Henderson  <rth@cygnus.com>
3377
3378         * rtlanal.c (single_set): Reject if the parallel has anything
3379         except SET or USE or CLOBBER.
3380
3381 2000-03-17  Jeff Law  <law@cygnus.com>
3382             Richard Henderson  <rth@cygnus.com>
3383
3384         * Makefile.in (OBJS): Add sibcall.o.
3385         (sibcall.o): New.
3386         * sibcall.c: New file.
3387         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
3388         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
3389         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
3390         Emit sibcall patterns when requested.  Update all callers.
3391         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
3392         elimination seems feasable.
3393         * final.c (leaf_function_p): Sibling calls don't discount being
3394         a leaf function.
3395         * flow.c (HAVE_sibcall_epilogue): Provide default.
3396         (find_basic_blocks_1): Sibling calls don't throw.
3397         (make_edges): Make edge from sibling call to EXIT.
3398         (propagate_block): Don't remove sibcall_epilogue insns.
3399         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
3400         (sibcall_epilogue): New.
3401         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
3402         (identify_blocks_1): Likewise.  Break out from ...
3403         (identify_blocks): ... here.
3404         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
3405         (reorder_blocks): ... here.
3406         (init_function_for_compilation): Zap prologue/epilogue as varrays.
3407         (record_insns): Extend a varray instead of mallocing new memory.
3408         (contains): Read a varray not array of ints.
3409         (sibcall_epilogue_contains): New.
3410         (thread_prologue_and_epilogue_insns): Emit and record
3411         sibcall_epilogue patterns.
3412         (init_function_once): Allocate prologue/epilogue varrays.
3413         * genflags.c (gen_insn): Treat sibcall patterns as calls.
3414         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
3415         Broken out from ...
3416         (save_for_inline_nocopy): ... here.
3417         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. 
3418         Broken out from ...
3419         (expand_inline_function): ... here.
3420         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
3421         (subst_constants): Handle 'n' formats.
3422         * jump.c (jump_optimize_minimal): New.
3423         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
3424         optimizations if it's set.
3425         * rtl.c (copy_rtx): Do copy jump & call for insns.
3426         * rtl.h (struct rtx_def): Document use of jump and call for insns.
3427         (SIBLING_CALL_P): New.
3428         (sibcall_use_t): New.
3429         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
3430         Invoke optimize_sibling_and_tail_recursive_calls.
3431         * tree.c (lang_safe_for_unsave): New.
3432         (safe_for_unsave): New.
3433         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
3434
3435         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
3436         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
3437         (*sibcall_osf_1, *sibcall_value_osf_1): New.
3438
3439 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
3440
3441         * objc/objc-act.c (encode_method_prototype): Pass types, not
3442         PARM_DECLs, to int_size_in_bytes.
3443
3444 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
3445
3446         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
3447
3448         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
3449         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
3450
3451 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3452
3453         * Clean up usages of TREE_INT_CST_LOW.
3454         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
3455         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
3456         Regenerated.
3457         * c-tree.h (min_precision): Move declaration to here.
3458         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
3459         (build_unary_op, add_pending_init): Use bit_position.
3460         (pending_init_member, process_init_element): Likewise.
3461         (really_start_incremental_init, push_init_level, pop_init_level):
3462         Don't make copies of nodes or modify them in place, use consistent
3463         types when tracking positions, and use tree routines computations.
3464         (set_init_index, output_init_element): Likewise.
3465         (output_pending_init_elements, process_init_element): Likewise.
3466         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
3467         tree_low_cst and int_bit_position; also minor cleanup.
3468         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
3469         (print_cst_octal): Precision is unsigned.
3470         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
3471         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
3472         (simple_type_align_in_bits): Result is unsigned int.
3473         Use tree_int_low_cst and host_integerp.
3474         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
3475         (field_byte_offset): Result is HOST_WIDE_INT.
3476         Change types of internal variables so alignments are unsigned int,
3477         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
3478         Use host_integerp, tree_low_cst, and int_bit_position.
3479         (add_bit_offset_attribute): Likewise.
3480         (add_data_member_location_attribute): Use tree_cst_low.
3481         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
3482         (add_bit_size_attribute): Use tree_low_cst.
3483         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
3484         * dwarfout.c: Similar changes to dwarf2out.c.
3485         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
3486         * genoutput.c (n_occurences): Return -1 for null string.
3487         (strip_whitespace): Accept null string and make into function.
3488         (scan_operands): Reflect above changes.
3489         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
3490         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
3491         * ssa.c (rename_registers): Add missing cast of arg to bzero.
3492         * tree.c (int_size_in_bytes): Check for too big to represent.
3493         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
3494         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
3495         New declarations.
3496         (min_precision): Delete from here.
3497         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
3498         and int_bit_position.
3499         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
3500         (encode_method_def): Likewise.
3501         (build_ivar_list_initializer): Use int_bit_position.
3502         (generate_shared_structures): Convert size.
3503         (encode_type, encode_complete_bitfield): Use integer_zerop.
3504         (encode_bitfield): Use tree_low_cst and int_bit_position.
3505         
3506 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3507
3508         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
3509
3510 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3511
3512         * call.c (special_function_p): It is only malloc if it returns
3513         Pmode.
3514
3515 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3516
3517         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
3518         (C33_FLAG, TARGET_C3X): Add macros.
3519         (TARGET_SWITCHES): Add -m33 option.
3520         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
3521         
3522 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3523         
3524         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
3525         (PARALLEL_PACK_FLAG): Delete.
3526         (TARGET_SWITCHES): Update.
3527         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
3528
3529 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3530
3531         * fold-const.c (fold): Fix a few cases when the returned result
3532         is not of the same type as the input.
3533
3534 2000-03-16  Nick Clifton  <nickc@cygnus.com>
3535
3536         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
3537         warning.
3538
3539 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3540
3541         * libgcc2.h: Move prototypes above macros with the same name.
3542         Wrap some function prototypes in the conditional which indicates
3543         whether they are supported, i.e. "BITS_PER_UNIT == 8".
3544
3545 2000-03-16  Richard Henderson  <rth@cygnus.com>
3546
3547         * calls.c: Revert last two changes.
3548
3549 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
3550
3551         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
3552         has exponent 0 is a zero.
3553
3554         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
3555         HASH may already be nonzero.  Add code/mode into hash value
3556         immediately after repeat label.
3557         (cselib_lookup): Don't leave the hash table in an inconsistent
3558         state before a hash lookup operation.
3559
3560 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
3561
3562         * i386.md (all HI and QI mode non-move patterns):  Conditionize
3563         by TARGET_[HQ]IMODE_MATH.
3564         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
3565         x86_promote_qi_regs): Declare.
3566         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
3567         TARGET_PROMOTE_QI_REGS): New macros.
3568         (PROMOTE_MODE): New macro.
3569         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
3570         x86_promote_qi_regs): New global variables.
3571
3572 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
3573
3574         * calls.c (emit_library_call_value_1): Break out from ...; handle
3575         VOIDmode function calls too.
3576         (emit_library_call_value): ... here.
3577         (emit_library_call): Implement by calling emit_library_call_value_1.
3578
3579 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
3580
3581         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
3582         Update arg_space_so_far on stack adjustments.
3583         (emit_library_call, emit_library_call_value): Likewise; take into
3584         account arg_space_so_far and pending_stack_adjust when calculcating
3585         the boundary.
3586
3587 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
3588
3589         * flow.c: Move all basic block reordering code into its own file.
3590         (create_basic_block): Externalize.
3591         * bb-reorder.c: New file. Copy all basic block reordering code from
3592         flow.c to this file.
3593         (reorder_basic_blocks): Fix fencepost error in for-loop.
3594         (reorder_basic_blocks): Remove braces from single statement for-loops.
3595         * basic-block.h: Add declaration for create_basic_block.
3596         * Makefile.in: Add rules for bb-reorder.o.
3597
3598 2000-03-16  Neil Booth  <NeilB@earthling.net>
3599
3600         * cppinit.c (handle_option):  Implement #unassert directive
3601         as -A- command line option.
3602         (print_help):  Update.
3603         * cpptexi.c:  Update.
3604
3605 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
3606
3607         * md.texi (Standard Names): Document `jump'.
3608
3609 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
3610
3611         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
3612         gotos.
3613
3614 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
3615
3616         Merge changes from newppc-branch onto trunk.
3617
3618         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
3619
3620         * rs6000.c (toc_hash_table): Update for new hash table functions.
3621         (toc_hash_function): Likewise.
3622         (toc_hash_eq): Likewise.
3623         (toc_hash_mark_entry): Likewise.
3624         (toc_hash_mark_table): Likewise.
3625         (output_toc): Likewise.
3626         (rs6000_add_gc_roots): Likewise.
3627
3628         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3629
3630         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
3631         (AR_FLAGS_FOR_TARGET): here.  New macro.
3632
3633         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
3634
3635         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
3636         fpmem_operand) Delete.
3637         (xer_operand) New.
3638         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
3639         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
3640         (rs6000_save_machine_status, rs6000_restore_machine_status, 
3641         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove 
3642         references to above variables.
3643         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
3644         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
3645         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
3646         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
3647         (XER_REGNO_P, XER_REGNO): New.
3648         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
3649         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
3650         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to 
3651         XER_REGNO_P.
3652         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
3653         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
3654         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
3655         
3656         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3657
3658         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
3659         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
3660         * rs6000.h: from here.
3661
3662         * rs6000-protos.h (rs6000_select_section): Provide prototype.
3663         (rs6000_select_rtx_section): Likewise.
3664         (rs6000_encode_section_info): Likewise.
3665         (sdata_section): Likewise.
3666         (sdata2_section): Likewise.
3667         (sbss_section): Likewise.
3668         * sysv4.h (rs6000_select_section): Delete prototype.
3669         (rs6000_select_rtx_section): Likewise.
3670         (rs6000_encode_section_info): Likewise.
3671         (sdata_section): Likewise.
3672         (sdata2_section): Likewise.
3673         (sbss_section): Likewise.
3674         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
3675
3676         * sysv4.h: Delete various unnecessary #undef's and put a comment
3677         on the remaining ones.
3678         Change various comments according to coding standard.
3679
3680         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
3681
3682         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO, 
3683         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
3684         (CR0_REGNO_P) Remove.
3685         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand, 
3686         setup_incoming_varargs, mtcrf_operation, print_operand, 
3687         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): 
3688         Use the above macros.
3689
3690         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
3691
3692         * config/rs6000/rs6000.md: Added a new alternative for each
3693         pattern that had a 'x' alternative but no 'y' alternative.
3694         Added a new split for each of the above patterns.
3695
3696         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
3697
3698         * aix41.h (ASM_CPU_SPEC): Delete.
3699         (CPP_CPU_SPEC): Delete.
3700
3701         * aix.h (RS6000_OUTPUT_BASENAME): Define.
3702         (ASM_OUTPUT_LABEL): Define.
3703         (ASM_GLOBALIZE_LABEL): Define.
3704         (STRIP_NAME_ENCODING): Define.
3705         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
3706         (STRIP_NAME_ENCODING): Don't define.
3707         (ASM_OUTPUT_LABEL): Don't define.
3708         (ASM_GLOBALIZE_LABEL): Don't define.
3709         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
3710         names, and ASM_OUTPUT_LABEL to output labels, rather than
3711         asm_fprintf.
3712         (ASM_OUTPUT_LABEL): Define.
3713         (ASM_OUTPUT_INT): Use assemble_name.
3714         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
3715         (STRIP_NAME_ENCODING): Don't undefine first.
3716         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
3717         ELF.
3718         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
3719         specified with 'asm' even with -fleading-underscore.
3720         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
3721         (output_epilog): Likewise.
3722         (output_toc): Likewise. 
3723         * tramp.asm: Handle -fleading-underscore correctly.
3724
3725         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
3726         -mminimal-toc.
3727         (nonlocal_goto_receiver): Delete.
3728         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
3729
3730         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
3731         (SET_ASM_OP): Define.
3732         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
3733
3734         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
3735         (ASM_LONG): Define.
3736
3737         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
3738         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
3739
3740         * rs6000.h: Add 'u' to more constants.
3741
3742         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
3743
3744         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
3745
3746         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
3747
3748         * rs6000.c (reg_or_u_cint_operand): New function.
3749         (logical_operand): Handle 64-bit hosts.
3750         (logical_u_operand): New function.
3751         (non_logical_cint_operand): Handle 64-bit hosts.
3752         (non_logical_u_cint_operand): New function.
3753         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
3754         (PREDICATE_CODES): Define new functions.
3755         * rs6000-protos.h: Declare new functions.
3756         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
3757         (movdi_64): Bracket code intended for 64-bit hosts.  Create
3758         CONST_DOUBLE for 32-bit values.
3759         (scc insns): Generate DImode compares.
3760         (mfcr insns): Create DImode versions.
3761         (sge matchers): New patterns.
3762         
3763         2000-02-15  Gabriel Paubert  <paubert@iram.es>
3764
3765         * rs6000.md: Correct instructions length attributes and
3766         constraints on unsigned compare instructions.
3767         (*ne0): Disable for PowerPC64.
3768
3769         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
3770
3771         * rs6000.c (output_function_profiler): Use .long for a 32-bit
3772         quantity, fix profile1.C test failure under -fPIC.
3773
3774         * rs6000.c: Add 'u' to many constants to suppress warnings.
3775         (constant_pool_expr_1): Make static.
3776         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
3777         * rs6000.h: Add 'u' to many constants to suppress warnings.
3778
3779         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
3780         for the start of the TOC, instead of LCTOC..0.
3781         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
3782         of the TOC.
3783         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
3784         (load_toc_aix_di): Use LCTOC..1.
3785
3786         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
3787         * rs6000.c (rs6000_legitimize_address): New function from
3788         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
3789         symbols in the constant pool that really are TOC references.
3790         (print_operand_address): For ELF, write TOC offsets under
3791         -fPIC as subtractions in the insn.
3792         (output_toc): For ELF, define symbols in TOC as normal labels,
3793         to match RTL.
3794         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
3795         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
3796         (create_TOC_reference): Prototype only when RTX_CODE is defined.
3797         * rs6000.md (movsi): Only use create_TOC_reference on
3798         symbols in the constant pool that really are TOC references.
3799
3800         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
3801         * rs6000.c (rs6000_reorg): Delete.
3802         * rs6000-protos.h (rs6000_reorg): Delete.
3803
3804         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
3805
3806         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
3807
3808         * aix.h (SETUP_FRAME_ADDRESSES): Define.
3809         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
3810         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
3811         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
3812         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
3813         rs6000_aix_emit_builtin_unwind_init.
3814         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call 
3815         rs6000_emit_eh_toc_restore on AIX.
3816         (return_eh_si): Use r2.
3817         (return_eh_di): Use r2.
3818
3819         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
3820         since we're breaking binary compatibility anyway.
3821
3822         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
3823
3824         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
3825         constant_pool_expr_p): Declare them.
3826         (constant_pool_expr_p): Declare it.
3827         * config/rs6000/rs6000.c (toc_label_name): Define.
3828         (rs6000_override_options): Set toc_label_name.
3829         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
3830         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
3831         uses_TOC): New functions.
3832         (print_operand): Delete old '*' case.
3833         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
3834         and strip off rtl for TOC before calling output_addr_const.
3835         (rs6000_emit_load_toc_table): Use toc_label_name.
3836         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
3837         the default.
3838         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
3839         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
3840         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
3841         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
3842         into explicit TOC_REGISTER offsets.
3843         (TOC_REGISTER): New macro.
3844         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under 
3845         TARGET_TOC to reference TOC_REGISTER.
3846         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
3847         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call  
3848         uses_TOC before emitting label references.
3849
3850         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
3851
3852         * rs6000.md (stack_tie): Fix warning.
3853
3854         * eabi-ctors.c: Use 'asm' names for the start/end variables,
3855         to handle -fleading-underscore.
3856         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
3857         (USER_LABEL_PREFIX): New macro.
3858         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
3859         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
3860         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
3861         call-linux can use the same multilibs.
3862         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
3863         and call-linux multilibs.  Do multilib with -fleading-underscore.
3864         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
3865         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
3866         to call-aix.
3867
3868         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
3869         have MASK_SOFT_FLOAT set.
3870         (CPP_FLOAT_DEFAULT_SPEC): New macro.
3871         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
3872         CPP_FLOAT_DEFAULT_SPEC.
3873
3874         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
3875         * rs6000.md: Whitespace change.
3876         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
3877         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
3878
3879         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
3880
3881         * rs6000.md (eh_epilogue): New expander.
3882         (eh_reg_restore): New expand/split/insn combination.
3883         (return_eh_si): New insn.
3884         (return_eh_di): New insn.
3885
3886         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
3887         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
3888         * eabi-ctors.c (__do_global_ctors): Register this object's
3889         frame.  Clean up.  Call atexit() after the constructors.
3890         (__do_global_dtors): Deregister this object's frame.  Clean up.
3891         Allow for recursive calls to exit().
3892         * rs6000.c (fixuplabelno): New variable.
3893         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
3894         TARGET_RELOCATABLE, it slows down exec() under linux.
3895         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
3896
3897         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
3898         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
3899         (ASM_OUTPUT_DWARF_DELTA2): New macro.
3900         (ASM_OUTPUT_DWARF_DELTA4): New macro.
3901         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
3902         (ASM_OUTPUT_DWARF_ADDR): New macro.
3903         (ASM_OUTPUT_DWARF_DATA4): New macro.
3904         (ASM_OUTPUT_DWARF_DATA2): New macro.
3905         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
3906         (ASM_OUTPUT_DWARF_OFFSET): New macro.
3907         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
3908
3909         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
3910
3911         * rs6000.c (rs6000_sr_alias_set): New variable.
3912         (rs6000_override_options): Initialise rs6000_sr_alias_set.
3913         (rs6000_emit_stack_tie): New function.
3914         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
3915         in a way that dwarf2out can understand.
3916         (rs6000_frame_related): New function.
3917         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
3918         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
3919         Use rs6000_emit_stack_tie when needed.
3920         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
3921         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
3922         * rs6000.md (stack_tie): New insn.
3923         (return_internal_si): Allow return value to be in the count
3924         register.
3925         (return_internal_di): Likewise.
3926
3927         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
3928
3929         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
3930
3931         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
3932
3933         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
3934
3935         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
3936
3937         * rs6000.md (stmw): Use the right POWER opcode.
3938         (lmw): Likewise.
3939
3940         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3941
3942         * rs6000-protos.h: New file.
3943
3944         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
3945         
3946         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
3947         warnings.
3948         
3949         * sysv4.h: Likewise.
3950
3951         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
3952
3953         * ../../configure.in: Delete powerpcle-*-winnt*
3954         and powerpcle-*-pe|powerpcle-*-cygwin*.
3955         * ../../configure: Regenerated.
3956         * cygwin.h: Delete.
3957         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
3958         (TARGET_WINDOWS_NT): Delete.
3959         (ABI_NT): Delete.
3960         (CALL_NT_DLLIMPORT): Delete.
3961         Delete NT-specific code.
3962         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
3963         * win-nt.h: Delete.
3964         * t-winnt: Delete.
3965         * nt-ci.asm: Delete.
3966         * nt-cn.asm: Delete.
3967         * ntstack.asm: Delete.
3968
3969         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3970
3971         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
3972         (ASM_FILE_START): Likewise.
3973         (ASM_DECLARE_FUNCTION_NAME): Likewise.
3974         (ASM_OUTPUT_LABELREF): Likewise.
3975         (ASM_OUTPUT_SKIP): Likewise.
3976         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
3977         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
3978         (ASM_OUTPUT_CASE_LABEL): Likewise.
3979         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
3980         (ASM_OUTPUT_ASCII): Likewise.
3981
3982         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
3983
3984         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
3985         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
3986         increment rs6000_pic_labelno here.
3987         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
3988         and increment rs6000_pic_labelno here.
3989
3990         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
3991
3992         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
3993         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
3994         allocation knows (reg) is dead before the insn.
3995
3996         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
3997
3998         * rs6000.md (movsi_to_cr): Correct typo in output template.
3999
4000         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
4001
4002         * rs6000.c (rs6000_pic_labelno): Always define.
4003         (rs6000_pic_func_labelno): Delete.
4004         (lmw_operation): Check for a zero base register,
4005         which doesn't mean what we want.
4006         (stmw_operation): New function.
4007         (print_operand): Define new 'l' modifier.
4008         (rs6000_stack_info): We must save all 64 bits of the registers
4009         if TARGET_POWERPC64.
4010         (rs6000_output_load_toc_table): Delete.
4011         (rs6000_emit_load_toc_table): New function.
4012         (rs6000_allocate_stack_space): Delete.
4013         (rs6000_emit_allocate_stack): New function.
4014         (rs6000_emit_prologue): New function.
4015         (output_prolog): Use rs6000_emit_prologue.
4016         (rs6000_emit_epilogue): Change a few variable names to be
4017         more accurate.  Restore all 64 bits of the registers if
4018         TARGET_POWERPC64.  Only restore the FP registers which were used
4019         if they are being saved/restored one-at-a-time.
4020         (output_mi_thunk): Delete inefficient code generation.
4021         (output_function_profiler): Don't use rs6000_output_load_toc_table.
4022         * rs6000.h: Declare rs6000_emit_load_toc_table,
4023         rs6000_allocate_stack_space, stmw_operation.  Don't declare
4024         rs6000_output_load_toc_table.
4025         * rs6000.md (elf_high): Allow register 0, but discourage it
4026         heavily.
4027         (elf_low): Support loading into register 0.
4028         (load_toc_aix_si): New pattern.
4029         (load_toc_aix_di): New pattern.
4030         (load_toc_v4_pic_si): New pattern.
4031         (load_toc_v4_pic_di): New pattern.
4032         (load_toc_v4_PIC_1): New pattern.
4033         (load_toc_v4_PIC_1b): New pattern.
4034         (load_toc_v4_PIC_2): New pattern.
4035         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
4036         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
4037         (prologue): New expander.
4038         (movesi_from_cr): New pattern.
4039         (stmw): New pattern.
4040         (save_fpregs_si): New pattern.
4041         (save_fpregs_di): New pattern.
4042
4043         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
4044
4045         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
4046         (movdi): Likewise.
4047         (movhi): Likewise.
4048         (movqi): Likewise.
4049
4050         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
4051
4052         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
4053         at present.
4054         (movsi_got_internal): Likewise.
4055         (movsi_got_internal+1): Likewise.
4056         (set_sp): 'unspec 7' does a SImode clobber.
4057
4058         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
4059
4060         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
4061         allocate a stack temporary.
4062         (floatsidf2_internal): Likewise.
4063         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
4064         with unspec.
4065         (floatunssidf2): Don't use the fpmem "register", just
4066         allocate a stack temporary.
4067         (floatunssidf2_internal): Likewise.
4068         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
4069         with unspec.
4070         (floatsidf2_loadaddr): Delete.
4071         (floatsidf2_store1): Delete.
4072         (floatsidf2_store2): Delete.
4073         (floatsidf2_load): Delete.
4074         (fix_truncdfsi2): Don't use the fpmem "register", just
4075         allocate a stack temporary.
4076         (fix_truncdfsi2_internal_si): Delete.
4077         (fix_truncdfsi2_internal_di): Delete.
4078         (fix_truncdfsi2_internal): New insn.
4079         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
4080         (fix_truncdfsi2_store): Delete.
4081         (fix_truncdfsi2_load): Delete.
4082         (fctiwz): Produce gen_fctiwz.
4083
4084         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
4085
4086         * eabi.h (INVOKE__main): Define.
4087         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
4088         specially.
4089         (rs6000_emit_prologue): Likewise.
4090         * rs6000.h (struct rs6000_stack): Don't keep track of whether
4091         this is the main program.
4092
4093         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
4094
4095         * rs6000.c (rs6000_va_arg): Delete some unused variables.
4096
4097         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
4098
4099         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
4100         goes after the argument.
4101
4102         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
4103
4104         * rs6000.md: Document 'unspec' values used.
4105         (epilogue): New expander.
4106         (movesi_to_cr_one): New expander.
4107         (movesi_to_cr and following): New pattern.
4108         (lmw): New pattern.
4109         (return_internal_si): New pattern.
4110         (return_internal_di): New pattern.
4111         (return_and_restore_fpregs_si): New pattern.
4112         (return_and_restore_fpregs_di): New pattern.
4113         * rs6000.h: Declare new functions.
4114         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
4115         rather than rs6000_calls_p.
4116         (rs6000_makes_calls): Delete.
4117         (lmw_operation): New function.
4118         (mtcrf_operation): New function.
4119         (rs6000_emit_epilogue): New function.
4120         (output_epilog): Call rs6000_emit_epilogue and final if
4121         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
4122
4123         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
4124
4125         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
4126         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
4127         * aix.h (SUBTARGET_SWITCHES): Document switches.
4128         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
4129         sched-prolog and sched-epilog the same.  Document all the
4130         switches.
4131         (TARGET_OPTIONS): No longer allow -mdebug-.
4132
4133         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
4134
4135         * rs6000.h (ASM_FILE_END): Move to aix.h.
4136         (EXTRA_SECTIONS): Move to aix.h.
4137         (READONLY_DATA_SECTION): Move to aix.h.
4138         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
4139         (SELECT_SECTION): Move to aix.h.
4140         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
4141         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
4142         (LINK_REGISTER_REGNUM): New definition.
4143         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
4144         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
4145         AIX and SVR4.
4146         * sysv4.h: Delete the code between the inclusion of rs6000.h
4147         and svr4.h.
4148         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
4149         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
4150         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
4151         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
4152         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
4153         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
4154         (fix_truncdfsi2_internal_di): New pattern.
4155         (fix_truncdfsi2_store): The second arg here is Pmode too.
4156         (fix_truncdfsi2_load): The second arg here is Pmode too.
4157         (tablejumpdi): Now that switch tables hold only SImode values,
4158         gcc needs to know how to add them to the pc which is DImode.
4159         * rs6000.c (rs6000_stack_info): Use symbolic name for 
4160         LINK_REGISTER_REGNUM.
4161         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
4162         (output_toc): Delete unused variables s1 and s2.
4163         (output_ascii): Use fputs not fprintf on a variable string.
4164
4165         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
4166
4167         * rs6000.c (processor_target_table): Add power3 as alias for 630.
4168         * aix43.h: Revert Aug 2 change.
4169         (HAS_INIT_SECTION): Define, not visible yet.
4170         (LD_INIT_SWITCH): Define, not visible yet.
4171         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
4172
4173         2000-01-04  Joel Sherrill (joel@OARcorp.com>
4174
4175         * config/rs6000/rtems.h: Include config/rtems.h.
4176
4177         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
4178
4179         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
4180         (SLOW_UNALIGNED_ACCESS): Define.
4181         (CASE_VECTOR_MODE): Always use 32-bit offsets.
4182         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
4183         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
4184         (toc_section): Likewise and .toc pseudo-op.
4185         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
4186         64-bit mode.
4187         (TEXT_SECTION_ASM_OP): Likewise.
4188         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
4189         32-bit offsets.
4190
4191         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
4192
4193         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
4194         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
4195         compiling libgcc2.
4196         
4197         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4198
4199         * rs6000.h: Move more stuff from here...
4200         * aix.h: to here.
4201         * sysv4.h: Cleanup accordingly.
4202         * netware.h: Likewise
4203
4204         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4205
4206         * rs6000.h: Continue cleanup.
4207         * aix.h: Likewise.
4208         * lynx.h: Likewise.
4209         * netware.h: Likewise.
4210         * sol2.h: Likewise.
4211         * sysv4.h: Likewise.
4212         * win-nt.h: Likewise.
4213
4214         * rs6000.h (TARGET_SWITCHES): Add descriptions.
4215         (TARGET_OPTIONS): Likewise.
4216
4217         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
4218         (SUBTARGET_OPTIONS): Likewise.
4219
4220         * rs6000.md: Fix compile time warnings.
4221
4222         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
4223
4224         vxworks patches from the Cygnus tree originally by
4225         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
4226         <vmakarov@cygnus.com>.
4227         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
4228         (ENDFILE_SPEC): Likewise.
4229         (LIB_VXWORKS_SPEC): New macro.
4230         (STARTFILE_VXWORKS_SPEC): New macro.
4231         (ENDFILE_VXWORKS_SPEC): New macro.
4232         (LINK_START_VXWORKS_SPEC): New macro.
4233         (LINK_OS_VXWORKS_SPEC): New macro.
4234         (CPP_OS_VXWORKS_SPEC): New macro.
4235         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
4236         * vxppc.h: Rewrite to use proper configuration method.
4237         * vxppcle.h: New file.
4238         * ../../configure.in: Add powerpcle-wrs-vxworks*.
4239         * ../../configure: Rebuilt.
4240
4241         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
4242
4243         Lots of changes to rs6000.h, sysv4.h, aix.h,
4244         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
4245         with the aim that rs6000.h is the first header
4246         included and the others override it.
4247         * aix.h: New file.
4248
4249         * x-aix41-gld: Remove.  
4250         * x-aix43: Remove.
4251         * x-aix41: Remove target-specific switches, and don't specify
4252         -Wl,-bbigtoc as we don't need it any more.
4253         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
4254         Use t-aix43 for AIX 4.3 and above.
4255         * ../../configure: Regenerated.
4256
4257         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
4258         options, that don't do anything yet.
4259         (MASK_SCHED_PROLOG): New macro.
4260         (MASK_SCHED_EPILOG): New macro.
4261         (TARGET_SCHED_PROLOG): New macro.
4262         (TARGET_SCHED_EPILOG): New macro.
4263
4264         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
4265
4266         * rs6000.c: Correct comment, the `minimal' TOCs are actually
4267         one per translation unit, not one per function.
4268         (output_toc): Also do duplicate constant elimination
4269         for per-translation-unit TOCs.
4270
4271         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
4272         a comment explaining _exactly_ when this pattern gets used.
4273         (builtin_setjmp_receiver): New pattern for better clarity.
4274         (init_v4_pic): Move it into a section dealing with TOC registers.
4275
4276         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
4277
4278         * rs6000.c (toc_hash_table): New variable.
4279         (rs6000_hash_constant): New function.
4280         (toc_hash_function): New function.
4281         (toc_hash_eq): New function.
4282         (toc_hash_mark_entry): New function.
4283         (toc_hash_mark_table): New function.
4284         (output_toc): Don't output duplicate TOC entries in
4285         a single file.
4286         (rs6000_add_gc_roots): Add the hash table as a GC root.
4287         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
4288         where they clearly shouldn't be.  This may need to be fixed
4289         later when there is a GNU ar for AIX.
4290         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
4291         Don't define BOOT_LDFLAGS as it is now not necessary.
4292
4293         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
4294
4295         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
4296         for va_list on AIX.  Use unsigned_char_type_node rather than
4297         constructing our own version on svr4.
4298
4299         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
4300
4301         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
4302         since patently it's not.
4303
4304         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
4305
4306         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
4307         define_expand/define_insn pair, and handle restore of the
4308         SVR4 -fpic register.
4309
4310 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
4311
4312         * acconfig.h (HAVE_GAS_WEAK): New define.
4313         * configure.in (assembler weak support): Check for .weak support.
4314         * config.in, configure: Rebuilt.
4315         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
4316         HAVE_GAS_WEAK is defined.
4317
4318 2000-03-15  Nick Clifton  <nickc@cygnus.com>
4319
4320         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
4321         asm_fprintf().
4322
4323 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
4324
4325         * cppfiles.c (open_include_file): New function.
4326         (find_include_file, cpp_read_file): Use it.
4327
4328 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
4329
4330         * cpphash.c (dump_hash_helper): Take the slot, not the element.
4331
4332 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
4333
4334         * flow.c (verify_flow_info): Check for unconditional return.
4335
4336 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
4337
4338         * config/ia64/ia64.md (restore_stack_nonlocal): New.
4339         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
4340         (__ia64_restore_stack_nonlocal): New.
4341         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
4342
4343 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4344
4345         * cpphash.c (collect_formal_parameters): Do not complain about
4346         parameter names that just start with `__VA_ARGS__'.
4347
4348 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
4349
4350         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
4351         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
4352         * i386.c (pentiumpro_cost): Set mul cost to 4.
4353         (x86_use_movx): Set for PPro.
4354
4355 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
4356
4357         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
4358         STACK_BOUNDARY for empty frames now.
4359
4360 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
4361
4362         * stor-layout.c (layout_union): Remove.
4363         (layout_union_field): New function, split out from layout_union.
4364         (finish_union_layout): Likewise.
4365         (layout_field): Handle unions by calling layout_union_field.
4366         (finish_record_layout): Handle unions.
4367         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
4368         QUAL_UNION_TYPE handling.
4369
4370 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
4371
4372         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
4373         end of basic block is jump_insn, not barrier; use create_basic_block
4374         instead of creating basic block by hand.
4375
4376 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
4377
4378         * flow.c (reorder_basic_blocks): Account for barriers when writing
4379         over NEXT_INSN (last_bb->end).
4380         (verify_flow_info): Add check for missing barriers.
4381
4382 2000-03-14  Greg McGary  <gkm@gnu.org>
4383
4384         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
4385         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
4386         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
4387         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
4388         __unbounded, __unbounded__): New keywords.
4389         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
4390         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
4391         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
4392
4393 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
4394
4395         * cselib.h: New file.
4396         * alias.c: Include "cselib.h".
4397         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
4398         MEMs as two new arguments.
4399         (get_addr): New static function.
4400         (find_base_term): Handle VALUEs.
4401         (memrefs_conflict_p): Likewise.
4402         (true_dependence): Call get_addr on the addresses.
4403         Call fixed_scalar_and_varying_struct_p with addresses that have been
4404         passed through get_addr and canon_rtx.
4405         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
4406         with true_dependence.
4407         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
4408         * loop.c: Include "cselib.h".
4409         (load_mems): Process extended basic block that enters the loop with
4410         cselib.  Use that information to change initialization of the shadow
4411         register so that a constant equivalence is seen by later passes.
4412         * reload1.c: Include "cselib.h".
4413         (reload_cse_invalidate_regno): Delete function.
4414         (reload_cse_mem_conflict_p): Likewise.
4415         (reload_cse_invalidate_mem): Likewise.
4416         (reload_cse_invalidate_rtx): Likewise.
4417         (reload_cse_regno_equal_p): Likewise.
4418         (reload_cse_check_clobber): Likewise.
4419         (reload_cse_record_set): Likewise.
4420         (reg_values): Delete static variable.
4421         (invalidate_regno_rtx): Likewise.
4422         (reload_cse_delete_noop_set): New static function.
4423         (reload_cse_simplify): New static function, broken out of
4424         reload_cse_regs_1.
4425         (reload_cse_noop_set_p): Delete unused argument INSN.
4426         Just call rtx_equal_for_cselib_p on set source and destination.
4427         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
4428         reload_cse_delete_noop_set.  Delete code to keep track of values; use
4429         cselib functions instead.  Delete code to push/pop obstacks.
4430         (reload_cse_simplify_set): Use cselib to find equivalent values.
4431         Delete code to push/pop obstacks.
4432         (reload_cse_simplify_operands): Likewise.
4433         * rtl.def (VALUE): New rtx code.
4434         * rtl.h (union rtunion_def): New elt rt_cselib.
4435         (X0CSELIB, CSELIB_VAL_PTR): New macros.
4436         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
4437         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
4438         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
4439         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
4440         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
4441         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
4442         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
4443         cselib_record_set, cselib_record_sets): New static functions.
4444         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
4445         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
4446         references_value_p): New functions.
4447         (MAX_USELESS_VALUES, REG_VALUES): New macros.
4448         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
4449         n_useless_values, reg_values, callmem, cselib_obstack,
4450         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
4451         New static variables.
4452         * varray.h (union varray_data_tag): New elt te.
4453         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
4454         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
4455         dependencies.
4456
4457 2000-03-14  Nick Clifton  <nickc@cygnus.com>
4458
4459         * gcc.c (do_spec_1): Catch the case where %* is used in a
4460         substitution pattern, but it has not been initialised.
4461         Issue a meaningful error message if an unrecognised operator
4462         is encountered in a spec string.
4463
4464 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
4465
4466         * function.c (prepare_function_start): Correctly initialize
4467         cfun->stack_alignment_needed.
4468
4469 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
4470
4471         * cppfiles.c (find_include_file): Don't assume nshort is a
4472         substring of name.
4473
4474 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
4475
4476         * configure.in (hppa configurations): Add pa32-regs.h to the
4477         list of tm files as appropriate.
4478         * configure: Rebuilt.
4479         * pa.c (compute_frame_size): Remove explicit knowledge about FP
4480         register numbering.
4481         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
4482         (fmpyaddoperands, fmpysuboperands): Likewise.
4483         * pa.h: Remove various definitions which depend on knowing
4484         how registers are numbered.
4485         * pa32-regs.h: New file with PA32 register numbering specific
4486         definitions.
4487
4488 2000-03-14  Richard Henderson  <rth@cygnus.com>
4489
4490         * regmove.c (combine_stack_adjustments): New.
4491         (stack_memref_p, single_set_for_csa): New.
4492         (free_csa_memlist, record_one_stack_memref): New.
4493         (try_apply_stack_adjustment): New.
4494         (combine_stack_adjustments_for_block): New.
4495         * rtl.h (combine_stack_adjustments): Declare.
4496         * toplev.c (rest_of_compilation): Call it.
4497
4498         * i386.md: Revert 2000-01-16 change.
4499
4500 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4501
4502         * gccbug.in: Add web category, gcc specific classes.
4503
4504 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
4505
4506         * stor-layout.c (finalize_record_size): Fix typo.
4507
4508 2000-03-14  Stan Shebs  <shebs@apple.com>
4509
4510         * c-typeck.c (c_alignof): Error on incomplete types.
4511         * extend.texi (Alignment): Document this.
4512
4513 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
4514
4515         * cppfiles.c: Include mkdeps.h.
4516         (find_include_file, read_include_file): Remove _cpp_ prefix
4517         from name, make static.
4518         (_cpp_execute_include): New function, broken out of
4519         do_include.
4520
4521         * cpplib.c: Don't include mkdeps.h.
4522         (struct directive): Remove type field. Reorder entries.  The
4523         function takes only one argument.
4524         (struct if_stack): Make type field an int.
4525         (directive_table): Rename to dtable.  Generate it, the
4526         prototypes of the directive handlers, and the enum for the
4527         directive numbers, from a template macro.
4528         (do_ifndef, do_include_next, do_import): New functions.
4529         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
4530         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
4531         do_ident, do_assert, do_unassert, do_sccs): Take only one
4532         argument.
4533         (do_sccs): Define always, but alter behavior based on
4534         SCCS_DIRECTIVE.
4535         (_cpp_handle_directive, consider_directive_while_skipping):
4536         Restructure for new directive table layout.
4537
4538         (pass_thru_directive): Take a directive number, not a pointer
4539         to a struct directive.
4540         (parse_include): New function, broken out of do_include.
4541         (do_include, do_import, do_include_next): Use parse_include
4542         and _cpp_execute_include.
4543         (do_elif, do_else): Test for T_ELSE specifically when checking
4544         for #elif/#else after #else.
4545         (parse_ifdef): New function, broken out of do_ifdef.
4546         (validate_else): Expect a name arg without a leading #.
4547         (if_directive_name): Delete.
4548         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
4549         directive handlers with only one argument.
4550
4551         * cpphash.h: Update prototypes.
4552         (enum node_type): Remove entries for directives.
4553         * Makefile.in: Update dependencies.
4554
4555         * cpphash.c (dump_hash_helper): Only dump nodes of type
4556         T_MACRO.  Emit a newline after each definition.
4557
4558 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4559
4560         * gccbug.in: New file.
4561         * configure.in (all_outputs): Add gccbug.
4562         * Makefile.in (install-common): Install gccbug.
4563         (GCCBUG_INSTALL_NAME): New variable.
4564         * configure: Rebuilt.
4565         
4566 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
4567
4568         * function.c (put_var_into_stack): Use type_for_mode to calculate
4569         part_type.  Use MEM_SET_IN_STRUCT_P.
4570         * expr.c (store_field): Handle CONCAT.
4571         (store_constructor): Use fields_length.
4572         * tree.c (fields_length): New fn.
4573         * tree.h: Declare it.
4574
4575 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
4576
4577         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
4578         (cpplex.o): New target.
4579         * po/POTFILES.in: Add cpplex.c.
4580
4581         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
4582         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
4583         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
4584         skip_block_comment, skip_line_comment, skip_comment,
4585         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
4586         _cpp_parse_name, skip_string, parse_string,
4587         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
4588         _cpp_get_directive_token, find_position,
4589         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
4590         (maybe_macroexpand, _cpp_lex_token): New functions.
4591
4592         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
4593         parse_goto_mark): Delete.
4594         (_cpp_handle_eof): New function.
4595         (_cpp_handle_directive): Rename from handle_directive.
4596         (_cpp_output_line_command): Rename from output_line_command.
4597         (do_if, do_elif): Call _cpp_parse_expr directly.
4598         * cppfiles.c (_cpp_read_include_file): Don't call
4599         init_input_buffer here.
4600         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
4601         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
4602         here; pop the token_buffer and skip the rest of the line here.
4603         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
4604         here.
4605
4606         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
4607         Define here.
4608         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
4609         CPP_GOTO_MARK): New macros.
4610         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
4611         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
4612         _cpp_read_and_prescan, _cpp_init_input_buffer,
4613         _cpp_grow_token_buffer, _cpp_get_directive_token,
4614         _cpp_handle_directive, _cpp_handle_eof,
4615         _cpp_output_line_command): Prototype them here.
4616         * cpplib.h (enum cpp_token): Add CPP_MACRO.
4617         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
4618         quote_string, output_line_command): Remove.
4619
4620 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
4621
4622         * stmt.c (expand_end_case): RANGE may be signed, and when checking
4623         whether it is too large we must also verify that it isn't negative.
4624
4625 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
4626
4627         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
4628         (movsi_zero_liveg0): Remove.
4629         (movsf_insn_novis_liveg0): Remove.
4630         (negsi2): Remove.
4631         (negsi2_not_liveg0): Rename to negsi2.
4632         (one_cmplsi2): Remove.
4633         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
4634         (one_cmplsi2_liveg0): Remove.
4635         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
4636         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
4637         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
4638         (PREDICATE_CODES): Remove zero_operand.
4639         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
4640         TARGET_BROKEN_SAVERESTORE.
4641         (zero_operand): Remove.
4642         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
4643         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
4644         options.
4645         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
4646         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
4647         TARGET_BROKEN_SAVERESTORE): Remove.
4648         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
4649         Remove.
4650         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
4651         Remove.
4652         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
4653         Remove.
4654
4655         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
4656
4657 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
4658
4659         * cpplib.c (do_pragma_implementation): Fix off-by-one error
4660         truncating a string.  Don't assume tokens are nul terminated.
4661         Problem noted by Andreas Jaeger <aj@suse.de>
4662
4663 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
4664
4665         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
4666         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
4667         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
4668
4669 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
4670
4671         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
4672         STRUCTURE_SIZE_BOUNDARY.
4673
4674 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
4675
4676         * tree.h (record_layout_info_s): New structure.
4677         (record_layout_info): New type.
4678         (new_record_layout_info): New function.
4679         (layout_field): Likewise.
4680         (finish_record_layout): Likewise.
4681         * stor-layout.c (layout_record): Remove.
4682         (new_record_layout_info): New function.
4683         (layout_field): New function, broken out from layout_record.
4684         (finalize_record_size): Likewise.
4685         (compute_record_mode): Likewise.
4686         (finalize_type_size): New function, broken out from layout_type.
4687         (finish_record_layout): Likewise.
4688         (layout_type): Use them.
4689         
4690 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
4691
4692         * cpphash.c: Don't include version.h.
4693         (special_symbol) [case T_VERSION]: Look for the string in
4694         hp->value.cpval; don't use version_string.
4695         * cppinit.c (initialize_builtins): Set hp->value.cpval for
4696         __VERSION__ to version_string.
4697         * Makefile.in (cpphash.o): Update deps.
4698
4699 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
4700
4701         Convert cpplib to use libiberty/hashtab.c.
4702
4703         * cpplib.h (struct cpp_reader): Make hashtab and
4704         all_include_files of type 'struct htab *'.  Delete HASHSIZE
4705         and ALL_INCLUDE_HASHSIZE macros.
4706
4707         * cpphash.h: Update prototypes.
4708         (struct hashnode): Remove next, prev, and bucket_hdr members.
4709         Make length a size_t.  Add hash member.
4710         (struct ihash): Remove next member.  Add hash member.  Make
4711         name a flexible array member.
4712
4713         * cppfiles.c: Include hashtab.h.
4714         (include_hash): Delete.
4715         (IHASHSIZE): New macro.
4716         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
4717         (cpp_included): Do the hash lookup here.
4718         (_cpp_find_include_file): Rewrite.
4719         (cpp_read_file): Put the "fake" hash entry into the hash
4720         table.  Honor the control_macro, if it turns out we've seen
4721         the file before.  Don't push the buffer here.
4722         (_cpp_read_include_file): Push the buffer here.
4723         (OMODES): New macro.  Use it whenever we call open(2).
4724
4725         * cpphash.c: Include hashtab.h.
4726         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
4727         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
4728         _cpp_lookup_slot): New functions.
4729         (HASHSIZE): new macro.
4730         (hashf, _cpp_install, _cpp_delete_macro): Delete.
4731         (_cpp_lookup): Use hashtab.h routines.
4732
4733         * cppinit.c: Include hashtab.h.
4734         (cpp_reader_init): Call _cpp_init_macro_hash and
4735         _cpp_init_include_hash.  Don't allocate hashtab directly.
4736         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
4737         pfile->all_include_files.
4738         (initialize_builtins): Use _cpp_make_hashnode and
4739         htab_find_slot to add hash entries.
4740         (cpp_finish): Just call _cpp_dump_macro_hash.
4741         * cpplib.c: Include hashtab.h.
4742         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
4743         create hash entries.
4744         (do_pragma_poison, do_assert): Likewise.
4745         (do_include): Don't push the buffer here.  Don't increment
4746         system_include_depth unless _cpp_read_include_file succeeds.
4747         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
4748         or htab_remove_elt.
4749         (do_pragma_implementation): Use alloca to create copy.
4750
4751         * Makefile.in: Update dependencies.
4752
4753 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4754
4755         * cppinit.c (cl_directive_handler): More K&R fixing.
4756
4757 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
4758
4759         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
4760         STACK_BOUNDARY.
4761         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
4762
4763 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4764
4765         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
4766         Change from char[] to macros.
4767
4768 2000-03-12  Neil Booth  <NeilB@earthling.net>
4769
4770         * cppinit.c (cpp_start_read): Update indirect function
4771         call to K&R C.
4772
4773 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
4774
4775         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
4776         entry.
4777
4778         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
4779         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
4780
4781 2000-03-11  Neil Booth  <NeilB@earthling.net>
4782
4783         * cppinit.c (struct pending option): Replace undef with a 
4784         pointer to a directive handling routine.
4785         (struct cpp_pending): Replace separate assert_ and define_ 
4786         lists with one directive_ list.
4787         (new_pending_define): Rename new_pending_directive. Extra
4788         argument is the directive's handling routine.
4789         (handle_option): Update to use new_pending_directive.
4790
4791 2000-03-11  Neil Booth  <NeilB@earthling.net>
4792
4793         * cppfiles.c (file_cleanup, _cpp_find_include_file,
4794         remap_filename, _cpp_read_include_file, actual_directory,
4795         hack_vms_include_specification): Replace bcopy(), index() etc
4796         calls.  Add casts to some allocations.  Make some variables
4797         pointers to const [unsigned] char.
4798         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
4799         collect_formal_parameters): Similarly.
4800         * cppinit.c (struct pending_option, append_include_chain,
4801         cpp_options_init, cpp_reader_init, initialize_standard_includes,
4802         cpp_start_read, new_pending_define, handle_option): Similarly.
4803         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
4804         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
4805         do_pragma_implementation, detect_if_not_defined,
4806         do_ifdef, skip_if_group, cpp_get_token, parse_string,
4807         do_assert, do_unassert): Similarly.
4808         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
4809         function prototypes.
4810         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.   
4811
4812 2000-03-10  Richard Henderson  <rth@cygnus.com>
4813
4814         * builtins.c (expand_builtin_strlen): Revert last change.
4815         Use emit_insn_before if we're at the beginning of a sequence.
4816
4817 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
4818
4819         * builtins.c (expand_builtin_strlen): Make sure that we have something
4820         at the beginning of the sequence.
4821
4822         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
4823         deferred inlines.
4824
4825         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
4826
4827 2000-03-10  Richard Henderson  <rth@cygnus.com>
4828
4829         * except.c (can_throw): Use INTVAL on a CONST_INT.
4830         (reachable_handlers): Likewise.
4831         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
4832
4833 2000-03-10  Andreas Jaeger  <aj@suse.de>
4834
4835         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
4836         MD_STARTFILE_PREFIX since those are not needed on linux.
4837         (ASM_FILE_START): New, from mips/gnu.h.
4838
4839 2000-03-09  Richard Henderson  <rth@cygnus.com>
4840             Alex Samuel  <samuel@codesourcery.com> and others
4841         
4842         * Makefile.in (ssa.o): New rule.
4843         (OBJS): Add ssa.o.
4844         (STAGESTUFF): Add *.ssa and *.ussa.
4845         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
4846         * rtl.def (PHI): New RTL expression.
4847         * rtl.h (clear_log_links): New declaration.
4848         (convert_to_ssa): Likewise.
4849         (convert_from_ssa): Likewise.
4850         * flow.c (split_edge): If the entry node falls through to the
4851         split edge's source block, split the entry edge.
4852         (clear_log_links): New function.
4853         * toplev.c (ssa_dump): New variable.
4854         (flag_ssa): Likewise.
4855         (f_options): Add "ssa".
4856         (compile_file): Create SSA dump files.
4857         (rest_of_compilation): Go to and from SSA if enabled.
4858         (decide_d_option): Handle -de for SSA dump files.
4859         * ssa.c: New file.
4860         
4861 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
4862
4863         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
4864         same as VAR_DECL.
4865
4866 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
4867
4868         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
4869
4870 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
4871
4872         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
4873         (MD_STARTFILE_PREFIX_1): New macro.
4874
4875 2000-03-09  Robert Lipe  <robertl@sco.com>
4876
4877         * config/ia64/ia64.c: Include system.h.
4878
4879 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
4880
4881         * except.c (nothrow_function_p): If -fno-exceptions, just return.
4882         (init_eh_nesting_info): Likewise.
4883
4884         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
4885         (TREE_NOTHROW): Rename from TREE_RAISES.
4886         * toplev.c (rest_of_compilation): Set it.
4887         * print-tree.c (print_node): Adjust.
4888         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
4889         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
4890         * calls.c (emit_call_1): Add 'nothrow' parm.  Add 
4891         REG_EH_REGION note as appropriate.
4892         (libfunc_nothrow): New fn.
4893         (emit_library_call, emit_library_call_value): Use it.
4894         (expand_call): Check TREE_NOTHROW.
4895
4896         * varasm.c (make_decl_rtl): Skip initial '*' when setting
4897         DECL_ASSEMBLER_NAME.
4898
4899 2000-03-09  Andreas Jaeger  <aj@suse.de>
4900
4901         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
4902         (TARGET_MEM_FUNCTIONS): Define.
4903
4904 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
4905
4906         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
4907
4908         * except.c (can_throw): See through a SEQUENCE.
4909         (nothrow_function_p): New fn.
4910         * except.h: Declare it.
4911         * function.c (current_function_nothrow): New var.
4912         (prepare_function_start): Initialize it.
4913         * output.h: Declare it.
4914         * toplev.c (rest_of_compilation): Set it.
4915         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
4916
4917 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
4918
4919         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
4920         match.  (cpp_compare_defs): Count the nul separator when
4921         advancing over argument names.
4922
4923 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
4924
4925         * recog.c (preprocess_constraints): Matching constraints affect
4926         same alternative/different operand, not same operand/different
4927         alternative.
4928         
4929         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
4930         register and a constant specially.
4931
4932 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4933
4934         * libgcc2.h: New file.
4935         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
4936
4937 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
4938
4939         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
4940         * configure: Regenerate.
4941         * config/ia64: New.
4942
4943 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
4944
4945         * Makefile.in (LIBCPP_DEPS): New macro.
4946         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
4947         it to declare deps.
4948         * cpperror.c: Include cpphash.h.
4949         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
4950         dingleberry.
4951         (lex): Don't use CPP_WARN_UNDEF.
4952         (_cpp_parse_expr): Return an int, the truth value.
4953         * cppfiles.c: Include cpphash.h.
4954         (_cpp_merge_include_chains): Move to cppinit.c and make static.
4955         * cppinit.c (include_defaults_array): Disentangle.
4956         (cpp_cleanup): Don't free the if stack here.
4957         (cpp_finish): Pop off all buffers, not just one.
4958         * cpplib.c (eval_if_expr): Return int.
4959         (do_xifdef): Rename do_ifdef.
4960         (handle_directive): Don't use CPP_PREPROCESSED. 
4961         (cpp_get_token): Don't use CPP_C89.
4962         * fix-header.c: Don't use CPP_OPTIONS.
4963
4964         * cpplib.h: Move U_CHAR, enum node_type, struct
4965         file_name_list, struct ihash, is_idchar, is_idstart,
4966         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
4967         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
4968         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
4969         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
4970         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
4971         of _cpp_simplify_pathname, _cpp_find_include_file,
4972         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
4973         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
4974         cppinit.c.
4975         Change all uses of U_CHAR to be unsigned char instead.
4976         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
4977
4978 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
4979
4980         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
4981         (dwarf2out_begin_prologue): Set it.
4982         (output_call_frame_info): Don't emit EH unwind info for leaves.
4983
4984         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
4985         can occur outside of an EH region.
4986         * except.c: Correct comments about rethrow behavior.
4987         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
4988
4989 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
4990
4991         * flow.c (make_edges): Always call make_eh_edge for calls.
4992
4993 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
4994
4995         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
4996         (struct cpp_buffer): Remove fname and underflow fields.
4997         (struct cpp_reader): Remove get_token field.
4998         (struct include_hash): Rename to struct ihash.  Add typedef to
4999         IHASH.
5000         (struct if_stack): Remove fname field.
5001         (IF_STACK_FRAME): Rename to IF_STACK.
5002
5003         * cpperror.c (print_containing_files): Trust that there are no
5004         macro buffers below the top file buffer.
5005         * cppfiles.c: Replace all references to 'struct include_hash'
5006         with 'IHASH'.  Rename initialize_input_buffer to
5007         init_input_buffer.  Don't set or reference cpp_buffer->fname,
5008         use buffer->ihash->name instead.
5009         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
5010         not CPP_NULL_BUFFER.
5011         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
5012         IF_STACK_FRAME, IHASH not struct include_hash.
5013         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
5014         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
5015         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
5016         references to cpp_buffer->fname (delete entirely, or use
5017         ->ihash->name instead) and IF_STACK->fname.
5018         (cpp_push_buffer): Don't set new->underflow.
5019         (do_include): Use cpp_file_buffer.
5020
5021         * cpphash.c (collect_formal_parameters): Remove duplicate
5022         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
5023         used as a macro argument name.  Don't append "..." to namebuf
5024         for varargs macros.  After we're done scanning, go through
5025         namebuf and make it NUL separated, not comma separated.
5026         (_cpp_compare_defs): Remove register tag from variables.
5027         Expect defn->argnames to be NUL separated.
5028         (_cpp_dump_definition): Expect defn->argnames to be NUL
5029         separated and in forward order.
5030         * cpphash.h: Update documentation of argnames field.
5031
5032 2000-03-08  Richard Henderson  <rth@cygnus.com>
5033
5034         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
5035         to fail.  Don't pre-expand the source operand.
5036
5037         * i386.md (strlensi): Initialize eoschar and align before use.
5038
5039 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
5040
5041         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
5042         CONSTRUCTOR element.
5043
5044 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
5045
5046         * mips.c (mips_expand_prologue): If the last 
5047         named argument is the vararg marker "va_list", treat it as
5048         an unnamed argument.
5049
5050 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
5051
5052         * dbxout.c (dbxout_parms): When correcting for promoted 
5053         big-endian parameters, use the mode of the DECL_RTL rather 
5054         than UNITS_PER_WORD.
5055
5056 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
5057
5058         * c-common.h (make_fname_decl): Declare.
5059         * c-common.c (make_fname_decl): Define.
5060         (declare_hidden_char_array): Remove.
5061         (declare_function_name): Use make_fname_decl.
5062         * c-decl.c (c_make_fname_decl): New function.
5063         (init_decl_processing): Set make_fname_decl.
5064
5065 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
5066
5067         * cccp.c (handle_directive): Initialize backslash_newlines_p.
5068
5069 2000-03-07  Philipp Thomas  <pthomas@suse.de>
5070
5071         * po/POTFILES.in: Remove cppalloc.c from file list.
5072
5073 2000-03-07  Steve Chamberlain  <sac@pobox.com>
5074
5075         * pj.c (pj_expand_prologue): current_function->args_info is
5076         now current_function_args_info.  
5077
5078         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
5079         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
5080         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
5081
5082 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5083
5084         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
5085         output as hexadecimal rather than the default octal.
5086
5087 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
5088
5089         * cpphash.c (special_symbol): Fix thinko in previous commit.
5090
5091 2000-03-07  Neil Booth  <NeilB@earthling.net>
5092
5093         * cppexp.c (struct operation, left_shift, right_shift,
5094         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
5095         "int"s to "unsigned int"s.
5096         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
5097         Similarly.
5098         * cpplib.h: Update for above.
5099         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
5100         returned from allocations.
5101
5102         * cppinit.c (opt_comp, parse_options): New functions.
5103         (handle_option): Use parse_option to parse a single command
5104         line option, that possibly takes an argument.
5105         (cpp_handle_options): Sort the array of command line options on
5106         first invocation (non-ASCII hosts only).
5107         (print_help): Update.
5108
5109 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
5110
5111         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
5112         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
5113         
5114         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
5115         initialized.
5116         * cppinit.c (cpp_cleanup): Free imp->nshort also.
5117
5118         * cpperror.c (cpp_print_containing_files,
5119         cpp_print_file_and_line, v_cpp_message): Rename to
5120         print_containing_files, print_file_and_line, and v_message.
5121         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
5122         to _cpp_parse_expr, parse_escape, and lex.
5123         (parse_charconst): Remove broken multibyte support.
5124         * cppfiles.c (include_hash): Make static.
5125         (cpp_included): New function.
5126         (merge_include_chains, find_include_file, finclude,
5127         simplify_pathname): Rename to _cpp_merge_include_chains,
5128         _cpp_find_include_file, _cpp_read_include_file, and
5129         _cpp_simplify_pathname.
5130         * cpphash.c (cpp_lookup, free_definition, delete_macro,
5131         cpp_install, create_definition, macroexpand, compare_defs,
5132         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
5133         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
5134         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
5135         * cppinit.c (cpp_handle_option): Rename to handle_option, make
5136         static.
5137         * cpplib.c: Remove extern prototype of cpp_parse_expr.
5138
5139         * cpphash.h: Update prototypes.
5140         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
5141
5142 2000-03-07  Andrew Haley  <aph@cygnus.com>
5143
5144         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
5145         PTRDIFF_TYPE should be based solely on Pmode.
5146         (SIZE_TYPE): ditto.
5147
5148 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5149
5150         * rtl.h (rtunion_def): Constify member `rtstr'.
5151         (emit_line_note_after, emit_line_note, emit_line_note_force,
5152         emit_note, decode_asm_operands): Constify.
5153         
5154         * cse.c (canon_hash): Likewise.
5155
5156         * dbxout.c (dbxout_block): Likewise.
5157
5158         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
5159         v_warning_for_asm): Likewise.
5160
5161         * dwarfout.c (function_start_label): Likewise.
5162
5163         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
5164         emit_line_note_force): Likewise.
5165
5166         * final.c (last_filename, asm_insn_count, final_scan_insn,
5167         output_source_line): Likewise.
5168
5169         * function.h (struct emit_status): Likewise.
5170
5171         * gcse.c (hash_expr_1): Likewise.
5172
5173         * genattr.c (gen_attr, main): Likewise.
5174
5175         * genattrtab.c (struct function_unit, current_alternative_string,
5176         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
5177         attr_numeral, check_attr_test, check_attr_value,
5178         convert_set_attr_alternative, convert_set_attr,
5179         compute_alternative_mask, simplify_by_exploding, gen_attr,
5180         gen_unit): Likewise.
5181
5182         * genflags.c (gen_insn): Likewise.
5183
5184         * gengenrtl.c (type_from_format): Likewise.
5185
5186         * genopinit.c (gen_insn): Likewise.
5187
5188         * genoutput.c (n_occurrences, process_template, process_template):
5189         Likewise.
5190
5191         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
5192         Likewise.
5193
5194         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
5195         Likewise.
5196
5197         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
5198         ggc_set_mark, ggc_get_size): Likewise.
5199
5200         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
5201
5202         * optabs.c (init_one_libfunc): Likewise.
5203
5204         * output.h (assemble_start_function): Likewise.
5205
5206         * recog.c (decode_asm_operands): Likewise.
5207
5208         * toplev.c (rest_of_compilation): Likewise.
5209
5210         * tree.h (emit_line_note_after, emit_line_note,
5211         emit_line_note_force): Likewise.
5212
5213         * varasm.c (asm_output_bss, asm_output_aligned_bss,
5214         asm_emit_uninitialised, assemble_start_function,
5215         assemble_variable, const_hash, compare_constant_1,
5216         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
5217
5218         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
5219
5220         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
5221
5222         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
5223
5224         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
5225
5226         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
5227         arm_dllimport_name_p): Likewise.
5228
5229         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
5230         Likewise.
5231
5232         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
5233
5234         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
5235
5236         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
5237         arm_mark_dllexport, arm_mark_dllimport,
5238         arm_pe_encode_section_info): Likewise.
5239
5240         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
5241         ASM_FINISH_DECLARE_OBJECT): Likewise.
5242
5243         * arm/thumb.c (thumb_function_prologue): Likewise.
5244
5245         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
5246
5247         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
5248
5249         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
5250
5251         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
5252
5253         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
5254
5255         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
5256
5257         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
5258         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
5259
5260         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
5261
5262         * i386/i386.c (asm_output_function_prefix): Likewise.
5263
5264         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
5265
5266         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
5267
5268         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
5269
5270         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
5271         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
5272         ASM_OUTPUT_SECTION_NAME): Likewise.
5273
5274         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
5275
5276         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
5277
5278         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
5279
5280         * m32r/m32r.c (m32r_encode_section_info): Likewise.
5281
5282         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
5283
5284         * mcore/mcore.c (mcore_encode_section_info): Likewise.
5285
5286         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
5287
5288         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
5289
5290         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
5291
5292         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
5293
5294         * mips/mips.md (movdi, movsi): Likewise.
5295
5296         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
5297
5298         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
5299
5300         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
5301
5302         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
5303         ASM_OUTPUT_ASCII): Likewise.
5304
5305         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
5306         output_mi_thunk, output_toc): Likewise.
5307
5308         * rs6000/rs6000.md (movsi): Likewise.
5309
5310         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
5311
5312         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
5313
5314         * v850/v850.c (print_operand, print_operand_address,
5315         v850_encode_data_area): Likewise.
5316
5317 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
5318         
5319         * config/mips/mips.md (zero_extendsidi2): Always force operand
5320         one to memory for mips16.
5321
5322 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5323
5324         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
5325         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
5326         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
5327         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
5328         (min_precision): Result is unsigned.
5329         (add_double, neg_double, mul_double): Low word is unsigned.
5330         (lshift_double, rshift_double, lrotate_double): Likewise.
5331         (rrotate_double, div_and_round_double): Likewise.
5332         (tree_floor_log2, compare_tree_int): New functions.
5333         (preserve_rtl_expr_temps): New declaration.
5334         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
5335         (decl_attributes): Use tree_log2 to find alignment.
5336         Check for TREE_INT_CST_HIGH for format args.
5337         (min_precision): Now unsigned.
5338         Use tree_floor_log2.
5339         (truthvalue_conversion): Delete long-disabled code.
5340         * c-decl.c (finish_struct): Clean up tests on field width.
5341         (finish_function): Use compare_tree_int.
5342         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
5343         * c-typeck.c (comptypes): Use tree_int_cst_equal.
5344         (default_conversion, digest_init): Use compare_tree_int.
5345         (build_binary_op): Use integer_all_onesp and compare_tree_int.
5346         Fix type errors in forming masks.
5347         * calls.c (initialize_argument_information): Use compare_tree_int.
5348         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
5349         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
5350         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
5351         (store_field): Use compare_tree_int.
5352         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
5353         (expand_expr, case ARRAY_REF): Use compare_tree_int.
5354         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
5355         (do_store_flag): Use compare_tree_int.
5356         * fold-const.c (encode, decode): Low part is always unsigned.
5357         (force_fit_type, add_double, neg_double, mul_double): Likewise.
5358         (lshift_double, rshift_double, lrotate_double): Likewise.
5359         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
5360         (fold_convert): Use compare_tree_int.
5361         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
5362         (invert_truthvalue, case INTEGER_CST): Likewise.
5363         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
5364         * mkdeps.c (deps_dummy_targets): Make I unsigned.
5365         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
5366         (lshift_double, rshift_double, lrotate_double, rrotate_double):
5367         Likewise.
5368         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
5369         (expand_end_case): Use compare_tree_int.
5370         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
5371         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
5372         (layout_decl): Likewise.
5373         (layout_record, layout_union): Make sizes unsigned.
5374         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
5375         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
5376         * tree.c (struct type_hash): hashcode is unsigned.
5377         (build_type_attribute_variant, type_hash_list): Likewise.
5378         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
5379         (attribute_hash_list, build_array_type, build_method_type): Likewise.
5380         (build_complex_type): Likewise.
5381         (real_value_from_int_cst): Remove unneeded casts.
5382         (integer_all_onesp): Add casts.
5383         (tree_floor_log2, compare_tree_int): New functions.
5384         (build_index_type): Use tree_int_cst_sgn.
5385         * varasm.c (assemble_variable): Use compare_tree_int.
5386
5387 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
5388
5389         * cpphash.c (collect_expansion): Also catch ## at start of macro.
5390
5391         * varasm.c (make_decl_rtl): Don't add a number to members of
5392         local classes.
5393         (make_function_rtl): Likewise.
5394
5395 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5396
5397         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
5398         patch from 2000-01-28.
5399
5400 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
5401
5402         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
5403         filled with an insn from the jump target.
5404
5405 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5406
5407         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
5408         (c4x_external_ref): Likewise.
5409         * config/c4x/c4x.c (struct name_list): Likewise.
5410
5411 1999-12-16  Ben Collins  <bcollins@debian.org>
5412
5413         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
5414         argument to genmultilib.
5415         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
5416         the contents into the multilib.h header.
5417         * gcc.c: Declare multilib_exclusions for the specs file.
5418         (set_multilib_dir): Use it.
5419         (print_multilib_info): Likewise.
5420         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
5421         to pass to genmultilib.
5422
5423 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5424
5425         * builtins.c (built_in_class_names, built_in_names): Constify a
5426         char*.
5427
5428         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
5429         int.
5430         (_mcleanup): Ensure value matches format specifier in sprintf.
5431
5432         * cpphash.c (special_symbol): Don't needlessly cast away
5433         const-ness.
5434
5435         * cppinit.c (base_name): Delete unused prototype.
5436
5437         * mkdeps.c (deps_init): Make definition K&R safe.
5438
5439         * tree.h (built_in_class_names, built_in_names): Constify a
5440         char*.
5441
5442 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
5443
5444         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
5445         floating point instructions for epilogue delay.
5446
5447         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
5448         to gas if it supports .register pseudo.
5449
5450         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
5451         LONG_DOUBLE_TYPE_SIZE if not defined.
5452         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
5453         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
5454         * real.c: Likewise.
5455         * gengenrtl.c: Likewise.
5456         * print-rtl.c: Likewise.
5457         * rtl.c: Likewise.
5458         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
5459         MASK_LONG_DOUBLE_128.
5460         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
5461         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
5462         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
5463         (SUBTARGET_SWITCHES): Define.
5464         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
5465         with -mlong-double-128.
5466         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
5467         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
5468         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
5469         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
5470         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
5471         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
5472         with -mlong-double-128.
5473         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
5474         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
5475         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
5476         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
5477         TARGET_LONG_DOUBLE_128): Define.
5478         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
5479         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
5480         long double on TARGET_ARCH64.
5481
5482 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
5483
5484         * function.c (free_temps_for_rtl_expr): Don't free slots
5485         that have been pushed into a higher level.
5486         
5487         Revert this patch:
5488         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
5489
5490 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
5491
5492         * basic-block.h (ALLOCA_REG_SET): Remove.
5493         (INITIALIZE_REG_SET): New macro.
5494         * flow.c (update_life_info): Use it.
5495         (calculate_global_regs_live): Likewise.
5496         (propagate_block): Likewise.
5497         * global.c (build_insn_chain): Likewise.
5498         * haifa-sched.c (schedule_region): Likewise.
5499
5500 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
5501
5502         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
5503         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
5504         (DWARF_ARANGES_PAD_SIZE): New define.
5505         (output_aranges): Use it to pad the address range header.
5506         (DWARF_ROUND): Fix for non power of 2 rounding.
5507
5508 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
5509
5510         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
5511
5512 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
5513
5514         * tree.def (RTL_EXPR): Update documentation.
5515         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
5516         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
5517         * function.c (preserve_rtl_expr_temp): New function.
5518         (preserve_rtl_expr_temps): Likewise.
5519         (preserve_rtl_expr_result): Use it.
5520
5521         Revert this patch:
5522         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
5523
5524 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
5525
5526         * regmove.c (copy_src_to_dest)  Do not create src->dest move
5527         for unchanging destination.
5528
5529 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
5530
5531         * function.h (struct sequence_stack): Remove rtl_expr.
5532         (struct emit_staus): Likewise.
5533         (seq_rtl_expr): Remove.
5534         * tree.h (free_temps_for_rtl_expr): Don't declare.
5535         (start_sequence_for_rtl_expr): Likewise.
5536         * rtl.h (preserve_rtl_expr_result): Likewise.
5537         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
5538         (start_sequence_for_rtl_expr): Remove.
5539         (push_topmost_sequence): Don't save sequence_rtl_expr.
5540         (pop_topmost_sequence): Remove comment about not restoring it.
5541         (end_sequence): Don't set seq_rtl_expr.
5542         (init_emit): Don't initialize it.
5543         (mark_sequence_stack): Don't mark it.
5544         (mark_emit_status): Likewise.
5545         * except.c (protect_with_terminate): Use
5546         start_sequence_for_rtl_expr, not start_sequence.
5547         * expr.c (expand_expr, case RTL_EXPR): Don't call
5548         preserve_rtl_expr_result or free_temps_for_rtl_expr.
5549         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
5550         (preserve_rtl_expr_result): Remove.
5551         (free_temps_for_rtl_expr): Likewise.
5552         (pop_temp_slots): Likewise.
5553         (mark_temp_slot): Don't mark the rtl_expr.
5554         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
5555         start_sequence_for_rtl_expr.
5556         
5557 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
5558
5559         * mkdeps.c, mkdeps.h: New files.
5560         * po/POTFILES.in: Add them.
5561         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
5562         (cpplib.o, cppinit.o): Depend on mkdeps.h.
5563         (mkdeps.o): New target.
5564
5565         * cppfiles.c: Delete deps_output.
5566         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
5567         OBJECT_SUFFIX, and base_name.
5568         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
5569         the include hash.
5570         (initialize_dependency_output): Use deps_init,
5571         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
5572         all the unnecessary string bashing.
5573         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
5574         level.
5575         * cpplib.c (do_include): Use deps_add_dep.
5576         * cpplib.h (struct cpp_reader): Replace deps_buffer,
5577         deps_allocated_size, deps_size, deps_column members with
5578         single pointer to a struct deps.  Delete prototype of
5579         deps_output.
5580
5581         * cppinit.c: Fix thinko in previous patch.
5582
5583 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5584
5585         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
5586         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
5587         (mode_for_size_tree): New function.
5588         (layout_decl, layout_type): Call it and clean up BLKmode checks.
5589         * tree.h (mode_for_size_tree): New declaration.
5590         
5591         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
5592
5593 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
5594
5595         * stmt.c (is_body_block): Move...
5596         * dwarfout.c, dwarf2out.c: ...from here.
5597         * tree.h: Declare it.
5598         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
5599         * final.c (final_start_function): Do call remove_unnecessary_notes
5600         when scheduling.
5601
5602 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
5603
5604         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
5605         
5606         * cpplib.h (_dollar_ok): New macro.
5607         (is_idchar, is_idstart): Use it.
5608         (IStable): Rename to _cpp_IStable.  Declare it const if
5609         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
5610         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
5611         is_space): Update for renamed IStable.
5612
5613         * cppinit.c: Delete all references to FAKE_CONST and CAT
5614         macros. Define init_IStable as empty macro if gcc >=2.7 or
5615         C99. Change TABLE() to ISTABLE and hardcode name of table.
5616         (cpp_start_read): Don't change the IStable based on
5617         dollars_in_ident.
5618
5619         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
5620         changed.  Handle '$' for char1 correctly.
5621         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
5622
5623         * cppexp.c (tokentab2): Make const.
5624         (cpp_lex): Make toktab const.
5625         * cppinit.c (include_defaults_array): Make const.
5626         (initialize_standard_includes): Make default_include const.
5627
5628 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
5629
5630         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
5631         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
5632         (gen_decl_die): Likewise.
5633         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
5634         (output_decl): Likewise.
5635
5636         * varasm.c (make_function_rtl): If we change the name used in the
5637         rtl, update DECL_ASSEMBLER_NAME accordingly.
5638         (make_decl_rtl): Likewise.
5639
5640         * toplev.c (rest_of_compilation): Tweak formatting.
5641
5642         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
5643         remove_unnecessary_notes.
5644         (debug_ignore_block): New fn.
5645         * toplev.h: Declare it.
5646         * emit-rtl.c (remove_unncessary_notes): Call it.
5647         * dwarf2out.c (dwarf2out_ignore_block): New fn.
5648         * dwarf2out.h: Declare it.
5649         * final.c (final_start_function): Don't call remove_unnecessary_notes
5650         if we did insn scheduling.
5651
5652 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
5653
5654         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
5655         * cpplib.h: Delete SET_CPP_PEDANTIC.
5656
5657 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5658
5659         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
5660         result is a RECORD_TYPE.
5661
5662 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
5663
5664         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
5665
5666 2000-03-03  Richard Henderson  <rth@cygnus.com>
5667
5668         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
5669         addition over compliments over shifts.
5670
5671 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5672
5673         * reload1.c (reload_combine_note_use): Handle return register USEs.
5674         REG case: Handle multi-hard-register hard regs.
5675
5676 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5677
5678         * md.texi: Document use of '*' in insn pattern name.
5679
5680 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
5681
5682         * calls.c (special_function_p): operator new may not be malloc-like.
5683
5684         * gcse.c (dump_hash_table): Really fix error in last change.
5685
5686 2000-03-02  Denis Chertykov  <denisc@overta.ru>
5687
5688         * avr.c (print_operand): Use print_operand_address instead of
5689         output_addr_const.
5690         * avr/libgcc.S: Cleanup code.
5691
5692 2000-03-02  Richard Henderson  <rth@cygnus.com>
5693
5694         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
5695
5696 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
5697
5698         * tree.h (TYPE_ALIGN_UNIT): New macro.
5699
5700 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
5701
5702         * i386.c: (constant_call_address_operand): Reject CONST_INT.
5703
5704 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
5705
5706         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
5707         for the buffer.
5708         (SET_CPP_PEDANTIC): New macro.
5709         * cpplib.c (do_include): Don't bother checking system_header_p.
5710         (do_warning, do_ident, do_assert, do_unassert): Likewise.
5711         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
5712
5713         * function.h (struct expr_status): Add x_arg_space_so_far.
5714         (arg_space_so_far): New macro.
5715         * expr.c (init_expr): Initialize it.
5716         * calls.c (emit_call_1): Reset it.
5717         (compute_argument_block_size, expand_call): Use it.
5718         (expand_call, store_one_arg): Increment it.
5719
5720 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5721
5722         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
5723         a UNION_TYPE.
5724
5725 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
5726
5727         * cppfiles.c (cpp_read_file): New function.
5728
5729         * cpphash.c (collect_expansion): Make sure to reset last_token
5730         to NORM when we hit a string.  Handle trailing whitespace
5731         properly when the expansion is empty.
5732         (create_definition): Disable line commands while parsing the
5733         directive line.
5734         (dump_definition): If pfile->lineno == 0, output a line
5735         command ahead of the dump, and add a trailing newline.
5736
5737         * cppinit.c (append_include_chain): Add fifth argument, which
5738         indicates whether or not system headers are C++ aware.
5739         (initialize_standard_includes): New function,
5740         broken out of read_and_prescan.  Pass 'cxx_aware' value from
5741         the include_defaults_array on to append_include_chain.
5742         (dump_special_to_buffer): Const-ify char array.
5743         (builtin_array): Don't dump __BASE_FILE__.
5744         (cpp_start_read): Use cpp_read_file.  Reorder code for
5745         clarity.  Don't output line commands here for -D/-A/-U
5746         switches.  Don't call deps_output for files included with
5747         -include or -imacros.
5748
5749         * cpplib.c (do_define): Don't pay any attention to the second
5750         argument.
5751         (cpp_expand_to_buffer): Disable line commands while scanning.
5752         (output_line_command): Work in the file buffer.
5753         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
5754         Fix formatting of comments.  Prototype cpp_read_file.
5755
5756 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5757
5758         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
5759         reference the language-equivalent of sizetype.
5760         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
5761         * fold-const.c (size_binop, size_diffop): Put back checks.
5762         * gcse.c (dump_hash_table): Fix minor error in last change.
5763         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
5764         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
5765         all sizetypes.
5766
5767 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
5768
5769         * calls.c (expand_call)  Do not attempt to combine stack adjustments
5770         with inhibit_defer_pop set.
5771
5772 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
5773
5774         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
5775         the DECL_SIZE for a FIELD_DECL.
5776
5777 2000-03-01  Bruce Korb  <bkorb@gnu.org>
5778
5779         * fixinc/inclhack.tpl: remove unused symlinks
5780         * fixinc/README: GCC Maintainer info
5781         * fixinc/inclhack.sh: regen
5782         * fixinc/fixincl.sh: regen
5783
5784 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
5785
5786         * cpphash.c (collect_expansion): Trim trailing white space
5787         from macro definitions, but don't go past the last insertion
5788         point.
5789
5790 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
5791
5792         * i386.md (mulqi3): New pattern.
5793
5794 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
5795
5796         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
5797         token types.
5798         (struct cpp_reader): Add parsing_if_directive and
5799         parsing_define_directive flags.               
5800         (struct cpp_options): Remove output_conditionals flag.
5801         (check_macro_name): Delete prototype.
5802
5803         * cpphash.h (struct macrodef): Delete.
5804         (struct reflist): Separate from struct definition.
5805         (struct definition): Remove unused fields.  Add column number.
5806         (create_definition): Returns a DEFINITION *.  Takes a
5807         cpp_reader * and an int.
5808
5809         * cpphash.c (SKIP_WHITE_SPACE): Delete.
5810         (PEEKC): Copy defn from cpplib.c.
5811         (rest_extension, REST_EXTENSION_LENGTH): Delete.
5812         (struct arg): New.
5813         (struct arglist): Simplify.
5814         (collect_expansion): Rewrite.  Get tokens by calling
5815         cpp_get_token.  Add more error checking.
5816         (collect_formal_parameters): New function, broken out of
5817         create_definition and reworked to use get_directive_token.
5818         (create_definition): All real work is now in collect_expansion
5819         and collect_formal_parameters.  do_define handles finding the
5820         macro name.  Return a DEFINITION, not a MACRODEF.
5821         (macroexpand): Replace bcopy with memcpy throughout.  Replace
5822         character-at-a-time copy loop with memcpy and pointer increments.
5823         (compare-defs): d1->argnames / d2->argnames might be null.
5824
5825         * cpplib.c (copy_rest_of_line): Delete function.
5826         (skip_rest_of_line): Do all the work ourselves.
5827         (skip_string): New function.
5828         (parse_string): Use skip_string.
5829         (get_macro_name): New function.
5830         (check_macro_name): Delete.
5831         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
5832         (cpp_skip_hspace): Use CPP_BUMP_LINE.
5833         (handle_directive): ICE if we're called on a macro buffer.
5834         (do_define): Determine macro name and type (funlike/objlike)
5835         here.  Expunge all uses of MACRODEF.
5836         (cpp_push_buffer): Set line_base to NULL.
5837         (do_undef, read_line_number): Don't worry about getting a POP token.
5838         (eval_if_expression): Set/reset parsing_if_directive around
5839         cpp_parse_expr. Don't clear only_seen_white.
5840         (skip_if_group): Remove output_conditionals logic.  Use
5841         skip_rest_of_line.
5842         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
5843         tokens under appropriate conditions.
5844         (cpp_unassert): Call do_unassert not do_assert.  Oops.
5845
5846         * cppexp.c (parse_defined): New function, break out of
5847         cpp_lex.
5848         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
5849         ourselves, with cpp_defined.
5850         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
5851
5852         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
5853         * gcc.dg/strpaste-2.c: New.
5854
5855 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
5856
5857         * fold-const.c (size_binop): Don't asert inputs are the same and
5858         have TYPE_IS_SIZETYPE set.
5859         (size_diffop): Likewise.
5860
5861 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
5862
5863         * dwarfout.c (output_block): Output abstract blocks even if they
5864         don't have TREE_ASM_WRITTEN set.
5865
5866         * calls.c (emit_library_call): Check for null REG.
5867
5868 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
5869
5870         * c-decl.c (current_function_decl): Move to toplev.c.
5871         (init_decl_processing): Don't add current_function_decl as a ggc
5872         root here.
5873         * dbxout.c (dbxout_symbol): Change return type to int.
5874         (dbxout_symbol_location, dbxout_syms): Likewise.
5875         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
5876         any locals. Use current_function_func_begin_label if set.
5877         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
5878         * dwarf2out.c (dwarf2out_begin_prologue): Set
5879         current_function_func_begin_label.
5880         * final.c (final_start_function): Reset it.
5881         * toplev.c (current_function_decl): Define it here.
5882         (current_function_func_begin_label): New variable.
5883         (main): Add both as ggc roots.
5884         * tree.h (current_function_func_begin_label): Declare.
5885
5886 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5887
5888         * gcse.c: Cleanups throughout: mostly white-space, but also
5889         some minor rearrangement of code.
5890
5891 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
5892
5893         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
5894         returns a PARALLEL.  Use emit_group_load and use_group_regs
5895         as needed.  
5896         (emit_library_call_value): Similarly.
5897
5898         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
5899         * pa/quadlib.asm: Remove.
5900         * pa/quadlib.c: New file.
5901
5902         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
5903         * configure: Rebuilt.
5904
5905 2000-02-29  Philip Blundell  <pb@futuretv.com>
5906
5907         * config/arm/conix-elf.h: New file.
5908         * configure.in (arm*-*-conix*): New configuration.
5909         * configure: Regenerate.
5910
5911 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
5912
5913         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
5914         don't have TREE_ASM_WRITTEN set.
5915
5916 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5917
5918         * Eliminate DECL_FIELD_SIZE.
5919         * builtins.c (built_in_class_names, built_in_names): New variables.
5920         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
5921         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
5922         DECL_SIZE, not DECL_FIELD_SIZE.
5923         * print-tree.c (print_node): Remove code that prints extra blank
5924         lines in some cases.
5925         Properly handle inline and builtin function cases.
5926         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
5927         * tree.h (built_in_class_named, built_in_names): New declarations.
5928         (union tree_decl): Rename internal unions to u1 and u2 and change
5929         some of their components.
5930         Add new field built_in_class.
5931         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
5932         Reflect above changes.
5933         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
5934         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
5935         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
5936         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
5937
5938 2000-02-28  Dmitri Makarov  <dim@windriver.com>
5939
5940         * extend.texi: Document ARM's support for long/short calls.
5941
5942         * invoke.texi: Document ARM's -mlong-calls command line switch.
5943         
5944         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
5945         (arm_encode_call_attribute): Add prototype.
5946         (arm_set_default_type_attribute): Add prototype.
5947         (arm_strip_name_encoding): Add prototype.
5948
5949         * config/arm/arm.c (arm_init_cumulative_args): replace
5950         initialisation og 'long_calls' field with initialisation of
5951         'call_cookie' field.
5952         (enum arm_pragma_enum): New enum.
5953         (arm_pragma_long_calls): New static variable.
5954         (arm_process_pragma): Also process "#pragma long_calls_off".
5955         (arm_valid_type_attribute_p): Accept short_call attribute.
5956         (arm_comp_type_attributes): Check long/short call attributes.
5957         (arm_encode_call_attribute):  New function:  Encode long_call
5958         or short_call attribute in function name.
5959         (arm_set_default_type_attributes): New function: Assign
5960         default attributes to newly defined type.
5961         (current_file_function_operand): New function: Return true if
5962         the symbol is a function which has already been compiled.
5963         (arm_is_longcall_p): New function: Return true if the
5964         indicated function should be called via a long call.
5965         (arm_get_strip_length): New function.  Returns number of
5966         prefix characters to be stripped from a function's name.
5967         (arm_strip_name_encoding): New function.  Strip prefix characters
5968         from a function's name.
5969
5970         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
5971         with 'call_cookie'.
5972         (SHORT_CALL_FAG_CHAR): Define.
5973         (LONG_CALL_FAG_CHAR): Define.
5974         (ENCODED_SHORT_CALL_ATTR_P): Define.
5975         (ENCODED_LONG_CALL_ATTR_P): Define.
5976         (ARM_NAME_ENCODING_LENGTHS): Define.
5977         (STRIP_NAME_ENCODING): Define.
5978         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
5979         (ARM_ENCODE_CALL_TYPE): Define.
5980         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
5981         (ARM_DECLARE_FUNCTION_SIZE): Define.
5982         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
5983
5984         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
5985         if a long call is needed.
5986         (call_value): Ditto.
5987         (call_symbol): Ditto.
5988
5989         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
5990         ARM_DECLARE_FUNCTION_SIZE.
5991
5992         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
5993         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
5994         (ARM_STRIP_NAME_ENCODING): Undefine.
5995         (STRIP_NAME_ENCODING): Undefine.
5996         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
5997         (ASM_DECLARE_FUNCTION_NAME): Ditto.
5998         (ASM_OUTPUT_COMMON): Ditto.
5999         (ASM_DECLARE_OBJECT_NAME): Ditto.
6000
6001         * config/arm/pe.c (arm_dllexport_name_p): Check for
6002         ARM_PE_FLAG_CHAR.
6003         (arm_dllimport_name_p): Ditto.
6004         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
6005         (arm_mark_dllimport): Ditto.
6006         
6007 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6008
6009         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
6010
6011 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
6012
6013         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
6014
6015 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
6016
6017         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
6018         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
6019         NO_BUILTIN_WCHAR_TYPE is not defined.
6020         (CPP_WCHAR_TYPE): Delete.
6021         * cccp.c (main): Don't change wchar_type if cplusplus.
6022         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
6023
6024 2000-02-28  Nick Clifton  <nickc@cygnus.com>
6025
6026         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
6027
6028 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
6029
6030         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
6031         (ASM_WEAKEN_LABEL): Define.
6032  
6033 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
6034
6035         * expr.c (store_constructor): Do not emit USE.
6036         * rtl.h (stupid_life_analysis): Remove.
6037
6038 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6039
6040         * function.c (number_blocks): Reset next_block_index based on
6041         what debugging format is used, not what is defined.
6042         
6043         * lcm.c: Minor reformatting throughout.
6044         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
6045         
6046         * toplev.c (rest_of_compilation): Account for time in
6047         optimize_mode_switching.
6048
6049         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
6050         if only marking labels.
6051
6052 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
6053
6054         * calls.c (expand_call): Attempt to combine stack adjustments with
6055         pending stack adjustments.
6056
6057 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6058
6059         * loop.c (reg_in_basic_block_p): Don't abort when falling through
6060         to the end of the function.
6061
6062 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
6063
6064         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
6065         blocks.
6066         * final.c (next_block_index): Remove.
6067         (max_block_depth): Likewise.
6068         (pending_blocks): Likewise.
6069         (init_final): Don't initialize them.
6070         (final_start_function): Don't set next_block_index.  Set up
6071         BLOCK_NUMBER.
6072         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
6073         * function.h (number_blocks): New function.
6074         * function.c (get_block_vector): New function.
6075         (identify_blocks): Use it.
6076         (reorder_blocks): Set NOTE_BLOCK.
6077         (number_blocks): New function.
6078         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
6079         * tree.h (BLOCK_NUMBER): New macro.
6080         (tree_block): Add block_num field.
6081         * dbxout.c (next_block_number): Remove.
6082         (dbxout_init): Don't set it.
6083         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
6084         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
6085         block numbers.
6086         * toplev.c (rest_of_compilation): Always call
6087         find_loop_tree_blocks.  Fix indentation.
6088         * dwarf2out.c (next_block_number): Remove.
6089         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
6090         to determine block numbers.
6091         (gen_inlined_subroutine_die): Likewise.
6092         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
6093         (decls_for_scope): Don't increment next_block_number.
6094         * dwarfout.c (next_block_number): Remove.
6095         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
6096         to determine block numbers. 
6097         (output_inlined_subroutine_die): Likewise.
6098         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
6099         (output_decls_for_scope): Don't increment next_block_number.
6100         * sdbout.c (next_block_number): Remove.
6101         (sdbout_block): Use BLOCK_NUMBER.
6102         (sdbout_begin_block): Simplify.
6103         * xcoffout.c (next_block_number): Remove.
6104         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
6105         (xcoffout_begin_block): Don't set next_block_number.
6106         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
6107         next_block_number.
6108         
6109 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6110
6111         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
6112         (expand_builtin_strcpy): Pass correct type to size_binop.
6113         (expand_builtin_strcmp): Likewise.
6114         Clean up conditional structure.
6115         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
6116         (complete_array_type): Don't use size_binop for MAXINDEX.
6117         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
6118         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
6119         (c_alignof): Use size_one_node.
6120         (build_unary_op): Pass arg of proper type to size_binop.
6121         (really_start_incremental_init, push_init_level): Use sizetype for
6122         constructor{,_bit,_unfilled}_index.
6123         (pop_init_label, output_init_element): Likewise.
6124         (output_pending_init_elements, process_init_element): Likewise.
6125         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
6126         * expr.c (store_expr): Use size_int.
6127         (store_constructor): Use proper types for size_binop args.
6128         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
6129         (expand_expr_unaligned): Likewise.
6130         (string_contant): Return object of sizetype.
6131         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
6132         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
6133         (ARGS_SIZE_TREE): Pass proper types to size_binop.
6134         * fold-const.c (int_const_binop): Refine when size_int is called.
6135         (fold_convert): Likewise.
6136         (size_int_wide): Rework to take KIND as arg, only take low order
6137         bits, handle new sizetype_tab datatype, and chain entries in
6138         size_table.
6139         (size_int_type_wide): New function.
6140         (size_binop): Validate types of arguments.
6141         (ssize_binop): Deleted.
6142         (size_diffop): New function.
6143         (extract_muldiv): Only fold division into multiplication for sizetypes.
6144         * function.c (assign_parms): Use size_diffop and make sure
6145         VAR field is of ssizetype; also pass proper type to size_binop.
6146         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
6147         (round_down): Deleted from here.
6148         * store-layout.c (sizetype_tab): Now an array.
6149         (sizetype_set, early_root_list): New variables.
6150         (variable_size): Use size_one_node.
6151         (round_up): Pass proper type to size_binop.
6152         (round_down): Moved to here and corrected as above.
6153         (layout_record): Pass proper arg types to size_binop.
6154         (layout_type): Likewise.
6155         If sizetype_set is zero, record the type just laid out.
6156         (make_unsigned_type): Don't call set_sizetype;
6157         (make_signed_type): Likewise; also, call fixup_signed_type.
6158         (initialize_sizetypes): New function.
6159         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
6160         set name of bitsizetype to "bit_size_type".
6161         Fix up type of sizes of all types made before call.
6162         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
6163         * tree.c (fix_sizetype): Deleted.
6164         (build_common_tree_nodes): Call initialize_sizetypes.
6165         (build_common_tree_nodes_2): Don't call fix_sizetype.
6166         * tree.h (TYPE_IS_SIZETYPE): New macro.
6167         (initialize_sizetype): New declaration.
6168         (enum size_type_kind): New type.
6169         (struct sizetype_tab): Deleted.
6170         (sizetype_tab): Now array; adjust sizetype macros.
6171         (size_diffop, size_int_type_wide): New functions.
6172         (size_int_wide): Change number of args and type; access macros changed.
6173         (ssize_int, sbitsize_int): New macros.
6174         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
6175         (ROUND_TYPE_SIZE_UNIT): New macro.
6176
6177 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
6178
6179         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
6180
6181 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6182
6183         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
6184         Mark as possibly unused.
6185
6186         * cse.c (cse_insn): Delete dead code involving tablejump.
6187         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
6188
6189         * Makefile.in (libcpp.a): Start by deleting it.
6190
6191 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6192
6193         * cpplib.h (enum file_change_code): Added rename_file.
6194         * cpplib.c (do_line): If a filename is given, set file_change to
6195         rename_file.
6196         (output_line_command): If file_change is rename_file, always
6197         output a # directive with the file name.
6198
6199         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
6200
6201 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
6202
6203         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
6204         when copying a PARM_DECL or RESULT_DECL.
6205
6206 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6207
6208         * fix-header.c (recognized_function): Also fix prototypes for
6209         functions taking "void".
6210
6211 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
6212
6213         * reload1.c (do_output_reload): Check reg_reloaded_valid before
6214         looking at reg_reloaded_contents.
6215
6216 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
6217
6218         * Makefile.in (STMP_FIXINC): New toggle.
6219         (LIBGCC2_DEPS): Delete all references.
6220         (stmp-headers): Delete target.  All references either deleted
6221         or changed to stmp-int-headers.
6222         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
6223         (LIBCPP_OBJS): Take out cppalloc.o.
6224         (cppalloc.o): Delete target.
6225         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
6226         (gen-protos, fix-header): Link with libiberty.a.
6227         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
6228         to empty.
6229
6230         * configure.in: Remove refs to strerror.
6231         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
6232         * system.h: Take out strerror stanza.
6233
6234         * cpperror.c (my_strerror): Delete function.
6235         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
6236         * cppmain.c (main): Call xmalloc_set_program_name first thing.
6237         * cppalloc.c: Delete file.
6238         * gen-protos.c: Don't provide xrealloc.
6239
6240         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
6241         xstrerror throughout.
6242
6243 2000-02-26  Bruce Korb  <bkorb@gnu.org>
6244
6245         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
6246         match for DOS headers, too.
6247         * fixinc/inclhack.sh,fixincl.x: Regenerate.
6248
6249 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
6250
6251         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
6252         is right for most ELF targets.
6253         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
6254         Let the default file use %U properly.
6255         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
6256         default.
6257
6258         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
6259         numbers.
6260
6261 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6262
6263         * toplev.c (documented_lang_options): Correct spelling error.
6264         (decode_d_option, decode_f_option, main): Likewise.
6265
6266         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
6267
6268         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
6269         to tell assembler it is permitted to expand large constants.
6270
6271 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
6272
6273         * protoize.c: (AUX_INFO_SUFFIX): New macro.
6274         (aux_info_suffix): Use.
6275         (SAVE_SUFFIX): New macro.
6276         (save_suffix): Use.
6277         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
6278         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
6279         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
6280
6281         * invoke.texi (Running Protoize): Update documentation.
6282
6283 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
6284
6285         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
6286
6287 2000-02-25  John Wehle  (john@feith.com)
6288
6289         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
6290
6291 2000-02-25  Anthony Green  <green@cygnus.com>
6292
6293         * toplev.c (rest_of_compilation): Rebuild jump labels if
6294         combine_instructions has created a new direct jump.
6295         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
6296         when appropriate.
6297         (combine_instructions): Call try_combine with new argument.
6298         Return non-null value when new direct jump instruction is created.
6299         * rtl.h: combine_instructions returns an int.
6300
6301 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
6302
6303         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
6304         jump when changing a computed jump into a jump to a known
6305         target.
6306
6307 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
6308
6309         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
6310         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
6311
6312         * i386.md (define_expand "clrstrsi"): Fix typo.
6313
6314 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
6315
6316         * rtl.texi: Fix typo.
6317
6318 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6319
6320         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
6321         UNITS_PER_WORD.  Change caller initial_elimination_offset.
6322         (rounded_frame_size): Take into account that argument pushed has
6323         changed.  Fix TARGET_ALIGN_DOUBLE problem.
6324
6325 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
6326
6327         * haifa-sched.c (schedule_block): Explain the real reason
6328         we delete REG_SAVE_NOTEs on the first insn of a block.
6329         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
6330
6331 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
6332
6333         * input.h (push_srcloc): New function.
6334         (pop_srcloc): Likewise.
6335         * toplev.c (push_srcloc): Define it.
6336         (pop_srcloc): Likewise.
6337
6338 2000-02-24  Richard Henderson  <rth@cygnus.com>
6339
6340         * flow.c (life_analysis): When collecting reg info, clear
6341         regs_ever_live.
6342
6343 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6344
6345         Fix bug exposed by reload.c no longer rounding the frame
6346         size to BIGGEST_ALIGNMENT:
6347         * sh.c (rounded_frame_size): New function.
6348         (sh_expand_prologue, sh_expand_epilogue): Use it.
6349         (initial_elimination_offset): Likewise.
6350
6351 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6352
6353         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
6354         * sh-protos.h (sh_need_epilogue): Declare.
6355         * sh.c (sh_need_epilogue_known): New static variable.
6356         (sh_need_epilogue): New function.
6357         (function_epilogue): Clear need_epilogue_known.
6358         * sh.md (return): Split into expander / insn pattern.
6359         Make the expander conditional on ! sh_need_epilogue ().
6360
6361 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
6362
6363         * machmode.h (get_mode_alignment): Declare.
6364         (GET_MODE_ALIGNMENT): Call it.
6365         * stor-layout.c (get_mode_alignment): New function. Make
6366         sure alignment is always power of 2.
6367
6368 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
6369
6370         * i386.h: Remove useless definition of "I386" and misleading
6371         comment above it.
6372
6373 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
6374
6375         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
6376         under which TREE_PERMANENT will be set.
6377         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
6378         build1): Use TREE_SET_PERMANENT.
6379         * print-tree.c (print_node): Don't report value of
6380         TREE_PERMANENT if ggc_p is true.
6381
6382         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
6383         decide whether to give a type a new alias set.
6384         * objc/objc-act.c (build_objc_string_object): Never copy the string.
6385         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
6386         of value of 'obstack'.
6387
6388
6389 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6390
6391         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
6392
6393 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6394
6395         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
6396         * cpplib.c (cpp_get_token): Produce them.
6397         * cppexp.c (cpp_lex): Handle them.
6398
6399 2000-02-23  Nick Clifton  <nickc@cygnus.com>
6400
6401         * config/arm/arm.c (arm_comp_type_attributes): Simply and
6402         comment tests on type attributes.
6403
6404 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6405
6406         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
6407         conform to documentation.
6408         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
6409         to check for special cases.
6410         * sh-protos.h (sh_loop_align): Declare.
6411         * sh.c (sh_loop_align): Define.
6412
6413 2000-02-22  Andrew Haley  <aph@cygnus.com>
6414
6415         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
6416         (SIZE_TYPE): Is 32 bits when using -mgp32.
6417         (PTRDIFF_TYPE): Ditto.
6418
6419 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6420
6421         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
6422
6423 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
6424
6425         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
6426         BIGGEST_FIELD_ALIGNMENT a constant.
6427
6428 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
6429
6430         * dwarf2out.c (output_line_info): Put the marker for the end of
6431         the line number info at the actual end.
6432         (gen_struct_or_union_type_die): Use decl_function_context 
6433         to check for local classes.
6434         * dwarfout.c (output_type): Likewise.
6435
6436 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
6437
6438         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
6439         for arguments with a mode, but no type.
6440         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
6441         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
6442         * pa/long_double.h: New file.
6443         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
6444         both have 128bit wide long doubles.
6445         * configure: Rebuilt.
6446
6447 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6448
6449         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
6450
6451         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
6452         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
6453         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
6454
6455         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
6456
6457         * integrate.c (compare_blocks, find_block): Likewise.
6458
6459         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
6460
6461         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
6462
6463         * stmt.c (stmt_status, set_file_and_line_for_stmt,
6464         expand_asm_operands): Likewise.
6465
6466 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
6467
6468         * predict.c (estimate_probability): Added the pointer heuristic to
6469         the collection of static branch predictors.
6470
6471 2000-02-21  Catherine Moore  <clm@cygnus.com>
6472
6473         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
6474         * invoke.texi (-mfix7000): Document.
6475
6476 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
6477
6478         * diagnostic.c (init_output_buffer): Make it possible to output at
6479         least 32 characters if we're given a too long prefix.
6480
6481 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
6482
6483         * varasm.c (initializer_constant_valid_p): Call
6484         lang_expand_constant to simplify the constant.
6485
6486 2000-02-20  Bruce Korb  <bkorb@gnu.org>
6487
6488         * fixinc/inclhack.def(stdio_va_list):
6489         typedef needs to be disabled.
6490         * fixinc/inclhack.sh: regen
6491         * fixinc/fixincl.x: regen
6492
6493 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
6494
6495         * print-rtl.c (print_rtx): Don't print addresses when
6496         flag_dump_unnumbered.
6497
6498 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6499
6500         * sparc.c (sparc_output_scratch_registers): Mark parameter with
6501         ATTRIBUTE_UNUSED.
6502         (sparc_va_arg, sparc_flat_output_function_prologue,
6503         sparc_flat_output_function_epilogue): Cast value to unsigned in
6504         comparison.
6505         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
6506         
6507         * sparc.md: Add default case in switch.
6508
6509 2000-02-19  Richard Henderson  <rth@cygnus.com>
6510
6511         * c-typeck.c (add_pending_init): Don't abort for multiple
6512         fields at the same offset.
6513         (pending_init_member): Test the correct member.
6514
6515 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6516
6517         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
6518         instead of SImode.
6519         (start_catch_handler) : Same.
6520
6521 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
6522
6523         * Makefile.in: Have flow.o depend on $(EXPR_H)
6524
6525 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6526
6527         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
6528         * c-decl.c (duplicate_decls, finish_enum): Likewise.
6529         (finish_decl): Remove -Wlarger-than code from here.
6530         * flags.h (id_clash_len): Now int.
6531         (larger_than_size): Now HOST_WIDE_INT.
6532         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
6533         Clean up checking to see if in table.
6534         (make_bit_field_ref): Remove extra parm to bitsize_int.
6535         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
6536         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
6537         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
6538         and for computing size of decl.
6539         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
6540         Move -Wlarger-than code to here.
6541         (layout_record): Remove extra arg to bitsize_int.
6542         Set TYPE_BINFO_SIZE_UNIT.
6543         (layout_union): Remove extra arg to bitsize_int.
6544         Use proper type for size of QUAL_UNION.
6545         (layout_type): Remove extra arg to bitsize_int.
6546         * toplev.c (id_clash_len): Now int.
6547         (larger_than_size): Now HOST_WIDE_INT.
6548         (decode_W_option): Clean up id-clash and larger-than- cases.
6549         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
6550         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
6551         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
6552         (struct tree_decl): New field size_unit.
6553         (size_int_wide): No HIGH operand; NUMBER is now signed.
6554         (size_int_2): Deleted.
6555         (size_int, bitsize_int): Don't use it and rework args.
6556         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
6557
6558 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
6559
6560         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
6561
6562 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
6563
6564         * invoke.texi (Warning Options): Add an explanation of why
6565         you might want the -Wfloat-equal flag.
6566
6567 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6568
6569         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
6570         * cppinit.c (new_pending_define): Add cast to avoid warning.
6571         * expmed.c (extract_bit_field): Likewise.
6572         * flow.c (enum reorder_skip_type): New type.
6573         (skip_insns_between_blcok): New it.
6574         Rework to avoid warning about possibly undefined variable.
6575         * function.c (assign_parms): Make thisparm_boundary unsigned.
6576         * genrecog.c (write_switch): Cast XWINT result to int.
6577         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
6578         * mips-tfile.c (init_file): Make two versions of FDR intializer:
6579         one for MIPS and one for Alpha.
6580         (get_tag, copy_object): Add casts to avoid warnings.
6581         * optabs.c (init_one_libfunc): Cast NAME to (char *).
6582         * reload.c (find_reloads): Make TYPE enum reload_type.
6583         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
6584         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
6585         * varasm.c (compare_constant_1): Add cast to avoid warning.
6586         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
6587         to (char *).
6588         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
6589         Cast switch operand of size to int.
6590         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
6591         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
6592         in unhandled case.
6593
6594 2000-02-18  Nick Clifton  <nickc@cygnus.com>
6595
6596         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
6597         anything for an alignment of zero.
6598
6599         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
6600         anything for an alignment of zero.
6601
6602 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
6603
6604         * gcc.texi (Bug Reporting): Refer to bugs.html.
6605         (Bug Lists): Likewise.
6606         * system.h (GCCBUGURL): New preprocessor define.
6607         * rtl.c (fancy_abort): Use it.
6608         * gcc.c (main): Likewise.
6609
6610 2000-02-18  Richard Henderson  <rth@cygnus.com>
6611
6612         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
6613         (life_analysis_1): Subsume into ...
6614         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
6615         Use update_life_info for the relaxation.
6616         (update_life_info): Update REG_BASIC_BLOCK for registers live on
6617         entry and regs_live_at_setjmp.
6618         (set_noop_p): Simplify.
6619         (notice_stack_pointer_modification_1): Renamed from s/_1//.
6620         (record_volatile_insns): Split into ...
6621         (delete_noop_moves): ... here,
6622         (notice_stack_pointer_modification): ... here,
6623         (insn_dead_p): ... and here.
6624         (propagate_block): Don't query INSN_VOLATILE.
6625         (mark_used_regs): Mind !PROP_REG_INFO.
6626         * toplev.c (rest_of_compilation): Call mark_constant_function here,
6627         not in life_analysis.
6628
6629 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
6630
6631         * loop.c (canonicalize_condition): New function,
6632         broken out of get_condition.
6633         (get_condition): Use it.
6634         * expr.h (canonicalize_condition): Prototype it.
6635
6636         * tree.h (tree_int_cst_msb): Declare.
6637         * tree.c (tree_int_cst_msb): New function.
6638
6639 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
6640
6641         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
6642         isn't set.
6643
6644         * invoke.texi (-fmessage-length=n): Document.
6645
6646 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
6647
6648         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
6649
6650 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
6651
6652         * function.c (thread_prologue_and_epilogue_insns): Put a line note
6653         after the prologue.
6654
6655 2000-02-17  Nick Clifton  <nickc@cygnus.com>
6656
6657         * config/arm/thumb.c: Replace includes of system headers with
6658         #include "system.h".
6659
6660 2000-02-16  Richard Henderson  <rth@cygnus.com>
6661
6662         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
6663         Add crtbeginS.o and crtendS.o.
6664         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
6665         (ENDFILE_SPEC): Use crtendS.o.
6666         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
6667
6668         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
6669         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
6670         shared and present.
6671         (__dso_handle): New variable.
6672         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
6673         bias to __CTOR_END__.
6674         
6675 2000-02-16  Richard Henderson  <rth@cygnus.com>
6676
6677         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
6678
6679 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6680
6681         * longlong.h (__clz_tab): Declare as static to match definition.
6682
6683 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
6684         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
6685         (XREF_FILE_NAME): Define.
6686
6687         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
6688         (EH_FRAME_SECTION_ASM_OP): Define.
6689         (IDENT_ASM_OP): Define.
6690         (TEXT_SECTION_ASM_OP): Define.
6691         (CPP_SPEC): Define.
6692         (CTORS_SECTION_ASM_OP): Define.
6693         (CTOR_SECTION_FUNCTION): Use it.
6694         (DTORS_SECTION_ASM_OP): Define.
6695         (DTOR_SECTION_FUNCTION): Use it.
6696
6697 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
6698
6699         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
6700         NOTE_BASIC_BLOCK.
6701
6702         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
6703         debug_bb_n): New functions.
6704         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
6705         * basic-block.h: Prototype new functions.
6706
6707 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
6708
6709         * configure.in: Add support for avr target.
6710         * configure: Rebuilt.
6711
6712         * invoke.texi: Add AVR invocation docs.
6713         * install.texi: Add information about AVR.
6714         * md.texi: Add AVR constraint letters description.
6715         * extend.texi: Add description for AVR specific attributes.
6716
6717 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
6718
6719         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
6720
6721 2000-02-16  Nick Clifton  <nickc@cygnus.com>
6722
6723         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
6724         (make_insn_raw): Move RTL check here.
6725
6726 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6727
6728         * version.c: Include gansidecl.h and version.h.
6729
6730         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
6731         
6732         * configure.in (gcc_version): When setting, narrow search to
6733         lines containing `version_string'.
6734
6735         * Makefile.in (mainversion): Likewise. 
6736         (GCC_H): New variable.
6737         (gcc.h): Delete target.
6738         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
6739         (version.o): Depend on version.h.
6740         (dbxout.o): Don't depend on gcc.h.
6741
6742 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6743                           Michael Meissner  <meissner@cygnus.com>
6744
6745         * md.texi (Simple Constraints): Add item about whitespace.
6746         * genoutput.c (strip_whitespace): New.
6747         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
6748         strip_whitespace for constraints.
6749         Test pointer using NULL, not 0.
6750
6751 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6752
6753         * cpplib.c (do_line): Pedwarn for #line > 32767.
6754
6755         * c-lex.c (readescape): Warn about '\x', but do not reject it.
6756
6757 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
6758
6759         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
6760         to default cpp spec.
6761         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
6762         * cpp.texi: Document __GNUC_PATCHLEVEL__.
6763         * cpp.1: Likewise.
6764
6765         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
6766         default spec.
6767
6768 2000-02-15  Denis Chertykov  <denisc@overta.ru>
6769
6770         * configure.in: Add support for avr target.
6771
6772 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6773
6774         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
6775         (sh_addr_diff_vec_mode): Don't declare.
6776         * sh.c (sh_addr_diff_vec_mode): Delete.
6777
6778 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6779
6780         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
6781
6782 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6783
6784         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
6785         (smulsi3_highpart_i): Name.
6786         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
6787         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
6788         (smulsi3_highpart, umulsi3_highpart): Likewise.
6789
6790         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
6791         correctly independent of endianness.
6792         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
6793         confuse the optimizers.
6794         (mulsidi3+1, umulsidi3+1): New define_split.
6795
6796 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
6797
6798         * config/sh/sh.md: Guard insn splits against illegal registers.
6799         * config/sh/sh.h: Correct comment about macros.
6800
6801 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6802                           Andrew MacLeod  <amacleod@cygnus.com>
6803
6804         * Makefile.in (lcm.o): Depend on insn-attr.h.
6805         * basic-block.h (optimize_mode_switching): Declare.
6806         * lcm.c (tm_p.h, insn-attr.h): #include.
6807         (seginfo, bb_info): New structs.
6808         (antic, transp, comp, delete, insert) : New file-scope static variables.
6809         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
6810         (reg_becomes_live, optimize_mode_switching): Likewise.
6811         * tm.texi: Add description of mode switching macros.
6812         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
6813
6814         * sh-protos.h (remove_dead_before_cse): Remove prototype.
6815         (fldi_ok, fpscr_set_from_mem): New prototypes.
6816         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
6817         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
6818         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
6819         (sh_flag_remove_dead_before_cse): Remove declaration.
6820         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
6821         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
6822         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
6823         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
6824         (barrier_align): Allow for JUMP_INSNS containing a parallel.
6825         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
6826         (fldi_ok): New function.
6827         (get_fpscr_rtx): Add fpscr_rtx as GC root.
6828         (emit_sf_insn): Only generate fpu switches when optimize < 1.
6829         (emit_df_insn): Likewise.
6830         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
6831         (sh_flag_remove_dead_before_cse): Delete.
6832         (get_free_reg, fpscr_set_from_mem): New functions.
6833         * sh.md (movdf, movsf): Remove no_new_pseudos code.
6834         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
6835
6836 2000-02-15  Loren Rittle  <ljrittle@acm.org>
6837
6838         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
6839
6840 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6841
6842         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
6843         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
6844
6845         * cccp.c: Include version.h and/or don't declare `version_string'.
6846         * collect2.c: Likewise.
6847         * alpha.c: Likewise.
6848         * arm/aof.h: Likewise.
6849         * arm/coff.h: Likewise.
6850         * arm/elf.h: Likewise.
6851         * arm/pe.h: Likewise.
6852         * arm/tcoff.h: Likewise.
6853         * arm/telf.h: Likewise.
6854         * arm/tpe.h: Likewise.
6855         * arm/vxarm.h: Likewise.
6856         * convex/convex.c: Likewise.
6857         * i386/dgux.c: Likewise.
6858         * i386/sun386.h: Likewise.
6859         * m88k/m88k.c: Likewise.
6860         * mcore/mcore-pe.h: Likewise.
6861         * mips/mips.h: Likewise.
6862         * romp/romp.h: Likewise.
6863         * sh/sh.c: Likewise.
6864         * cpphash.c: Likewise.
6865         * cppinit.c: Likewise.
6866         * dwarf2out.c: Likewise.
6867         * dwarfout.c: Likewise.
6868         * gcc.c: Likewise.
6869         * gcc.h: Likewise.
6870         * mips-tfile.c: Likewise.
6871         * protoize.c: Likewise.
6872         * toplev.c: Likewise.
6873         * tree.h: Likewise.
6874         
6875         * version.c (version_string): Constify a char*.
6876
6877         * version.h: New file.
6878
6879 2000-02-14  Nick Clifton  <nickc@cygnus.com>
6880
6881         * configure.in: Add mcore-elf and mcore-pe targets.
6882         * configure: Regenerate.
6883
6884         * NEWS: Add note that MCore port has been contributed.
6885
6886         * invoke.texi: Document command line switches for MCore port.
6887         * install.texi: Add MCore to list of supported targets.
6888
6889 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
6890
6891         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
6892         then we will need to import the frame handling functions.
6893         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
6894         to import the frames themselves.
6895
6896 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
6897                           Jason Eckhardt  <jle@cygnus.com>
6898
6899         * basic_block.h: Added prototype for reorder_basic_blocks.
6900         * toplev.c: Changes to add -freorder-blocks and graph dump after
6901         block reordering is done.
6902         * flow.c (reorder_block_def): New structure for use during block
6903         reordering.
6904         (REORDER_BLOCK_*): New macros to access members of above structure.
6905         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
6906         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
6907         functions for block reordering.
6908
6909 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6910
6911         * gcc.texi (Passes): Fix typo.
6912         * md.texi (Standard Names): Ditto.
6913         * tm.texi (Storage Layout): Ditto.
6914
6915 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
6916
6917         * cpplib.c (do_define): Only free the old definition if it
6918         actually had one.
6919
6920 2000-02-13   Neil Booth  <NeilB@earthling.net>
6921
6922         * cppfiles.c (read_and_prescan): When emitting deferred
6923         newlines, test speccase[] again instead of checking each
6924         possible whitespace character in turn.  When we encounter \r,
6925         look behind for \n first, then ahead.
6926
6927 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
6928
6929         * cse.c (cse_altered): New internal flag.
6930         (cse_insn): Set it if we changed an insn.
6931         (cse_main): Clear cse_altered before each basic block.
6932         Only garbage collect if cse_altered is true afterward.
6933
6934 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6935
6936         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
6937
6938 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
6939
6940         * combine.c (simplify_comparison): Fix typo.
6941
6942 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
6943
6944         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
6945         consistently.
6946
6947 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6948
6949         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
6950         previously inserted node instead of root node.  Caller changed.
6951
6952 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6953
6954         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
6955
6956 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6957
6958         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
6959         __dereg_frame_dtor): Add prototype argument.
6960
6961         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
6962
6963         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
6964
6965         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
6966
6967         * gthr-vxworks.h (__gthread_once): Likewise.
6968
6969         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
6970
6971 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
6972
6973         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
6974         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
6975         stack pointer in functions w/o saved registers, output LEAVE more often
6976         on TARGET_USE_LEAVE machines.
6977
6978 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
6979
6980         * config/arm/arm.c (arm_init_cumulative_args); New function:
6981         Initlaise the CUMULATIE_ARGS strcuture for a function
6982         defintion. 
6983         (arm_function_arg): New function: Determine where to place a
6984         function's argument.  Also handles deciding the function's
6985         call cookie.
6986         (current_file_function_operand): New function: Return true if
6987         the symbol is a function which has already been compiled.
6988         (arm_is_long_call_p): New function: Return true if the
6989         indicated function should be called via a long call.
6990         (arm_valid_type_attribute_p): New function: Return true if the
6991         attribute is a valid, arm specific, attribute.
6992         (arm_comp_type_attribute): New function: Return true if the
6993         two types have compatable, arm specific, attributes.
6994
6995         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
6996         structure.
6997         (FUNCTION_ARG): Redefine to call arm_function_arg.
6998         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
6999         structure field.
7000         (INIT_CUMULATIVE_ARGS): Redefine to call
7001         arm_init_cumulative_args.
7002         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
7003         field. 
7004         (SETUP_INCOMING_VARARGS): Redefine to use correct structure 
7005         field. 
7006         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
7007         functions.
7008         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
7009         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
7010         (COMP_TYPE_ATTRIBUTES): Define.
7011
7012         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
7013         if a long call is needed.
7014         (call_value): Call arm_is_long_call_p to decide if a long call
7015         is needed.
7016         (call_symbol): Call arm_is_long_call_p to decide if a long call
7017         is needed.
7018
7019         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
7020
7021 2000-02-11  Denis Chertykov  <denisc@overta.ru>
7022
7023         * README.AVR: New file with information about the avr ports.
7024         * config/avr: New directory with avr port files.
7025
7026 2000-02-11  Andreas Jaeger  <aj@suse.de>
7027
7028         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
7029
7030 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
7031
7032         * cpphash.c: Fix formatting, update commentary.
7033         (dump_definition): Take three separate arguments instead of a
7034         MACRODEF structure argument.
7035         * cpphash.h: Update prototype of dump_definition.
7036         * cppinit.c (cpp_finish): Update call of dump_definition.
7037
7038         * cpplib.c (do_define): Always create new hash entry with
7039         T_MACRO type.  Remove redundant check for redefinition of
7040         poisoned identifier.  Update call of dump_definition.
7041         (do_undef): Don't call check_macro_name.  Rename sym_length to
7042         len.
7043         (do_error, do_warning): Don't use copy_rest_of_line or
7044         SKIP_WHITE_SPACE.
7045         (do_warning): Don't use pedwarn for the actual warning,
7046         only the notice about its not being in the standard.  (Fixes
7047         bug with #warning in system headers.)
7048         (do_ident): Stricter argument checking - accept only a single
7049         string after #ident.  Also, macro-expand the line.
7050         (do_xifdef): Use cpp_defined.  De-obfuscate.
7051
7052         (do_pragma): Split out specific pragma handling to separate
7053         functions.  Use get_directive_token.  Update commentary.  Do
7054         not pass on #pragma once or #pragma poison to the front end.
7055         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
7056         do_pragma_default): New.
7057
7058 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
7059
7060         * jump.c (jump_optimize_1): The first operand in a relational
7061         can be a CONST_INT.
7062         * optabs.c (emit_conditional_move): Handle relationals which
7063         have a known true/false result.
7064
7065 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
7066
7067         * function.c (thread_prologue_and_epilogue_insns): Don't insert
7068         a RETURN insn into a block which already ends with a jump.
7069
7070 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
7071
7072         * haifa-sched.c (BUF_LEN): Increase a lot.
7073
7074 2000-02-11  Nick Clifton  <nickc@cygnus.com>
7075
7076         * configure.in: Add tm_p_file specification for thumb targets.
7077         * configure: Regenerate.
7078
7079         * config/arm/thumb-protos.h: New file: Prototypes for exported
7080         functions defined in thumb.c.
7081
7082 2000-02-11  Robert Lipe  <robertl@sco.com>
7083
7084         * Makefile.in (bootstrap-lean): Remove additional files.
7085         (bootstrap2-lean): Likewise.
7086         (VOL_FILES): List of files for above.
7087
7088 2000-02-11  Nathan Sidwell  <nathan@acm.org>
7089
7090         * cpphash.c (special_symbol): Remove spurious argument to
7091         cpp_lookup.
7092
7093 2000-02-11  Joel Sherrill (joel@OARcorp.com>
7094
7095         * configure.in: (i*86-*-rtems*): Swapped elf and coff
7096         stanzas.
7097         * configure: Rebuilt.
7098
7099 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
7100         
7101         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
7102
7103 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
7104
7105         * pa.c, pa.h: Remove trigraph sequences within comments.
7106
7107 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
7108
7109         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
7110
7111 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
7112
7113         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
7114
7115 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7116         
7117         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
7118
7119 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7120
7121         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
7122         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
7123         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
7124         (ASM_FILE_END): Use c4x_file_end.
7125         * config/c4x/c4x.c (c4x_global_label): New function.
7126         (c4x_external_ref, c4x_file_end): Likewise.
7127
7128         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
7129         (c4x_external_ref, c4x_end_file): Likewise.
7130
7131 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
7132
7133         * cppexp.c: Don't include cpphash.h.
7134         (parse_charconst, cpp_lex): Use cpp_defined.
7135         (cpp_lex): Use get_directive_token throughout.  Remove
7136         unnecessary cases from switch.  Move assertion-handling code
7137         down to OTHER case.
7138         (cpp_parse_expr): If we see '+' or '-', check the context to
7139         determine if they are unary or binary operators.  Streamline
7140         the jumps a bit.  Do not call skip_rest_of_line.
7141
7142         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
7143         static.  Export get_directive_token.  Update commentary.
7144         (cpp_defined): New function.
7145         (do_define): Remove reference to T_PCSTRING.  Call
7146         free_definition to release memory for old definition, when
7147         redefining a macro.
7148         (eval_if_expression): Set only_seen_white to 0 before calling
7149         cpp_parse_expr.  Call skip_rest_of_line after it returns.
7150         (cpp_read_check_assertion): Don't preserve a pointer into the
7151         token buffer across a call to cpp_get_token.
7152
7153         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
7154         * cppfiles.c (redundant_include_p): Use cpp_defined.
7155         * cpphash.c (free_definition): New function.
7156         (delete_macro): Use it.  Update commentary.
7157         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
7158         free_definition.
7159         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
7160         from enum node_type.  Prototype cpp_defined and get_directive_token.
7161         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
7162
7163         * fix-header.c (check_macro_names): Use cpp_defined.
7164         (read_scan_file): Set inhibit_warnings and inhibit_errors in
7165         the options structure.
7166
7167 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7168
7169         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
7170
7171 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
7172
7173         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
7174         rather than die->die_tag.
7175
7176 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7177
7178         * combine.c (make_extraction, force_to_mode): Avoid warning on
7179         mixed-signedness conditionals.
7180         (make_field_assignment, nonzero_bits): Likewise.
7181         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
7182         (store_split_bit_field, extract_split_bit_field): Likewise.
7183         (extract_fixed_bit_field, store_bit_field, 
7184         * expr.c: Change alignment to be unsigned everywhere.
7185         (move_by_pieces, store_constructor_field, store_constructor): 
7186         Alignment parm is unsigned.
7187         (emit_block_move, emit_group_load, emit_group_store): Likewise.
7188         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
7189         (do_compare_rtx_and_jump): Likewise.
7190         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
7191         Compare align with GET_MODE_ALIGNMENT.
7192         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
7193         (get_inner_reference): Likewise.
7194         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
7195         (expand_assignment): Local vars for alignment now unsigned.
7196         (store_constructor, store_field, expand_expr, do_jump): Likewise.
7197         (do_compare_and_jump): Likewise.
7198         (store_field): Call new function expr_align.
7199         * expr.h (emit_block_move, emit_group_load, emit_group_store):
7200         Alignment arg now unsigned.
7201         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
7202         (do_compare_rtx_and_jump, store_bit_field): Likewise.
7203         (extract_bit_field): Likewise.
7204         * fold-const.c (add_double): Add cast to eliminate signedness warning.
7205         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
7206         (get_best_mode): Alignment arg is unsigned.
7207         * rtl.h (move_by_pieces): Likewise.
7208         * store-layout.c (maximum_field_alignment, set_alignment):
7209         Now unsigned.
7210         (layout_decl): Alignment arg is now unsigned.
7211         Remove unneeded casts.
7212         (layout_record, layout_union, layout_type): Remove unneeded casts.
7213         Local alignment variables now unsigned.
7214         (get_best_mode): Alignment arg now unsigned.
7215         * tree.c (expr_align): New function.
7216         * tree.h (expr_align): Likewise.
7217         (maximum_field_alignment, set_alignment): Now unsigned.
7218         (get_inner_reference): Alignment argument is now pointer to unsigned.
7219         * varasm.c (assemble_variable): Add cast to eliminate warning.
7220
7221 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
7222
7223         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
7224         then store directly into op0.
7225
7226         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
7227         the CALL_INSN, and emit the note immediately after it.
7228
7229 2000-02-10  Nick Clifton  <nickc@cygnus.com>
7230
7231         * config/arm/thumb.md (epilogue): Include a (return) in the
7232         generated insn, and emit it using emit_jump_insn not
7233         emit_insn. 
7234
7235 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
7236
7237         * function.c (assign_temp): Change zero-sized arrays to size 1.
7238         * integrate.c (expand_inline_function): Do not update
7239         stack_alignment_needed
7240         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
7241         add some sanity checking, remove optimization for function with
7242         zero frame size.
7243
7244 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7245
7246         * flow.c (mark_regs_live_at_end): Delete unused variables.
7247
7248         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
7249
7250         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
7251         in macro FRAME_GROWS_DOWNWARD.
7252
7253         * stmt.c (expand_end_bindings): Delete unused variable.
7254
7255         * unroll.c (iteration_info): Mark parameter `loop' with
7256         ATTRIBUTE_UNUSED.
7257
7258 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7259
7260         * fixinc/server.c (load_data): Return NULL if the marker line is
7261         not found.
7262         (run_shell): If load_data returns NULL, retry the command once, in
7263         a new shell.
7264
7265         * configure: Rebuilt.
7266
7267 2000-02-09  Bruce Korb  <bkorb@gnu.org>
7268
7269         * gcc/fixincludes:  ** DELETED **
7270         * gcc/fixcpp:  ** DELETED **
7271         * gcc/fixinc-nt.sed:  ** DELETED **
7272         * gcc/just-fixinc:  ** DELETED **
7273         * gcc/Makefile.in:  Removed out-dated commentary
7274         * gcc/configure.in: Removed fast-fixincludes disablement.
7275         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
7276
7277 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
7278         * function.c (thread_prologue_and_epilogue_insns): Uncomment
7279         last change.
7280
7281 2000-02-09  Richard Henderson  <rth@cygnus.com>
7282
7283         * jump.c (delete_insn): Don't delete user labels at -O0.
7284
7285 2000-02-09  Robert Lipe  <robertl@sco.com>
7286
7287         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
7288         Don't link with HOST_LIBS. 
7289
7290 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
7291
7292         * configure.in: Correct --help text for --with-dwarf2.
7293         Put tm-dwarf2.h after other tm files, if it's requested.
7294         * configure: Regenerate.
7295         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
7296         defining it.
7297
7298 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
7299
7300         * cpplib.h: Provide HASHNODE typedef and forward decl of
7301         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
7302         DEFINITION, struct hashnode, struct macrodef, struct
7303         definition, scan_decls prototype, default defn of
7304         INCLUDE_LEN_FUDGE moved elsewhere.
7305
7306         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
7307         definition, and struct hashnode moved here. Remove the unused
7308         'predefined' field from struct definition.  Replace the 'args'
7309         union with its sole member.  All users updated (cpphash.c).
7310         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
7311         multiple include guard.
7312
7313         * cpphash.c (hashf): Make static; use better algorithm; drop
7314         HASHSIZE parameter; return an unsigned int.
7315         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
7316         used. Calculate HASHSIZE modulus here.
7317         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
7318         here.
7319         (create_definition): Drop PREDEFINITION parameter.
7320         * cpplib.c (do_define): Don't calculate a hash value here.
7321         Don't pass (keyword == NULL) to create_definition.
7322
7323         * scan.h: Prototype scan_decls here.
7324         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
7325         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
7326         callers of cpp_lookup and cpp_install updated.
7327         
7328         * cpphash.c (macarg): Hoist all the flag diddling out of the
7329         function...
7330         (macroexpand): ... and out of the loop that calls macarg.
7331         Skip over the initial paren before macro arguments with
7332         cpp_get_non_space_token; point may be some distance before
7333         that paren.  Abort if it's not there.
7334
7335         * cpplib.c (parse_clear_mark): Delete function.
7336         (parse_set_mark, parse_goto_mark): Make static.
7337         (ACTIVE_MARK_P): New macro.
7338         (skip_block_comment, skip_line_comment): Do not bump the line
7339         if ACTIVE_MARK_P is true.
7340         (cpp_pop_buffer): The buffer to be popped may not have an
7341         active mark.
7342         (cpp_get_token): When looking for the initial paren before
7343         macro arguments, only set a mark in a file buffer, Always
7344         return to that mark before proceeding to call macroexpand or
7345         return a NAME token.
7346
7347         * cpplib.h: Remove prototypes of parse_set_mark,
7348         parse_clear_mark, parse_goto_mark.
7349         (struct cpp_options): Rename 'put_out_comments' to
7350         'discard_comments' and invert its sense.
7351         * cppinit.c, cpphash.c, cpplib.c: All users of
7352         put_out_comments changed to use discard_comments, with
7353         opposite sense.
7354
7355 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
7356
7357         * function.c (thread_prologue_and_epilogue_insns): Don't delete
7358         the edge from a block that both jumps and falls through to the
7359         fallthru block.
7360
7361 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
7362
7363         * config/arm/arm.md (movsi): In PIC mode, make sure that a
7364         constant source address is legitimate.
7365
7366 2000-02-09  Philip Blundell  <pb@futuretv.com>
7367
7368         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
7369         correctly.
7370
7371         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
7372         generating PIC.
7373         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
7374
7375 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
7376
7377         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
7378         ends with a newline and a NUL.  Don't be so clever manipulating
7379         strings.
7380
7381 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
7382
7383         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
7384         not to BIGGEST_ALIGNMENT.
7385
7386 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
7387
7388         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
7389         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
7390         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
7391         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
7392         * frame.c (execute_cfa_insn): Handle 
7393         DW_CFA_GNU_negative_offset_extended.
7394
7395 2000-02-08  Richard Henderson  <rth@cygnus.com>
7396
7397         * flow.c (tidy_fallthru_edges): Split out from ...
7398         (delete_unreachable_blocks): ... here.
7399         (find_basic_blocks): Use it.
7400
7401 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7402
7403         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
7404
7405 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
7406
7407         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
7408         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
7409         (fix-header.o): Don't depend on cpphash.h.
7410
7411         * scan.c (hashstr): New function. 
7412         * scan.h: Prototype it.
7413         * fix-header.c: Don't include cpphash.h.  Use hashstr.  
7414         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
7415         hashstr.  Report hash table statistics.  Add private     
7416         definition of xrealloc.
7417
7418 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7419
7420         * i386.h (TARGET_SWITCHES): Fix typo in option name.
7421
7422 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
7423
7424         * function.c (thread_prologue_and_epilogue_insns): Don't replace
7425         jumps with returns unless they are jumps to the fallthru block.
7426
7427 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
7428
7429         * i386.md (addqi3_cc): Fix contraints.
7430
7431 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7432
7433         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
7434
7435 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
7436
7437         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
7438         carriage return after a macro name.
7439
7440 2000-02-07  Fred Fish  <fnf@be.com>
7441
7442         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
7443         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
7444
7445 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
7446
7447         * cppfiles.c (deps_output): Count spacers in deps_column.
7448
7449 2000-02-07  Neil Booth  <NeilB@earthling.net>
7450
7451         * cppinit.c (initialize_dependency_output): If there is no
7452         suffix, don't try to look for known suffixes.  Use strrchr.
7453         (cpp_start_read): Remove duplicate initialization.
7454
7455 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
7456
7457         * calls.c (compute_argument_block_size): New argument
7458         preferred_stack_boundary.
7459         (expand_call): update cfun->preferred_stack_boundary, update call of
7460         compute_argument_block_size
7461         (emit_library_call): Increate cfun->preferred_stack_boundary
7462         to PREFERRED_STACK_BOUNDARY
7463         (emit_library_call_value): Likewise.
7464         * explow.c (allocate_dynamic_stack_spave): Likewise.
7465         * function.c (prepare_function_start): Set
7466         cfun->preferred_stack_boundary
7467         * function.h (struct function): Add preferred_stack_boundary field.
7468         * integrate.c (expand_inline_function): Update
7469         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
7470         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
7471         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
7472
7473 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
7474
7475         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
7476         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
7477         cpp_pedwarn, cpp_pedwarn_with_line,
7478         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
7479         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
7480         v_cpp_error_with_line, v_cpp_warning_with_line,
7481         cpp_message_from_errno, cpp_perror_with_name): Delete.
7482
7483         * cpperror.c (cpp_print_containing_files): Take starting
7484         buffer as argument.
7485         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
7486         (v_cpp_message): Now called directly by all entry points.
7487         Remove -1 case.
7488         (cpp_pfatal_with_name, cpp_message): Delete.
7489         (cpp_notice_from_errno, cpp_ice): New functions.
7490         (cpp_notice): Is now for reporting error conditions, just
7491         without an associated file.
7492         (cpp_error, cpp_error_with_line): Don't do anything if
7493         opts->inhibit_errors is on.
7494         (cpp_pedwarn_with_file_and_line): Take column argument also.
7495
7496         * cpplib.h: Update prototypes of exported functions.
7497         (struct cpp_options): Add inhibit_errors.
7498
7499         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
7500         non-error messages.  Include intl.h.
7501
7502         * cppinit.c, cppmain.c: Likewise.  Also, use
7503         cpp_notice_from_errno instead of cpp_perror_with_name or
7504         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
7505
7506         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
7507         report internal errors.
7508
7509         * cpplib.c (do_define): Switch bcopy to memcpy.
7510         Give cpp_pedwarn_with_file_and_line a dummy column argument.
7511
7512         * cpplib.c (copy_rest_of_line): Revert previous change: don't
7513         bail out early if we hit a line comment.
7514
7515 2000-02-06  Richard Henderson  <rth@cygnus.com>
7516
7517         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
7518         * basic-block.h: Declare them.
7519         * emit-rtl.h (active_insn_p): New.
7520         (next_active_insn, prev_active_insn): Use it.
7521         * rtl.h: Declare it.
7522         * function.c (emit_return_into_block): New.
7523         (thread_prologue_and_epilogue_insns): Insert return insns instead
7524         of epilogues when possible.
7525         * jump.c (jump_optimize_1): Remove code to insert a return insn
7526         on the fallthru to the exit block.
7527
7528         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
7529         and for non-empty stack frames.
7530         * i386.md (return): Expand to return-pop as needed.
7531
7532 2000-02-06  Richard Henderson  <rth@cygnus.com>
7533
7534         * simplify-rtx.c (simplify_relational_operation): Canonicalize
7535         constant to op1 for testing.
7536
7537 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7538
7539         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
7540         (fixuns_truncqfqi2): Use it.
7541
7542 2000-02-06  Richard Henderson  <rth@cygnus.com>
7543
7544         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
7545         as a TYPE_LEA insn.
7546
7547         * i386.md (widening and peepholes): Mask the constant instead of
7548         using gen_lowpart.
7549
7550 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
7551
7552         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
7553         input pointer before possibly branching off to the backslash
7554         code.
7555         * cpphash.c (macroexpand): Correctly delete \r escapes when
7556         stringifying parameters.
7557         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
7558         if we can; bail out early if we hit a line comment.
7559         (handle_directive): Treat '# 123' in an .S file just like
7560         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
7561         Return 1 for '# not_a_directive'.
7562         (get_directive_token): Pop macro buffers here, so that
7563         cpp_get_token can't sneakily move past a newline.
7564         Add sanity checks. 
7565         (cpp_get_token): goto randomchar if handle_directive returns 0.
7566
7567         * cppalloc.c: Update copyright.
7568         * cpplib.c: Merge all the static function prototypes into one
7569         block.
7570         * cpplib.h: Remove #if 0 block.
7571
7572         * cpperror.c: Remove #ifdef EMACS block.
7573         * cppmain.c: Likewise.
7574         * cpphash.c: Remove #if 0 blocks.
7575         * cppinit.c: Remove #if 0 blocks, and the -lint option.
7576         * cpplib.c: Remove #if 0 blocks and code referencing
7577         pcp_inside_if or for_lint.  Remove duplicate error message.
7578         Fix error messages for #else after #else or #elif.  Reformat.
7579         Remove archaic TODO list.
7580         * cpplib.h: Remove pcp_inside_if and for_lint flags.
7581
7582 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
7583
7584         * i386/osf1elf.h: Add missing backslash to multiline string.
7585
7586 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7587
7588         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
7589
7590 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7591
7592         * Makefile.in (c-common.o): Depend on $(EXPR_H).
7593
7594         * c-common.c: Include expr.h.
7595
7596         * c-pragma.c (mark_align_stack): Add prototype.
7597
7598         * caller-save.c (add_stored_regs): Likewise.
7599
7600         * combine.c (record_promoted_value): Likewise.
7601
7602         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
7603         Likewise.
7604
7605         * cppinit.c (new_pending_define): Likewise.
7606
7607         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
7608
7609         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
7610         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
7611         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
7612         class_scope_p): Likewise.
7613
7614         * dwarf2out.h (dwarf2out_set_demangle_name_func,
7615         dwarf2out_add_library_unit_info): Likewise.
7616
7617         * ggc.h (ggc_page_print_statistics): Likewise.
7618
7619         * haifa-sched.c (propagate_deps): Likewise.
7620
7621         * reg-stack.c (next_flags_user, record_label_references): Likewise.
7622
7623         * rtl.h (set_stack_check_libfunc): Likewise.
7624
7625         * toplev.h (set_fatal_function): Likewise.
7626
7627         * toplev.c (set_fatal_function): Delete prototype.
7628         
7629         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
7630         
7631 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
7632
7633         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
7634         (FUNC_END): Likewise.
7635
7636 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7637
7638         * caller-save.c: Include tm_p.h.
7639
7640 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7641
7642         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
7643
7644 2000-02-04  Neil Booth  <NeilB@earthling.net>
7645
7646         * cccp.c (main): Check 'dir' for a NULL pointer before passing
7647         it to strcmp.
7648
7649 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
7650
7651         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
7652         * genflags.c: Use the max_operand_1 logic from genemit.c to
7653         calculate how many arguments gen_insn prototypes have.  Remove
7654         NO_MD_PROTOTYPES ifdefs from the generated file.
7655         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
7656         file.  Cast gen_insn initializers to insn_gen_fn.
7657         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
7658         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
7659
7660 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7661
7662         * fixinc/Makefile.in (HDR): Add machname.h.
7663         (clean): Likewise.
7664
7665 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7666
7667         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
7668         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
7669         (c4x_cpu_version): Ditto.
7670         * config/c4x/c4x-protos.h: ... here.
7671
7672 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
7673
7674         * dwarf2out.c (add_abstract_origin_attribute): Don't call
7675         gen_abstract_function on our context if we're a nested function.
7676
7677 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7678
7679         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
7680         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
7681
7682 2000-02-04  Bruce Korb  <bkorb@gnu.org>
7683
7684         * fixinc/genfixes(machname.h):
7685         Move the functionality from gen-machine.h into this file.
7686         UNdef MN_NAME_PAT if there are no names to change.
7687         Also, be a little kinder when AutoGen is not present.
7688
7689         * fixinc/Makefile.in(machname.h):
7690         Change the generation rule to use genfixes.
7691
7692         * fixinc/fixfixes.c(machine_name):
7693         machine_name_fix's functionality now dependent upon whether
7694         MN_NAME_PAT is defined.
7695
7696         * fixinc/fixtests.c(machine_name):
7697         ditto.
7698
7699         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
7700         of MN_NAME_PAT.
7701
7702         * fixinc/fixlib.h(mn_get_regexps):
7703         ditto
7704
7705         * fixinc/gen-machine.h: DELETED
7706
7707 2000-02-04  Jan Hubicka  <jh@suse.cz>
7708             Richard Henderson  <rth@cygnus.com>
7709
7710         * i386.c (SAVE_REGS_FIRST): Remove.
7711         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
7712         (ix86_compute_frame_size): Likewise.
7713         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
7714         (ix86_emit_restore_regs): Remove.
7715         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
7716         when a frame pointer is in use.
7717         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
7718         instead of pop to restore a register when profitable; emit leave
7719         when profitable.
7720         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
7721         as a TYPE_LEA insn.
7722         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
7723         * i386.md (prologue_allocate_stack): Remove.
7724         (epilogue_deallocate_stack): Remove.
7725         (pro_epilogue_adjust_stack): New.
7726
7727 2000-02-04  Richard Henderson  <rth@cygnus.com>
7728
7729         * function.c (diddle_return_value): Rework to use a callback function.
7730         Use current_function_return_rtx if it's been set up.
7731         (do_clobber_return_reg, clobber_return_register): New.
7732         (do_use_return_reg, use_return_register): New.
7733         (expand_function_end): Use them.
7734         * stmt.c (expand_null_return): Likewise.
7735         * function.h: Declare them.
7736         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
7737         (mark_reg): Change arguments as appropriate for callback.
7738         * integrate.c (expand_inline_function): Revert 19 Jan change.
7739
7740 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7741
7742         * tm.texi (Values in Registers): Fix typo: "fo" "for".
7743         (Misc): Say the scheduler, not the Haifa scheduler.
7744
7745 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
7746
7747         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
7748         when in_mem is set.  Update all callers.
7749
7750 2000-02-04  Richard Henderson  <rth@cygnus.com>
7751
7752         * i386/openbsd.h (INT_ASM_OP): Define.
7753
7754 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7755
7756         * tm.texi: Fix various typos.
7757
7758 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
7759
7760         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
7761         (MD_STARTFILE_PREFIX_1): New macro.
7762
7763 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
7764
7765         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
7766         destination when needed.
7767         (strmovsi, strsetsi): New expander.
7768         (strmovsi_1, strsetsi_1): New pattern.
7769         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
7770         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
7771         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
7772         * invoke.texi (align-stringops, inline-all-stringops): Document.
7773
7774 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
7775
7776         * i386/netbsd.h (INT_ASM_OP): Define.
7777
7778 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
7779
7780         * cpplib.h (cpp_reader): Add new flag, no_directives.
7781         * cpphash.c (macarg): Set it.
7782         * cpplib.c (handle_directive): If no_directives is on and we
7783         find a directive, issue an error and discard the line.
7784
7785 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
7786
7787         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
7788         FP constants.  Add ! TARGET_FPU check for FP constants.
7789
7790 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
7791         
7792         * flow.c (find_basic_blocks): Don't kill label_value_list
7793         here.
7794         (cleanup_cfg): Kill it here.
7795
7796 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7797
7798         * expr.c (store_field): Ensure ALIGN is no stricter than the
7799         alignment of EXP.
7800
7801 2000-02-02  Richard Henderson  <rth@cygnus.com>
7802
7803         * jump.c (delete_insn): Partially revert 19 Jan change; 
7804         don't convert unused code labels to notes at -O0.
7805
7806 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7807
7808         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
7809         split_all_insns to recreate REG_LABEL notes for flow2 pass.
7810
7811 2000-02-01  Richard Henderson  <rth@cygnus.com>
7812
7813         * i386.c (general_no_elim_operand): New.
7814         (nonmemory_no_elim_operand): New.
7815         (ix86_expand_move): Copy eliminable operands before a push.
7816         * i386-protos.h: Declare new functions.
7817         * i386.h (CAN_ELIMINATE): Simplify.
7818         (PREDICATE_CODES): Update.
7819         * i386.md (push insns): Don't allow eliminable register operands.
7820
7821 2000-02-01  Richard Henderson  <rth@cygnus.com>
7822
7823         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
7824         replace BLKmode with DECL_RTL's mode.
7825
7826 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
7827
7828         * frame.c (find_fde): Convert for loop to do-while so compiler
7829         sees it's always executed at least once.
7830         * libgcc2.c (BBINBUFSIZE): Kill.
7831         (__bb_init_prg): Use fgets.
7832         (__bb_exit_trace_func): Don't paste strings.
7833         * unroll.c (unroll_loop): Initialize unroll_type, not
7834         unroll_number, and tweak logic to match.
7835
7836         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
7837         all failure paths.
7838         (ix86_flags_dependant): Likewise.  Disentangle control flow.
7839         (ix86_sched_reorder): Break guts out to
7840         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
7841         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
7842         any possible use.
7843
7844         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
7845         use string concatenation.  Don't save and restore esi.
7846
7847         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
7848         (machname.h): Remove script to separate file.  Use two-step
7849         sequence so target is not created if script fails.
7850         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
7851         identifiers are defined.
7852         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
7853         an empty string, machine_name doesn't need to do anything at
7854         all.
7855         (is_cxx_header): Add more cases to regexp.
7856         * fixinc/fixlib.h: Update prototype.
7857         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
7858         mn_get_regexps.
7859         * fixinc/fixincl.c: Define NO_BOGOSITY.
7860
7861         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
7862         (hp_sysfile): Add missing comma.
7863         (math_exception): Put the wrapper ifdefs at the beginning and
7864         the end of the file.
7865         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
7866
7867 2000-02-01  Richard Henderson  <rth@cygnus.com>
7868
7869         * sparc.c (fp_zero_operand): Turn into a normal predicate.
7870         Use CONST0_RTX.  Update all callers.
7871         * sparc.h, sparc-protos.h: Update accordingly.
7872         * sparc.md (fp mov insns): Use fp_zero_operand directly
7873         where applicable.
7874
7875 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7876
7877         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
7878         example.
7879
7880 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7881
7882         * Makefile.in (specs.ready): New target.
7883         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
7884
7885 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7886
7887         * fixinc.irix: Use unique filenames for writing into /tmp,
7888         * fixinc.ptx: Likewise.
7889         * fixinc.sco: Likewise.
7890         * fixinc.svr4: Likewise.
7891         * fixinc.winnt: Likewise.
7892
7893 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7894
7895         * tsystem.h: New file.
7896
7897         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
7898         s-crtS): Depend on tsystem.h.
7899
7900         * crtstuff.c: Include tsystem.h.
7901         * frame.c: Likewise.
7902         * libgcc2.c: Likewise.
7903
7904 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
7905
7906         * builtins.c (expand_builtin_memset): Expand for variable sized
7907         lengths too.
7908
7909 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au> 
7910
7911         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
7912         on ABI.
7913
7914 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7915
7916         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
7917
7918         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
7919
7920 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
7921
7922         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
7923         case 3->2 combining (combining with splitting) in which 2 is CC0
7924         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are 
7925         checked at the begining of the function with the aid of calling 
7926         function 'can_combine_p'. 
7927
7928 2000-01-31  Dave Brolley  <brolley@redhat.com>
7929
7930         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
7931
7932 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
7933
7934         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
7935         new label.
7936
7937 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7938
7939         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
7940         
7941         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
7942         PROTO -> PARAMS.
7943
7944 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
7945
7946         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
7947         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
7948         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
7949         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
7950         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
7951         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
7952         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
7953         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
7954         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
7955         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
7956         
7957         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
7958         Add %(cpp_cpu) to CPP_SPEC.
7959
7960         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
7961         Add %(cc1_cpu) to CC1_SPEC.
7962
7963 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
7964
7965         * c-decl.c (c_decode_option): Accept optional numeric argument to
7966         -Wformat and set warn_format.
7967         * c-common.c: Don't emit warning about non-constant printf format
7968         string unless warn_format > 1.
7969
7970 2000-01-30  Richard Henderson  <rth@cygnus.com>
7971
7972         * alpha.md (return_internal): Allow after reload only.
7973
7974 2000-01-30  Richard Henderson  <rth@cygnus.com>
7975
7976         * i386.c (ix86_compute_frame_size): Omit padding1 if the
7977         local frame size is zero.
7978
7979 2000-01-30  Richard Henderson  <rth@cygnus.com>
7980
7981         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
7982         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
7983         * alpha.md (return): Turn into an expander.
7984         (return_internal): Don't use $26.
7985         (epilogue): Emit the return insn.
7986
7987 2000-01-30  Richard Henderson  <rth@cygnus.com>
7988
7989         * alpha.md (negtf2, abstf2): Fix word order thinko.
7990         (extendsftf2): New.
7991         (trunctfsf2): Avoid intermediate rounding errors.
7992
7993 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
7994
7995         * cppfiles.c (find_position): Drop 'colp' argument, return the
7996         new line base.
7997         (read_and_prescan): Adjust to match.  Don't ever manipulate
7998         line or line_base except via find_position.
7999
8000 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
8001
8002         * c-parse.in: Apply Ulrich's changes from c-parse.y.
8003         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
8004         Regenerate.
8005
8006 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
8007
8008         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
8009         just print "<command line>".  If 'filename' is null or an
8010         empty string, print "<stdin>" for the filename.
8011         * cpplib.c (do_define): Don't print the 'location of the
8012         previous definition' message if we're still parsing the
8013         command line.
8014         (cpp_pedwarn_with_file_and_line): Always call
8015         cpp_file_line_for_message.
8016
8017 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
8018
8019         * flow.c (mark_regs_live_at_end): Fix typo.
8020
8021 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
8022
8023         * c-common.c: Adjust variable names, comments, help strings to c99.
8024         * c-lex.c: Likewise.
8025         * c-parse.y: Likewise.
8026         * c-tree.h: Likewise.
8027         * cccp.c: Likewise.
8028         * cpplib.h: Likewise.
8029         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
8030         * cppinit.c: Likewise.
8031
8032 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8033
8034         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
8035         * c4x.c: Define the optab rtx values.
8036         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
8037         (c4x_emit_libcall): Use new optab rtx values.
8038         (c4x_emit_libcall3): Likewise.
8039         (c4x_emit_libcall_mulhi): Likewise.
8040         * c4x-protos.h: Add prototypes for optab rtx values and change
8041         prototypes for above c4x_emit_libcall functions.
8042
8043 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8044
8045         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
8046         syntax is used.
8047         (c4x_function_prologue): Use regnames intead of float_reg_names when
8048         TI syntax is used.
8049         (c4x_function_epilogue): Likewise.
8050         (c4x_print_operand): Likewise.
8051         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
8052         * c4x.md (set_high): Disable for TARGET_TI.
8053
8054 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8055
8056         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
8057         of framepointer + constant to ADDR_REGS class.
8058         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
8059         * c4x.c (std_or_reg_operand): New function.
8060         * c4x-protos.h (std_or_reg_operand): Prototype it.
8061
8062 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8063
8064         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
8065                 object names as libgcc2.c.
8066         * libgcc.S: Use newly defined names.
8067
8068 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
8069         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
8070         function.
8071         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
8072         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
8073         (FLOW_LOOP_LAST_BLOCK): Likewise.
8074
8075 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8076
8077         * basic-block.h (struct loop): New fields 'first' and 'last'.
8078         * flow.c (flow_loops_find): Compute loop->first and loop->last.
8079         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
8080         and loop->last to check for NOTE_INSN_LOOP_END.
8081
8082 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
8083
8084         * predict.c (estimate_probability): Use the new FIRST and LAST fields
8085         of the loop descriptor rather than HEADER and LATCH. Also added
8086         missing break statements as well making some coding style modifications
8087         as suggested by Michael Hayes.
8088
8089 2000-01-28  Richard Henderson  <rth@cygnus.com>
8090
8091         * flow.c (find_basic_blocks): Remove do_cleanup argument.
8092         Break out that code ...
8093         (cleanup_cfg): ... here.
8094         (commit_one_edge_insertion): Detect a return instruction being
8095         emitted to an edge.  Emit a barrier following; clear fallthru.
8096         (commit_edge_insertions): Verify CFG consistency.
8097         * function.c (expand_function_start): Kill unused variable.
8098         (expand_function_end): Likewise.
8099         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
8100         to insert the epilogue.
8101
8102         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
8103         (delete_null_pointer_checks): Likewise.
8104         * output.h: Likewise.
8105         * reg-stack.c (reg_to_stack): Likewise.
8106         * toplev.c (rest_of_compilation): Likewise.  Run
8107         thread_prologue_and_epilogue_insns after rebuilding the CFG.
8108
8109 2000-01-28  Richard Henderson  <rth@cygnus.com>
8110
8111         * Makefile.in (flow.o): Revert 24 Jan change.
8112         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
8113         FUNCTION_VALUE result to DECL_RESULT's mode.
8114
8115         * haifa-sched.c (schedule_insns): Don't recompute reg info
8116         after reload.
8117
8118 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
8119
8120         * configure.in: Make --enable-cpplib the default.
8121         * configure: Regenerate.
8122         * gcc.dg/990119-1.c: No longer expected to fail.
8123
8124 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
8125
8126         * jump.c (jump_optimize_1): Delete an optimization that is also done
8127         by merge_blocks in flow.
8128
8129 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8130
8131         * diagnostic.c (build_message_string, output_printf,
8132         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
8133         (build_location_prefix): Fix non-literal format string.
8134
8135 2000-01-27  Richard Henderson  <rth@cygnus.com>
8136
8137         * alpha.md (trunctfsf2): New.
8138
8139 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
8140
8141         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
8142
8143 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
8144
8145         * cppinit.c (cpp_handle_option): Recognize C++ comments under
8146         -std=gnu89.
8147         * cpplib.c (skip_block_comment, skip_line_comment): Split code
8148         out of...
8149         (skip_comment) ... here.  Permit C++ comments in system
8150         headers always.  Warn about C++ comments in user code under
8151         -std=gnu89 -pedantic.
8152         (copy_comment): Use skip_comment.
8153         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
8154         return EOF.
8155         (consider_directive_while_skipping, do_else, do_endif): Call
8156         validate_else unconditionally.
8157         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
8158         text after the conditional in a system header.
8159         * cpplib.h (struct cpp_buffer): Add flag
8160         warned_cplusplus_comments.
8161
8162 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
8163
8164         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
8165         Use unshare_all_rtl_1.
8166         (unshare_all_rtl_again): New function.
8167         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
8168
8169         * function.c (purge_addressof_1): Use unshare_all_rtl_again
8170         rather than resetting the 'used' flags ourself.
8171
8172         * toplev.c (rest_of_compilation): Add current_function_decl
8173         to the unshare_all_rtl call.
8174         * tree.h: Prototype unshare_all_rtl.
8175         * rtl.h: Prototype unshare_all_rtl_again here.
8176
8177 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
8178
8179         * genoutput.c (output_prologue): Include ggc.h in generated
8180         files.
8181         * Makefile.in (insn-output.o): Depends on ggc.h.
8182
8183 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
8184             Hans-Peter Nilsson  <hp@bitrange.com>
8185
8186         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
8187         Remove redundant include of xm-ns32k.h.
8188         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
8189         Remove redundant include of xm-ns32k.h.
8190         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
8191         Remove redundant include of xm-ns32k.h.
8192         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
8193
8194         * ns32k/ns32k.h: Update comment on multiply-add instructions.
8195         (TARGET_SWITCHES): Add documentation strings.
8196         (DWARF_FRAME_REGNUM): Override default definition.
8197         (REG_CLASS_CONTENTS): Add comments.
8198         (SUBSET_P): Format to reduce line length.
8199         (SMALL_REGISTER_CLASSES): Make a run time option.
8200         (GO_IF_NONINDEXED_ADDRESS): Reformat.
8201         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
8202         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
8203         (regclass_map): fix typo in comment.
8204         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
8205         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
8206         (trace, reg_or_mem_operand): Delete, unused function.
8207         (calc_address_cost): Small offsets are cheaper than large ones.
8208         (expand_block_move): Generate more efficient code when bytes is a
8209         known at compile time.
8210         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
8211         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
8212         instead of reg_or_mem_operand.
8213
8214         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
8215         not general_operand.  Similarly use "=rm" or stricter, not "=g".
8216         For input operands, use stricter constraints than "g" if not
8217         general_operand.  Similarly use stricter predicate than
8218         "general_operand" when stricter constraints than "g" are present,
8219         except for matching constraints.
8220         (movstrsi): Use "memory_operand" for operands 0 and 1.
8221         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
8222         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
8223         not reg_or_mem_operand.
8224         (udivmoddisi4): Ditto.
8225         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
8226         Use nonimmediate_operand for operand 3, not register_operand.
8227         (udivmoddiqi4_internal): Use register_operand for operand 1, not
8228         reg_or_mem_operand.
8229
8230 2000-01-27  Fred Fish  <fnf@be.com>
8231
8232         * gthr-posix.h: Fix typo; compatibily -> compatibility.
8233         * gthr-single.h: Likewise.
8234         * gthr-solaris.h: Likewise.
8235         * gthr-vxworks.h: Likewise.
8236         * gthr-win32.h: Likewise.
8237         * gthr.h: Likewise.
8238
8239 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
8240
8241         * cppinit.c: Add " (cpplib)" to end of string printed by
8242         -v / --version.
8243
8244 2000-01-27  Richard Henderson  <rth@cygnus.com>
8245
8246         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
8247         testing for a signed comparison.
8248         (alpha_emit_floatuns): New.
8249         * alpha-protos.h: Declare it.
8250         * alpha.md (floatunsdisf2, floatunsdidf2): New.
8251         (extendsfdf2): Tidy.
8252
8253 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
8254
8255         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
8256         no -g option specifying debugging format, default to -gstabs+.
8257
8258 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
8259
8260         * calls.c (special_function_p): New argument fork_or_exec.
8261         (expand_call): When profile_arc_flag is set and the function
8262         is in the fork_or_exec group, call __bb_fork_func first.
8263         * libgcc2.c, _bb module (__bb_fork_func): New function.
8264         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
8265         output file.
8266         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
8267         * tree.h (special_function_p): Update prototype.
8268
8269 2000-01-26  Richard Henderson  <rth@cygnus.com>
8270
8271         * alpha.c (alpha_split_tfmode_pair): New.
8272         * alpha-protos.h: Declare it.
8273         * alpha.md (abstf2, negtf2): New.
8274         (movtf insn): Add input G constraint.
8275         (movtf splitter): Use alpha_split_tfmode_pair.
8276
8277 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8278
8279         * i386/cygwin.h: PROTO -> PARAMS.
8280
8281 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
8282
8283         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
8284         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
8285         using _Qp_cmp/_Q_cmp and testing the return value.
8286         (print_operand): Call reverse_condition_maybe_unordered if
8287         we are handling CCFPmode or CCFPEmode.
8288         Handle ORDERED, UN* and LTGT comparisons.
8289         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
8290         if not TARGET_HARD_QUAD.
8291         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
8292         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
8293         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
8294         Adjust gen_b* calls so that they reflect return comparison of
8295         sparc_emit_float_lib_cmp.
8296
8297 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8298
8299         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
8300         incoming operands array is large enough for one more operand.
8301         (alpha_emit_xfloating_arith): Likewise.
8302
8303 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
8304
8305         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
8306         file with one line and no trailing newline.
8307         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
8308         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
8309         checking if the match is on the line.
8310         * fixinc/gnu-regex.c: Provide regerror not __regerror.
8311
8312 2000-01-25  Richard Henderson  <rth@cygnus.com>
8313
8314         * sparc.c (output_cbranch): Fix accidental squashing of the
8315         fp branch pre-delay nop.
8316
8317 2000-01-25  Richard Henderson  <rth@cygnus.com>
8318
8319         * tree.def (UNNE_EXPR): Remove.
8320         * c-typeck.c (build_binary_op): Don't handle it.
8321         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
8322
8323         * rtl.def (UNNE): Remove.
8324         (LTGT): Add.
8325         * jump.c (reverse_condition): Update accordingly.
8326         (swap_condition): Likewise.
8327         (comparison_dominates_p): Handle unordered comparisons.
8328         (reverse_condition_maybe_unordered): New.
8329         * rtl.h (reverse_condition_maybe_unordered): Declare.
8330
8331         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
8332         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
8333         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
8334         * sparc.md (bltgt): New.
8335
8336 2000-01-25  Nick Clifton  <nickc@redhat.com>
8337
8338         * emit-rtl.c (emit_insn): Only check machine class insns for
8339         improper emission of a RETURN.
8340
8341 2000-01-25  Richard Henderson  <rth@cygnus.com>
8342
8343         * Makefile.in (flow.o): Depend on $(EXPR_H).
8344         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
8345         duplicate the structure of diddle_return_value for keeping regs live.
8346
8347 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8348
8349         * loop.c (current_loop_info): Delete.
8350         (consec_sets_invariant_p): Add loop argument, update callers.
8351         (get_condition_for_loop): Likewise.
8352         (count_nonfixed_reads, update_giv_derive): Likewise.
8353         (simplify_giv_expr, general_induction_var): Likewise.
8354         (consec_sets_giv, recombine_givs): Likewise.
8355         (move_movables): Delete loop_start and loop_end arguments,
8356         add loop argument, and update callers.
8357         (find_mem_givs, check_final_value): Likewise.
8358         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
8359         (loop_invariant_p): Rename from invariant_p, add loop argument, and
8360         update callers.
8361         (basic_induction_var): Add loop argument, delete loop_level argument,
8362         and update callers.
8363         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
8364         add loop argument, and update callers.
8365         (find_splittable_regs, find_splittable_givs): Likewise.
8366         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
8367         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
8368         (biv_total_increment): Delete loop_start and loop_end arguments;
8369         update callers.
8370         (precondition_loop_p): Delete loop_start and loop_info arguments;
8371         update callers.
8372         * loop.h (get_condition_for_loop): Add loop argument.
8373         (biv_total_increment): Delete loop_start and loop_end arguments.
8374         (precondition_loop_p): Delete loop_start and loop_info arguments;
8375         add loop argument.
8376         (final_biv_value): Delete loop_start and loop_end arguments;
8377         add loop argument.
8378         (final_giv_value, back_branch_in_range_p): Likewise.
8379
8380 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
8381
8382         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
8383
8384 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
8385
8386         * Makefile.in (c-gperf.h) : Change the "See" pointer to
8387         point to the new "generated_files" doc.
8388
8389 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
8390
8391         * config/fp-bit.c (_unord_f2): Fix typo.
8392
8393 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
8394
8395         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
8396         c-typeck.c, objc/objc-act.c: Remove all references to obstack
8397         functions obsoleted by GC, such as push_obstacks_nochange,
8398         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
8399         and code which existed only to decide whether or not to call
8400         them.  Remove now-unused NESTED argument from start_function;
8401         all callers changed.  Do not change behavior based on ggc_p.
8402         The use of the ixp_obstack in c-iterate.c and the util_obstack
8403         in objc/objc-act.c remain; these are not obsoleted by garbage
8404         collection.
8405         * c-tree.h: Update prototype for start_function.
8406
8407         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
8408
8409 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
8410
8411         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
8412         mips16.
8413
8414 2000-01-25  Richard Henderson  <rth@cygnus.com>
8415
8416         * sparc-protos.h (select_cc_mode): Declare.
8417         * sparc.c (select_cc_mode): New.  Handle unordered compares.
8418         (output_cbranch): Always reverse via code change.  Handle
8419         unordered compares.  Factor tests and string updates.
8420         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
8421         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
8422         * sparc.md (bunordered, bordered): New.
8423         (bungt, bunlt, buneq, bunge, bunle): New.
8424
8425 2000-01-25  Richard Henderson  <rth@cygnus.com>
8426
8427         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
8428         * ggc-common.c (ggc_add_rtx_varray_root): New.
8429         (ggc_mark_rtx_varray): New.
8430         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
8431         functions down below ggc_mark_foo.
8432         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
8433
8434 2000-01-25  Richard Henderson  <rth@cygnus.com>
8435
8436         * alpha.c (secondary_reload_class): Don't allocate a secondary
8437         for integral mode memories into FLOAT_REGS.  Rearrange the more
8438         complicated memory expression inward.
8439
8440 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
8441
8442         * inclhack.def: Fixes to play nicer with FreeBSD, and
8443         corrections to comments.
8444         (cxx_unready): Add select expression.
8445         (irix_sockaddr): Add bypass expression.
8446         (machine_ansi_h_va_list): New fix.
8447         (stdio_va_list): No need to edit _BSD_VA_LIST_.
8448         Split out addition of "#include <stdarg.h>" to...
8449         (stdio_stdarg_h): ... here.
8450         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
8451         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
8452         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
8453         size_t.
8454         (ultrix_ifdef): Tighten up select expression.
8455
8456         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
8457         re_ct and max_mach to avoid use of shell.  Make printed names
8458         match names in inclhack.def.  Use static copyright date.
8459         Don't count c_test and test expressions as requiring regex_t
8460         slots.  Add some commentary.
8461         * inclhack.tpl: Do not include the 'This script contains N
8462         fixup scripts' line if PROGRAM is defined.  Use static
8463         copyright date.
8464
8465 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
8466
8467         * dwarf2out.c: include "varray.h", not dyn-string.h.
8468         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
8469         (addr_const_to_string, addr_to_string): Lose.
8470         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
8471         (struct dw_val_struct): val_addr is now an rtx.
8472         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
8473         (used_rtx_varray): New varray.
8474         (dwarf2out_init): Initialize it.
8475         (save_rtx): New fn.
8476         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
8477         addr_to_string.
8478         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
8479         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
8480         * Makefile.in (dwarf2out.o): Update dependencies.
8481
8482 2000-01-24  Richard Henderson  <rth@cygnus.com>
8483
8484         * i386.c (i386_dwarf_output_addr_const): New.
8485         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
8486
8487         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
8488         if defined.
8489         * dwarfout.c (output_mem_loc_descriptor): Likewise.
8490         * i386.c (i386_simplify_dwarf_addr): New.
8491         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
8492
8493 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
8494
8495         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
8496         TYPE_STUB_DECL is NULL.
8497
8498 2000-01-24  Richard Henderson  <rth@cygnus.com>
8499
8500         * builtins.c (expand_tree_builtin): Move ...
8501         * c-common.c (expand_tree_builtin): ... here.
8502
8503 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8504
8505         * loop.h (LOOP_INFO): New accessor macro.
8506         * basic-block.h (struct loop): Rename field `info' to `aux'.
8507         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
8508         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
8509         * unroll.c (loop_iterations, unroll_loop): Likewise.
8510
8511 2000-01-24  Christopher Faylor <cgf@cygnus.com>
8512
8513         * config/i386/t-cygwin: Accomodate new winsup directory layout
8514         when searching for include files.
8515
8516 2000-01-24  Richard Henderson  <rth@cygnus.com>
8517
8518         * rtl.def: Add unordered fp comparisions.
8519         * tree.def: Likewise.
8520         * tree.h: Add ISO C 9x unordered fp comparision builtins.
8521
8522         * builtins.c (expand_tree_builtin): New function.
8523         * c-typeck.c (build_function_call): Use it.
8524         (build_binary_op): Support unordered compares.
8525         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
8526
8527         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
8528         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
8529         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
8530         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
8531         * jump.c (reverse_condition): Don't abort for UNLE etc, but
8532         return UNKNOWN.
8533         (swap_condition): Handle unordered compares.
8534         (thread_jumps): Check can_reverse before reversing.
8535         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
8536         reversed for FP.
8537
8538         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
8539         setcc is present before acking for cmp_optab.  Update all callers.
8540         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
8541         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
8542         * expr.c (expand_expr): Likewise.  Support unordered compares.
8543         (do_jump, do_store_flag): Likewise.
8544         * expr.h (enum libfunc_index): Add unordered compares.
8545
8546         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
8547         (DPBIT_FUNCS): Add _unord_df.
8548         * config/fp-bit.c (_unord_f2): New.
8549         * fp-test.c (main): Try unordered compare builtins.
8550
8551         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
8552         * alpha.c (alpha_comparison_operator): Check mode properly.
8553         (alpha_swapped_comparison_operator): Likewise.
8554         (signed_comparison_operator): Likewise.
8555         (alpha_fp_comparison_operator): New.
8556         (alpha_emit_conditional_branch): Handle unordered compares.
8557         * alpha.h (PREDICATE_CODES): Update.
8558         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
8559         (bunordered, bordered): New.
8560
8561 2000-01-24  Richard Henderson  <rth@cygnus.com>
8562
8563         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
8564         * alpha.md (movtf): New expander, insn, and splitter.
8565
8566 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
8567
8568         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
8569         dead registers.
8570
8571 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
8572
8573         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
8574         (FIXED_REGISTERS, CALL_USED_REGISTERS,
8575          REG_ALLOC_ORDER): Add frame pointer
8576         (FRAME_POINTER_REGNUM): Set to 20
8577         (HARD_FRAME_POINTER_REGNUM): New macro.
8578         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
8579         to HARD_FRAME_POINTER.
8580         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
8581         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
8582         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
8583         (HI_REGISTER_NAMES): Add "frame".
8584         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
8585         (debug_reg): Handle FRAME_POINTER_REGNUM.
8586         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
8587         GENERAL_REGS and INDEX_REGS.
8588         * i386.c (SAVED_REGS_FIRST): new macro.
8589         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
8590         (ix86_decompose_address, memory_address_length): Likewise.
8591         (regclass_map): Add frame pointer.
8592         (call_insn_operand): Handle frame_pointer_rtx.
8593         (reg_no_sp_operand): Likewise.
8594         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
8595         (print_operand, legitimize_pic_address): Fix formating.
8596         (ix86_compute_frame_size): Make static, update prototype, new
8597         parameters padding1, padding2, use ix86_nsaved_regs, use
8598         stack_alignment_needed.
8599         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
8600         to HARD_FRAME_POINTER_REGNUM conversions.
8601         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
8602         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
8603         (print_reg): Abort on FRAME_POINTER_REGNUM
8604
8605 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
8606
8607         * i386.h (PREDICATE_CODES): Add aligned_operand.
8608         * i386.c (aligned_operand): New function.
8609         (ix86_aligned_p): Kill.
8610         * i386.md (movhi_1): Emit mov for aligned operands.
8611         (promoting peep2s): Use aligned_operand.
8612
8613 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
8614
8615         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
8616         expression to allow underscores in macro names.
8617         (fix_char_macro_defines): Increment scanning pointer.
8618
8619 2000-01-23  Richard Henderson  <rth@cygnus.com>
8620
8621         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
8622         * alpha/osf5.h: New file.
8623         * configure.in (alpha-*-osf5): Add it to tm_file.
8624
8625         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
8626
8627         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
8628         (alpha_emit_xfloating_cvt, function_arg): Declare.
8629         * alpha.c (alpha_emit_conditional_branch): Call
8630         alpha_emit_xfloating_compare for TFmode compares.
8631         (alpha_lookup_xfloating_lib_func): New.
8632         (alpha_compute_xfloating_mode_arg): New.
8633         (alpha_emit_xfloating_libcall): New.
8634         (alpha_emit_xfloating_arith): New.
8635         (alpha_emit_xfloating_compare): New.
8636         (alpha_emit_xfloating_cvt): New.
8637         (print_operand): Add default abort case.
8638         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
8639         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
8640         (BIGGEST_ALIGNMENT): Increase to 128 bits.
8641         (RETURN_IN_MEMORY): True for TF/TCmode.
8642         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
8643         (FUNCTION_ARG): Move to function_arg.
8644         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
8645         (ASM_OUTPUT_LONG_DOUBLE): New.
8646         (ASM_OUTPUT_DOUBLE): Always output bits.
8647         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
8648         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
8649         (extenddftf2, trunctfdf2): New.
8650
8651 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8652
8653         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
8654         * config/sparc/sol2.h: ... here.
8655
8656 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8657
8658         * basic-block.h (struct loops): New field `levels'.
8659         * flow.c (flow_loops_level_compute): Traverse all outer loops.
8660         (flow_loop_level_compute): Initialise level to 1.
8661         (flow_loops_find): Set loops->levels.
8662         (flow_loops_dump): Print loops->levels.
8663
8664 2000-01-23  Richard Henderson  <rth@cygnus.com>
8665
8666         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
8667         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
8668
8669 2000-01-23  Richard Henderson  <rth@cygnus.com>
8670
8671         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
8672         * i386.h (DBX_REGISTER_NUMBER): Use them.
8673         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
8674         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
8675         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
8676         * i386/sequent.h: Kill incorrect comment.
8677
8678 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
8679
8680         * ggc-page.c (struct page_entry): Make `context_depth' an
8681         `unsigned short'.
8682         (struct globals): Likewise.
8683
8684 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
8685
8686         * loop.c (check_dbra_loop): When checking a loop for
8687         reversability, check the source of any stores to ensure
8688         they don't depend on an initial value.
8689
8690 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8691
8692         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
8693
8694 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
8695
8696         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
8697         'pz_scan' into scope of entire function.  Only affects
8698         compiles with -DDEBUG.
8699
8700 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
8701
8702         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
8703         section naming to that prior to 2000-01-07 patch.
8704         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
8705         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
8706         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
8707         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
8708         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
8709
8710 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
8711
8712         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
8713         constant.
8714
8715 2000-01-21  Jim Wilson  <wilson@cygnus.com>
8716
8717         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
8718         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
8719
8720 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
8721
8722         * cpphash.c (change_newlines): Delete function.
8723         (struct argdata): Delete 'newlines' and 'use_count' fields.
8724         (macroexpand): Remove code referencing those fields.
8725
8726 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8727
8728         * loop.c (loops_info): New variable.
8729         (loop_optimize): Allocate loops->array and free it on exit.
8730         Allocate memory for loops_info and assign to each loop,
8731         replacing alloca.
8732         (find_and_verify_loops): Do not allocate loops->array.
8733
8734 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
8735
8736         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
8737
8738 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
8739
8740         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
8741         pseudos if expanded after first flow.
8742         (movdi_pic_label_ref): Likewise.
8743
8744 2000-01-20  Richard Henderson  <rth@cygnus.com>
8745
8746         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
8747
8748 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
8749
8750         * Makefile.in (fixinc.sh): Depend on specs.
8751         * fixinc/Makefile.in: Add rule to create machname.h.
8752         (fixlib.o): Depend on machname.h.
8753         * fixinc/fixtests.c (machine_name): New test.
8754         * fixinc/fixfixes.c (machine_name): New fix.
8755         * fixinc/fixlib.c (mn_get_regexps): New helper function for
8756         the machine_name test and fix.
8757         * fixinc/fixlib.h: Prototype it.
8758         * fixinc/inclhack.def (machine_name): Use the C test and fix.
8759         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
8760
8761         * gcc.c (do_spec_1) [case P]: Take care not to create
8762         identifiers with three leading or trailing underscores.
8763
8764         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
8765         (fixincl): Don't specify libraries twice on link line.
8766         (gnu-regex.o): Remove special rule.
8767         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
8768         defined by config.h.  Do not define _REGEX_RE_COMP.
8769         (regcomp): Allocate and initialize a fastmap.
8770         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
8771
8772 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
8773
8774         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
8775
8776 2000-01-19  Richard Henderson  <rth@cygnus.com>
8777
8778         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
8779         arguments with BB.  Update all callers.  Tidy line wrapping.
8780
8781 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
8782
8783         * emit-rtl.c (try_split): Return last_insn if we split the
8784         last_insn.
8785
8786 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
8787
8788         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
8789         (ix86_initial_elimination_offset): Declare.
8790         * i386.c (ix86_nsaved_regs): Break out from ...
8791         (ix86_can_use_return_insn_p): ... here.
8792         (ix86_emit_save_regs): Break out from ...
8793         (ix86_expand_prologue): ... here.
8794         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
8795         out from ...
8796         (ix86_expand_epilogue): ... here.
8797         (ix86_compute_frame_size): Make static, add prototype.
8798         (ix86_initial_elimination_offset): Break out from ...
8799         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
8800
8801 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8802
8803         * recog.h (OUT_FCN): Delete.
8804
8805         * vax.md: Call `get_insn_template' instead of OUT_FCN.
8806
8807 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8808
8809         * cppalloc.c: PROTO -> PARAMS.
8810         * cpperror.c: Likewise.
8811         * cppfiles.c: Likewise.
8812         * cpplib.c: Likewise.
8813         * cpplib.h: Likewise.
8814
8815         * config/arm/arm-protos.h: PROTO -> PARAMS.
8816         * config/arm/arm.c: Likewise.
8817         * config/c4x/c4x.c: Likewise.
8818         * config/fr30/fr30-protos.h: Likewise.
8819         * config/nextstep.c: Likewise.
8820         * config/pa/pa.c: Likewise.
8821         * config/pj/pj.c: Likewise.
8822         * config/rs6000/rs6000.c: Likewise.
8823         * config/v850/v850-protos.h: Likewise.
8824         * config/v850/v850.c: Likewise.
8825
8826 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8827
8828         * i370-protos.h: New file.
8829
8830         * i370.c: Include tm_p.h.  Fix compile time warnings.
8831
8832         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
8833         warnings.
8834
8835         * i370.md: Likewise.
8836
8837 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8838
8839         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
8840         (target_isinf, target_isnan, eisnan): Mark parameter with
8841         ATTRIBUTE_UNUSED.
8842         (eiisinf): Wrap in INFINITY.
8843         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
8844         (ibmtoe): Remove unused variable `rndsav'.
8845
8846 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8847
8848         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
8849         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
8850
8851 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
8852
8853         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
8854         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
8855         (fix_char_macro_defines, fix_char_macro_uses): New functions.
8856
8857         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
8858         Recognize Emacs mode markers also.
8859         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
8860         C++ comments in C++ headers.  Call is_cxx_header only if
8861         necessary.
8862
8863         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
8864         bypass for ncurses.
8865         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
8866         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
8867         ... these, which use the new C fixes.
8868         (math_exception): Escape literal '+' in bypass expression.
8869
8870         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
8871         Regenerate.
8872
8873 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8874
8875         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
8876         inside the MEM.
8877
8878 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8879
8880         * loop.c (loop_optimize): Allocate loop_info structure for each loop
8881         prior to calling scan_loop.
8882
8883 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8884
8885         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
8886         (split_branches, calc_live_regs): Likewise.
8887
8888 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8889
8890         * sh.md (fpu_single, fp_mode): New attributes.
8891
8892 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8893
8894         * loop.c (current_loop_info): Renamed from loop_info_data
8895         and changed to a pointer.
8896         (loop_optimize): Allocate loop_info structure for each loop
8897         and initialise to zero.
8898         (scan_loop): Set current_loop_info.
8899
8900         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
8901         on iteration_var.
8902
8903 2000-01-19  Richard Henderson  <rth@cygnus.com>
8904
8905         * stupid.c: Die die die.
8906         * Makefile.in (OBJS): Remove stupid.o.
8907         (stupid.o): Likewise.
8908
8909         * except.c (emit_eh_context): Don't emit USEs for stupid.
8910         * explow.c (probe_stack_range): Likewise.
8911         * flags.h (obey_regdecls): Remove.
8912         * flow.c (find_basic_blocks): Don't run try_merge_blocks
8913         when not optimizing.
8914         (life_analysis): Limit data collection when not optimizing.
8915         (mark_regs_live_at_end): Always mark the return value registers.
8916         (mark_used_regs): Remove dummy RETURN case.
8917         (print_rtl_with_bb): Don't consult obey_regdecls.
8918         * function.c (use_variable, use_variable_after): Remove.
8919         (assign_parms): Consult optimize not obey_regdecls.
8920         (expand_function_start): Don't emit USEs for stupid.
8921         (expand_function_end): Likewise.
8922         * global.c (build_insn_chain): Export.
8923         * integrate.c (expand_inline_function): Kill return-value USE
8924         handling code.
8925         * jump.c (jump_optimize_1): Do simple jump optimizations and
8926         dead code elimination.
8927         (calculate_can_reach_end): Remove check_deleted argument.
8928         (delete_insn): Patch out insns even when not optimizing.
8929         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
8930         * rtl.h (use_variable, use_variable_after): Remove declarations.
8931         (build_insn_chain): Declare.
8932         * stmt.c (expand_value_return): Don't emit USEs for stupid.
8933         (expand_end_bindings): Likewise.
8934         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
8935         * toplev.c (obey_regdecls): Remove.
8936         (rest_of_compilation): Don't set it.  Kill stupid in favour of
8937         flow1, local-alloc, and reload.
8938         (main): Don't set obey_regdecls.
8939
8940         * config/nextstep.c (handle_pragma): Likewise.
8941
8942         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
8943
8944         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
8945
8946 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8947
8948         * alpha-protos.h: PROTO -> PARAMS.
8949         * alpha.c: Likewise.
8950         * elf.h: Likewise.
8951         * h8300.c: Likewise.
8952         * i386-protos.h: Likewise.
8953         * i386.c: Likewise.
8954         * m32r-protos.h: Likewise.
8955         * m32r.c: Likewise.
8956         * mips.c: Likewise.
8957         * mips.md: Likewise.
8958         * gmon-sol2.c: Likewise.
8959         * sparc.c: Likewise.
8960
8961 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8962
8963         * ns32k-protos.h: New file.
8964
8965         * ns32k.c: Fix compile time warnings.
8966
8967         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
8968         warnings.
8969
8970         * ns32k.md: Likewise.
8971
8972 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8973
8974         * vax-protos.h: New file.
8975
8976         * vax.c: Fix compile time warnings.
8977
8978         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
8979         warnings.
8980
8981         * vax.md: Likewise.
8982
8983         * vaxv.md: Likewise.
8984
8985 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8986
8987         * romp-protos.h: New file.
8988
8989         * romp.c: Fix compile time warnings.
8990
8991         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
8992         warnings.
8993
8994         * romp.md: Likewise.
8995
8996 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8997
8998         * we32k-protos.h: New file.
8999
9000         * we32k.c: Fix compile time warnings.
9001
9002         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
9003         warnings.
9004
9005 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9006
9007         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
9008
9009         * except.c (eh_regs): Likewise.
9010
9011         * final.c (output_operand): Likewise.
9012
9013         * fold-const.c (target_isinf, target_isnan): Likewise.
9014
9015 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
9016
9017         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
9018         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
9019
9020         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
9021         when optimize_size.
9022         (clrstrsi): Rewrite.
9023         (strsethi, strsetqi): New expanders.
9024         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
9025         (cmpstrsi): Emit compare insn before cmpstrsi_1
9026         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
9027         (strlensi_1): Likewise.
9028         (cmpstrsi_1): Likewise; do not output compare.
9029         (strlen expander): Do not unroll when optimizing for size.
9030         (*subsi3_carry): Rename to subsi3_carry
9031         (addqi3_cc): New pattern.
9032         * i386.h (processor_costs): Add move_ratio field.
9033         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
9034         * i386.c (*_cost): Set move_ratio.
9035         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
9036         (x86_expand_strlensi_1): Rewrite the main loop.
9037
9038 2000-01-17  Richard Henderson  <rth@cygnus.com>
9039
9040         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
9041         * cse.c (find_comparison_args, fold_rtx): Likewise.
9042         * integrate.c (subst_constants): Likewise.
9043         * loop.c (get_condition): Likewise.
9044
9045         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
9046
9047         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
9048
9049 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9050
9051         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
9052         (RESTORE_WARN_FLAGS): Unpack it.
9053         Change semantic type of extension to ttype.
9054         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
9055         * c-parse.y, c-parse.c, objc/objc-parse.y,
9056         objc/objc-parse.c: Regenerate.
9057
9058 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
9059
9060         * fixinc/fixlib.c: Add copyright notice.
9061         (compile_re): New function.
9062         * fixinc/fixlib.h: Prototype compile_re.
9063
9064         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
9065         Use compile_re to compile regular expressions.
9066
9067         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
9068         where the pattern matched.
9069
9070         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
9071         use 'replace'.
9072         (ultrix_ansi_compat): Likewise.
9073         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
9074         add egrep test.
9075         (interactv_add2, interactv_add3): Delete.
9076         (x11_sprintf): Don't use filename glob.
9077         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
9078         Regenerate.
9079
9080 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9081
9082         * print-rtl.c: PROTO -> PARAMS.
9083         * real.c: Likewise.
9084         * reg-stack.c: Likewise.
9085         * resource.c: Likewise.
9086         * sdbout.h: Likewise.
9087         * simplify-rtx.c: Likewise.
9088         * stor-layout.c: Likewise.
9089         * stupid.c: Likewise.
9090         * xcoffout.c: Likewise.
9091         * xcoffout.h: Likewise.
9092
9093 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9094
9095         * toplev.c: PROTO -> PARAMS.
9096         * toplev.h: Likewise.
9097         * tree.c: Likewise.
9098         * tree.h: Likewise.
9099         * unroll.c: Likewise.
9100         * varasm.c: Likewise.
9101         * varray.c: Likewise.
9102         * varray.h: Likewise.
9103
9104 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9105
9106         * reload.c: PROTO -> PARAMS.
9107         * reload.h: Likewise.
9108         * reload1.c: Likewise.
9109         * reorg.c: Likewise.
9110         * resource.h: Likewise.
9111         * rtl.c: Likewise.
9112         * rtl.h: Likewise.
9113         * rtlanal.c: Likewise.
9114         * sbitmap.h: Likewise.
9115         * sdbout.c: Likewise.
9116         * stack.h: Likewise.
9117         * stmt.c: Likewise.
9118         * system.h: Likewise.
9119
9120 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9121
9122         * machmode.h: PROTO -> PARAMS.
9123         * mbchar.h: Likewise.
9124         * mips-tdump.c: Likewise.
9125         * mips-tfile.c: Likewise.
9126         * optabs.c: Likewise.
9127         * output.h: Likewise.
9128         * prefix.c: Likewise.
9129         * profile.c: Likewise.
9130         * protoize.c: Likewise.
9131         * real.h: Likewise.
9132         * recog.c: Likewise.
9133         * recog.h: Likewise.
9134         * regclass.c: Likewise.
9135         * regmove.c: Likewise.
9136         * regs.h: Likewise.
9137
9138 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9139
9140         * ggc-common.c: PROTO -> PARAMS.
9141         * ggc-page.c: Likewise.
9142         * ggc-simple.c: Likewise.
9143         * ggc.h: Likewise.
9144         * global.c: Likewise.
9145         * graph.c: Likewise.
9146         * gthr-win32.h: Likewise.
9147         * haifa-sched.c: Likewise.
9148         * halfpic.h: Likewise.
9149         * integrate.c: Likewise.
9150         * integrate.h: Likewise.
9151         * jump.c: Likewise.
9152         * lcm.c: Likewise.
9153         * local-alloc.c: Likewise.
9154         * loop.c: Likewise.
9155         * loop.h: Likewise.
9156
9157 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9158
9159         * genattr.c: PROTO -> PARAMS.
9160         * genattrtab.c: Likewise.
9161         * gencheck.c: Likewise.
9162         * gencodes.c: Likewise.
9163         * genconfig.c: Likewise.
9164         * genemit.c: Likewise.
9165         * genextract.c: Likewise.
9166         * genflags.c: Likewise.
9167         * gengenrtl.c: Likewise.
9168         * genopinit.c: Likewise.
9169         * genoutput.c: Likewise.
9170         * genpeep.c: Likewise.
9171         * genrecog.c: Likewise.
9172
9173 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
9174
9175         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
9176
9177 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9178
9179         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
9180         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
9181         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
9182         * configure, config.in: Rebuilt.
9183
9184 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
9185
9186         * config/i386/i386.md: Add peephole to merge successive stack
9187         adjusts.
9188
9189 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
9190
9191         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
9192         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
9193         when walking backwards to find all the parameter loads when
9194         the basic block ends in a call.
9195
9196 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9197
9198         * loop.c (this_loop_info): Delete.
9199         (uid_loop): Add in place of uid_loop_num.  All uses updated.
9200         (loop_number_exit_count): Delete and replace with entry in loop
9201         structure.  All uses updated.
9202         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
9203         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
9204         (loop_outer_loop): Likewise.
9205         (loop_invalid, loop_number_exit_labels): Likewise.
9206         (loop_used_count_register): Delete and replace with entry in
9207         loop_info structure.
9208         (find_and_verify_loops): Add loops argument.
9209         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
9210         loop_end, etc. arguments with loop structure pointer.  All callers
9211         changed.
9212         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
9213         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
9214         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
9215         (insert_bct): Likewise.
9216         (basic_induction_var): New argument level.
9217         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
9218         vtop, and cont.  Add used_count_register.
9219         (uid_loop): Delete declaration.
9220         (loop_number_exit_count): Likewise.
9221         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
9222         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
9223         (loop_outer_loop, loop_used_count_register): Likewise.
9224         (loop_invalid, loop_number_exit_labels): Likewise.
9225         (unroll_loop): Replace loop_start and loop_end arguments
9226         with loop structure pointer.
9227         (loop_precondition_p, loop_iterations): Likewise.
9228         Include basic-block.h.
9229         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
9230         with loop structure pointer.
9231         (loop_precondition_p, loop_iterations): Likewise.
9232         * basic-block.h (struct loop): New entries vtop, cont,
9233         cont_dominator, start, end, top, scan_start, exit_labels,
9234         exit_count.
9235         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
9236
9237 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9238
9239         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
9240
9241 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
9242
9243         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
9244
9245 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9246
9247         * pdp11-protos.h: New file.
9248
9249         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
9250         time warnings.
9251
9252         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
9253         warnings.
9254
9255         * pdp11.md: Likewise.
9256
9257         * 2bsd.h: Likewise.
9258
9259 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9260
9261         * mn10300-protos.h: New file.
9262
9263         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
9264         time warnings.
9265
9266         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
9267         warnings.
9268
9269         * mn10300.md: Likewise.
9270
9271 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9272
9273         * mn10200-protos.h: New file.
9274
9275         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
9276         time warnings.
9277
9278         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
9279         warnings.
9280
9281         * mn10200.md: Likewise.
9282
9283 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9284
9285         * h8300-protos.h: New file.
9286
9287         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
9288         time warnings.
9289
9290         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
9291         warnings.
9292
9293         * h8300.md: Likewise.
9294
9295 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9296
9297         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
9298         (asm_emit_uninitialised): Likewise.
9299
9300 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
9301
9302         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
9303         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
9304
9305 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
9306
9307         * config/mips/mips.c (override_options): Don't turn on extra
9308         alignment for mips16.
9309
9310 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
9311
9312         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
9313         eabi, and make sure queued POSTINCREMENT rtl is emitted at
9314         the right point.
9315
9316 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
9317
9318         * builtins.c (PAD_VARARGS_DOWN): Define.
9319         (std_expand_builtin_va_arg): Use the above macro.
9320         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
9321         * tm.texi (Register Arguments): Document the above macro.
9322
9323 2000-01-14  Nick Clifton  <nickc@cygnus.com>
9324
9325         * emit-rtl.c (emit_insn): If checking is enabled, make sure
9326         that this function has not been used to emit a jump
9327         instruction.
9328
9329         * jump.c (return_jump_1): Cope with being passed a null rtx.
9330
9331 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9332
9333         * eh-common.h: PROTO -> PARAMS.
9334         * emit-rtl.c: Likewise.
9335         * errors.c: Likewise.
9336         * errors.h: Likewise.
9337         * except.c: Likewise.
9338         * except.h: Likewise.
9339         * explow.c: Likewise.
9340         * expmed.c: Likewise.
9341         * expr.c: Likewise.
9342         * expr.h: Likewise.
9343         * final.c: Likewise.
9344         * fix-header.c: Likewise.
9345         * flow.c: Likewise.
9346         * fold-const.c: Likewise.
9347         * function.c: Likewise.
9348         * function.h: Likewise.
9349         * gcc.c: Likewise.
9350         * gcov-io.h: Likewise.
9351         * gcov.c: Likewise.
9352         * gcse.c: Likewise.
9353
9354 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9355
9356         * sh-protos.h: New file.
9357
9358         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
9359         Add static prototypes.  Fix compile time warnings.
9360
9361         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
9362         * sh.md: Likewise.
9363         * elf.h: Likewise.
9364
9365 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9366
9367         * arc-protos.h: New file.
9368
9369         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
9370         time warnings.
9371
9372         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
9373         warnings.
9374
9375         * arc.md: Likewise.
9376
9377 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9378
9379         * dsp16xx-protos.h: New file.
9380
9381         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
9382         time warnings.
9383
9384         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
9385         warnings.
9386
9387         * dsp16xx.md: Likewise.
9388
9389 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9390
9391         * convex-protos.h: New file.
9392
9393         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
9394         time warnings.
9395
9396         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
9397         warnings.
9398
9399 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9400
9401         * elxsi-protos.h: New file.
9402
9403         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
9404         time warnings.
9405
9406         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
9407         warnings.
9408
9409         * elxsi.md: Likewise.
9410
9411 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
9412
9413         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
9414         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
9415         match the comment for MIPS16.
9416
9417 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
9418
9419         * flow.c (split_edge): Do not call set_block_for_insn if we
9420         do not have a basic_block_for_insn structure.
9421
9422         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
9423         and destination functions are 32bit aligned within the trampoline.
9424         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
9425         (TRAMPOLINE_ALIGNMENT): Define.
9426
9427         * cse.c (cse_insn): When changing (set (pc) (reg)) to
9428         (set (pc) (label_ref)), verify the change creates a valid insn.
9429
9430         * fr30.c (call_operand): Tighten and rework to match rules for
9431         call RTL expressions.
9432         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
9433         * fr30.md (call patterns): Improve constraints.
9434
9435 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
9436
9437         * fr30.c (fr30_expand_epilogue): Revert last change.
9438         Use emit_jump_insn for the return insn.
9439
9440 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
9441                           Stan Cox  <scox@cygnus.com>
9442
9443         * predict.c: New file. Preliminary infrastructure work for static
9444         branch prediction and basic block reordering.
9445         * basic-block.h: Add prototype for estimate_probability.
9446         * Makefile.in: Add rules for predict.o.
9447
9448 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
9449
9450         * fixincludes (va_list): Use __not_va_list__ for the dummy.
9451         * fixinc/*: Likewise.
9452
9453 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9454
9455         * cccp.c: PROTO -> PARAMS.
9456         * cexp.y: Likewise.
9457         * collect2.c: Likewise.
9458         * combine.c: Likewise.
9459         * convert.h: Likewise.
9460         * cse.c: Likewise.
9461         * dbxout.c: Likewise.
9462         * dbxout.h: Likewise.
9463         * diagnostic.c: Likewise.
9464         * doprint.c: Likewise.
9465         * dwarf2out.c: Likewise.
9466         * dwarf2out.h: Likewise.
9467         * dwarfout.c: Likewise.
9468         * dwarfout.h: Likewise.
9469         * dyn-string.h: Likewise.
9470
9471 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9472
9473         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
9474         macro conditionals guarding use.
9475
9476         * dwarf2out.c: Include "tm_p.h".
9477
9478         * function.c (locate_and_pad_parm): Mark parameter with
9479         ATTRIBUTE_UNUSED.
9480         (expand_function_end): Likewise for variable `context'.
9481
9482         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
9483
9484 2000-01-13  Nick Clifton  <nickc@cygnus.com>
9485
9486         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
9487         register to prevent compile time warnings.
9488
9489 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
9490
9491         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
9492         to avoid -Wtraditional warning.
9493
9494 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9495
9496         * 1750a-protos.h: New file.
9497
9498         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
9499         time warnings.
9500
9501         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
9502         warnings.
9503
9504         * 1750a.md: Likewise.
9505
9506 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9507
9508         * a29k-protos.h: New file.
9509
9510         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
9511         time warnings.
9512
9513         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
9514         warnings.
9515
9516 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9517
9518         * clipper-protos.h: New file.
9519
9520         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
9521         time warnings.
9522
9523         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
9524         warnings.
9525
9526 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9527
9528         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
9529
9530 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
9531
9532         * configure.in (--enable-new-gxx-abi): New option.
9533         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
9534         * Makefile.in (GXX_ABI_FLAG): New variable.
9535         * configure: Regenerate.
9536
9537 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9538
9539         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
9540         * tm.texi (FORCE_STRUCT_BLK): Document.
9541         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
9542
9543 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
9544
9545         * config/ns32k/ns32k.md: Revert Jan 9 change.
9546
9547         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
9548         to a mode-test, if the predicate is address_operand.
9549
9550 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
9551
9552         * combine.c (if_then_else_cond): Be careful about what kinds
9553         of RTL expressions are passed to operand_subword.
9554
9555         * flow.c (split_edge): If we have to insert a new jump, make
9556         sure to associate it with a basic block.
9557
9558         * flow.c (commit_one_edge_insertion): A block with one successor
9559         can end in a JUMP_INSN that is not a simplejump.
9560
9561 2000-01-12  Robert Lipe  <robertl@sco.com>
9562
9563         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
9564         (BUILD_VA_LIST_TYPE): Define.
9565         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
9566         with crtstuff.c.
9567
9568 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
9569
9570         * cccp.c (do_pragma): Add cast to (char *).
9571
9572 2000-01-12  Richard Henderson  <rth@cygnus.com>
9573             Fred Fish  <fnf@be.com>
9574             Jason Merrill  <jason@cygnus.com>
9575
9576         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
9577         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
9578         * i386/beos-elf.h, i386/beos-pe.h: New files.
9579
9580         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
9581         * cross-make (SYSTEM_HEADER_DIR): Define using
9582         CROSS_SYSTEM_HEADER_DIR.
9583
9584         * gcc.c (LIBRARY_PATH_ENV): Provide default.
9585         (process_command): Use it.
9586         (main): Likewise.  Kill trailing = from env vars.
9587         (build_search_list): Put it back.
9588         * collect2.c (main): Use LIBRARY_PATH_ENV.
9589
9590         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
9591         * toplev.c: Use NEED_DECLARATION_ENVIRON.
9592
9593         * tm.texi (Frame Layout): Document SMALL_STACK.
9594         * c-common.c (c_common_nodes_and_builtins): Check it.
9595
9596         * system.h: Undef alloca after including glibc's <stdlib.h>,
9597         if USE_C_ALLOCA is defined.
9598
9599         * gcc.c (set_input): New fn.
9600         (main): After all input files are compiled, reset the input file
9601         info to the first.
9602
9603         * aclocal.m4 (rindex, index): If already defined, don't attempt
9604         to redefine.
9605
9606         * ginclude/varargs.h: (__va_list__): Define ifndef.
9607         * ginclude/stdarg.h: Likewise.
9608
9609         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
9610         instead of unsigned char.
9611
9612         * hash.h (true, false, boolean): Undef before enum.
9613
9614         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
9615         proper type of "HOST_WIDE_INT *", rather than their natural type of
9616         "unsigned HOST_WIDE_INT *".
9617
9618 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9619
9620         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
9621
9622         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
9623
9624         * regclass.c (choose_hard_reg_mode): Likewise.
9625
9626         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
9627
9628         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
9629
9630 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9631
9632         * c-common.c: PROTO -> PARAMS.
9633         * c-common.h: Likewise.
9634         * c-decl.c: Likewise.
9635         * c-iterate.c: Likewise.
9636         * c-lang.c: Likewise.
9637         * c-lex.c: Likewise.
9638         * c-lex.h: Likewise.
9639         * c-parse.in: Likewise.
9640         * c-pragma.c: Likewise.
9641         * c-pragma.h: Likewise.
9642         * c-tree.h: Likewise.
9643         * c-typeck.c: Likewise.
9644         * objc/objc-act.c: Likewise.
9645         * objc/objc-act.h: Likewise.
9646
9647 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9648
9649         * m88k-protos.h: New file.
9650
9651         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
9652         time warnings.
9653
9654         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
9655
9656         * m88k.md: Likewise.
9657
9658         * tekXD88.h: Likewise.
9659
9660 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9661
9662         * m68k-protos.h: New file.
9663
9664         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
9665         time warnings.
9666
9667         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
9668
9669         * mot3300.h: Likewise.
9670
9671 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
9672
9673         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
9674         extract_bitlst.
9675         (extract_bitlist): Declare bitlen.
9676
9677 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
9678
9679         * cccp.c: Accept and ignore -lang-fortran.
9680
9681         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
9682         qualifiers don't match at any level of pointerness.
9683
9684 2000-01-12  Robert Lipe  <robertl@sco.com>
9685
9686         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
9687
9688 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
9689
9690         * reload1.c (reload_reg_unavailable): New static variable.
9691         (reload_reg_free_p): Test it.
9692         (reload_reg_free_for_value_p): Test it instead of
9693         reload_reg_used.
9694         (choose_reload_regs_init): Compute it.
9695
9696 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
9697
9698         * reorg.c (fill_slots_from_thread): Check modified_in_p
9699         before replacing.
9700
9701 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
9702
9703         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
9704         these nodes even if INTERNALS is not set.
9705
9706 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
9707
9708         * gcse.c (delete_null_pointer_checks_1): Cope when
9709         get_condition cannot determine the condition.
9710
9711 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9712
9713         * toplev.h (set_message_length): Declare.
9714
9715         * diagnostic.c (obstack_chunk_alloc): Define macro.
9716         (obstack_chunk_free): Likewise.
9717         (struct output_buffer): New data structure.
9718         (vmessage): Remove.
9719         (output_maximum_width): New variable.
9720         (doing_line_wrapping, set_message_length, init_output_buffer,
9721         get_output_prefix, output_space_left, emit_output_prefix,
9722         output_newline, output_append, output_puts, dump_output,
9723         vbuild_message_string, build_message_string, build_location_prefix,
9724         voutput_notice, output_printf, line_wrapper_printf,
9725         vline_wrapper_message_with_location):  New functions. Implement
9726         automatic line wrapping.
9727         (v_message_with_decl): Make it handle automatic line wrapping.
9728         (v_error_with_file_and_line): Likewise.
9729         (v_warning_with_file_and_line): Likewise.
9730         (announce_function): Likewise.
9731         (default_print_error_function): Likewise.
9732
9733 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
9734
9735         * cpplib.h (struct cpp_options): Change lang_asm to char.
9736         Add lang_fortran.
9737         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
9738         done in cpp_handle_option now.
9739         (initialize_builtins): Take out special case code used only by
9740         __STDC_VERSION__.
9741         (cpp_handle_option): Turn off trigraphs and trigraph warnings
9742         if -traditional.  Recognize -lang-fortran and set
9743         lang_fortran, also turn off cplusplus_comments.
9744         (print_help): Document -lang-fortran.
9745         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
9746         lang_asm. Ignore all directives other than `# 123 "file"' if
9747         CPP_PREPROCESSED.
9748         (cpp_get_token): If -traditional, don't recognize directives
9749         unless the # is in column 1.
9750         (parse_string): If lang_fortran or lang_asm, silently
9751         terminate strings ('' or "") at end of line.
9752         Remove unnecessary braces.
9753
9754 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9755             Richard Henderson  <rth@cygnus.com>
9756
9757         * resource.c (mark_referenced_resources): Mark a set strict_low_part
9758         as used.
9759         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
9760         strict_low_part when possible.
9761
9762 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9763
9764         * alias.c: PROTO -> PARAMS.
9765         * basic-block.h: Likewise.
9766         * bitmap.c: Likewise.
9767         * bitmap.h: Likewise.
9768         * builtins.c: Likewise.
9769         * c-aux-info.c: Likewise.
9770         * caller-save.c: Likewise.
9771         * calls.c: Likewise.
9772
9773 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9774
9775         * Makefile.in (toplev.o): Depend on regs.h.
9776
9777         * output.h (tdesc_section): Prototype.
9778
9779         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
9780
9781         * sdbout.c: Include "tm_p.h".
9782
9783         * toplev.c: Include "regs.h".
9784
9785 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
9786
9787         * unroll.c (unroll_loop): Add EH support.
9788
9789 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9790
9791         * pa-protos.h: New file.
9792
9793         * pa.c: Include recog.h and tm_p.h.
9794         (compute_zdepwi_operands, compute_movstrsi_length,
9795         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
9796         find_addr_reg, import_milli): Add static prototypes.
9797         (pa_cpu_string, pa_arch_string): Constify a char*.
9798         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
9799         (read_only_operand): Add argument `mode'.
9800         (singlemove_string, output_move_double, output_fp_move_double,
9801         output_block_move, output_and, output_ior, output_ascii,
9802         remove_useless_addtr_insns, milli_names, output_mul_insn,
9803         output_div_insn, output_mod_insn, output_arg_descriptor,
9804         output_cbranch, output_bb, output_bvb, output_dbra, ,
9805         output_millicode_call, output_call, hppa_encode_label,
9806         output_parallel_movb, output_parallel_addb): Constify a char*.
9807         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
9808         (output_parallel_addb): Remove extra arg to `constrain_operands'
9809
9810         * pa.h:  Move all prototypes to pa-protos.h.
9811         (pa_cpu_string, pa_arch_string): Constify a char*.
9812         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
9813
9814         * pa.md: Call `function_label_operand' with mode argument.
9815         Likewise for `read_only_operand'.
9816         Fix nesting of parens in call to `symbolic_operand'.
9817
9818 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9819
9820         * i860-protos.h: New file.
9821
9822         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
9823         time warnings.
9824
9825         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
9826
9827         * i860.md: Likewise.
9828
9829 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
9830
9831         * i386.md (movstrsi expander): Rewrite.
9832         (movstrsi_1 insn): Deleted.
9833         (strmovhi, strmovqi expander): New expanders.
9834         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
9835         * i386.c (x86_single_stringop): New global variable.
9836         * i386.h (x86_single_stringop): Declare.
9837         (TARGET_SINGLE_STRINGOP): New macro.
9838
9839 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
9840
9841         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
9842         integer vararg POSTINCREMENT before the destination of the jump
9843         for the hard fp case.
9844         (function_arg_pass_by_reference): Pass a copy of CUM to
9845         FUNCTION_ARG.
9846
9847         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
9848         for CONSTANT_ADDRESS_P above while loop for subreg.
9849
9850 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
9851
9852         * flow.c (propagate_block): When a prologue/epilogue insn
9853         is marked dead, unconditionally clear libcall_is_dead and
9854         insn_is_dead, and only dump rtl if warnings aren't being
9855         suppressed.
9856
9857 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
9858
9859         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
9860         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
9861         (FIXED_REGISTERS): Set dirflag as fixed.
9862         (CALL_USED_REGISTERS): Set dirflag as used.
9863         (REG_ALLOC_ORDER): Set dirflag as last one.
9864         (DIRFLAG_REG): New macro.
9865         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
9866         (HI_REGISTER_NAMES): Add dirflag.
9867         (DEBUF_PRINT_REG): Handle dirflag.
9868         * i386.md (type attribute): New cld and str types.
9869         (length_opcode attribute): Set cld and str to 1.
9870         (memory attribute): Set str to unknown - it is not clear from the
9871         patterns.
9872         (pent_np function unit): Prefixed string operations takes 12 cycles
9873         minimally; cld takes 2 cycles.
9874         (ppro_uops attribute): Str is "many" and cld is "few".
9875         (ppro_p0 unit): Handle cld here.
9876         (k6_alux unit): Handle cld and str types.
9877         (k6_load unit): It is ocupied by str opcodes.
9878         (k6_store unit): It is ocupied by str opcodes.
9879         (athlon_decode): Str is vector decoded.
9880         (athlon_ieu): Handle str and cld.
9881         (cld pattern): New.
9882         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
9883         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
9884         cmpstrsi_nz_1 insn): Do not output cld instruction
9885
9886 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
9887
9888         * gcc.texi (G++ and GCC): Add Java and Chill.
9889         (Bug Critera): Don't list languages.
9890
9891         * gcc.texi (Incompatibilities): No longer claim most C compilers
9892         are K&R.
9893
9894         * gcc.texi (G++ and GCC): Update other front-ends list.
9895
9896 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
9897
9898         * i386.c (ix86_expand_setcc): Fix typo.
9899         (ix86_expand_movcc): Similarly.
9900
9901         * Band-aid until haifa's bitset implementation is nuked.
9902         * haifa-sched.c (extract_bitlst): New parameter for size of the
9903         bitset in bits.  All callers changed.  Avoid looking at undefined
9904         bits in the bitset.
9905         (edgeset_bitsize): New variable.
9906         (schedule_region): Initialize edgeset_bitsize.
9907
9908 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9909
9910         * Makefile.in (optabs.o): Depend on real.h
9911         (resource.o): Depend on insn-attr.h
9912
9913         * builtins.c (result_vector): Wrap prototype in macro conditions
9914         governing definition and use.
9915
9916         * c-common.c: Include tm_p.h.
9917
9918         * c-lex.c: Likewise.
9919
9920         * elfos.h: Constify a char*.
9921
9922         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
9923         (get_attr_length, shorten_branches, profile_after_prologue): Mark
9924         parameter with ATTRIBUTE_UNUSED.
9925
9926         * fold-const.c (exact_real_inverse): Wrap variable `i' in
9927         CHECK_FLOAT_VALUE.
9928
9929         * haifa-sched.c (schedule_insns): Mark parameter with
9930         ATTRIBUTE_UNUSED.
9931
9932         * optabs.c: Include real.h.
9933
9934         * real.h (ereal_atof): Add prototype arguments.
9935
9936         * resource.c: Include insn-attr.h.
9937
9938         * sdbout.c (sdbout_queue_anonymous_type,
9939         sdbout_dequeue_anonymous_types): Wrap in macro
9940         SDB_ALLOW_FORWARD_REFERENCES.
9941         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
9942         ATTRIBUTE_UNUSED.
9943
9944         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
9945
9946         * stupid.c: Include tm_p.h.
9947
9948         * tree.c (real_value_from_int_cst): Mark parameter with
9949         ATTRIBUTE_UNUSED.
9950
9951 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9952
9953         * i960-protos.h: New file.
9954
9955         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
9956         time warnings.
9957
9958         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
9959
9960 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9961
9962         * combine.c (expand_field_assignment): Do not discard SUBREGs
9963         while computing nonzero_bits.
9964
9965 2000-01-09  Nick Clifton  <nickc@cygnus.com>
9966
9967         * config/arm/arm.c: Fix compile time warnings about signed vs
9968         unsigned constants.
9969         * config/arm/arm.h: Fix compile time warnings about signed vs
9970         unsigned constants.
9971
9972 2000-01-09  Philip Blundell  <philb@gnu.org>
9973
9974         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
9975         than `ldm' with only one register.
9976         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
9977         only one register.
9978
9979         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
9980         clobbered.
9981
9982 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
9983
9984         * config/ns32k/ns32k.md (load or push effective address): Operand 1
9985         must have SImode.
9986
9987 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9988
9989         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
9990         assignment used as truth value.
9991
9992         * function.c (assign_temp): Mark parameter `dont_promote' with
9993         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
9994         PROMOTE_FOR_CALL_ONLY.
9995
9996         * genrecog.c (write_subroutine): Mark variable `operands' with
9997         ATTRIBUTE_UNUSED.
9998
9999         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
10000         ATTRIBUTE_UNUSED.
10001
10002         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
10003         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
10004
10005         * toplev.c (note_deferral_of_defined_inline_function): Likewise
10006         for `decl'.
10007
10008 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10009
10010         * config/c4x.h: Tidy up comments.
10011         * config/c4x.c: Likewise.
10012
10013 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
10014
10015         * fold-const.c (lshift_double, rshift_double): Handle
10016         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
10017
10018 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10019
10020         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
10021         in prepare_function_start().
10022
10023 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
10024
10025         * config/v850/v850.c (expand_epilogue): Interrupt functions no
10026         longer allocate extra stack for function calls.
10027
10028 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10029
10030         * config/c4x/c4x.md (*subqf3_set): Fix typo.
10031
10032 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10033
10034         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
10035
10036 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
10037
10038         * rs6000.c (processor_target_table): Add power3 as alias for 630.
10039         * aix43.h: Revert Aug 2 change.
10040         (HAS_INIT_SECTION): Define, not visible yet.
10041         (LD_INIT_SWITCH): Define, not visible yet.
10042         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
10043
10044         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
10045
10046         * collect2.c (main): Expand ld2 size further.
10047         (export_object_lst): Cast assignment to avoid warning.
10048         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
10049         (scan_prog_file, COFF): Do not collect initialization or
10050         finalization functions generated for entire shared object if
10051         init/fini support present.
10052
10053 2000-01-07  Nick Clifton  <nickc@cygnus.com>
10054
10055         * config/elfos.h: Tidy up formatting of marcos.  Make sure
10056         that .section directives are always prefixed by a tab.
10057
10058         * config/svr4.h: Add #include "elfos.h" and remove duplicate
10059         definitions.
10060
10061 2000-01-07  Matt Austern  <austern@sgi.com>
10062
10063         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
10064         expon.
10065
10066 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
10067
10068         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
10069         crtstuff.c.
10070         (crtbegin.o, s-crtS): Likewise.
10071
10072 2000-01-06  Richard Henderson  <rth@cygnus.com>
10073
10074         * alpha.md (adddi_2+1): Limit offset such that it will be
10075         loadable with a single ldah+lda pair.
10076         (adddi_2+2): Explicitly fail split if we can't make it work.
10077
10078 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
10079
10080         * protoize.c: Conditionally include unistd.h.
10081         (IS_SAME_PATH_CHAR): New macro.
10082         (IS_SAME_PATH): New macro.
10083         (CPLUS_FILE_SUFFIX): New macro.
10084         (cplus_suffix): New static variable.
10085         (is_abspath): New static function.
10086         (in_system_include_dir): Handle DOS style pathnames.
10087         (file_could_be_converted): Likewise.
10088         (file_normally_convertible): Likewise.
10089         (directory_specified_p): Likewise.
10090         (file_excluded_p): Likewise.
10091         (abspath): Likewise.
10092         (shortpath): Likewise.
10093         (referenced_file_is_newer): Likewise.
10094         (save_def_or_dec): Likewise.
10095         (do_processing): Likewise.
10096         (main): Likewise.
10097         (edit_file): Likewise. Use rename instead of link.
10098         (rename_c_file): Likewise. Don't rename syscalls file.
10099         (munge_compile_params): Define null device for DOS based systems.
10100         (process_aux_info_file): Use binary mode if appliable.
10101         (edit_file): Likewise.
10102         * invoke.texi (Running Protoize): Document C++ suffixes used.
10103
10104         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
10105         IS_DIR_SEPARATOR macros.
10106         * collect2.c: Likewise.
10107         * cppinit.c: Likewise.
10108         * dwarf2out.c: Likewise.
10109         * gcc.c: Likewise.
10110         * gcov.c: Likewise.
10111         * prefix.c: Likewise.
10112         * rtl.c: Likewise.
10113         * toplev.c: Likewise.
10114         * system.h: And move to here.
10115
10116         * prefix.c (update_path): Fix typo in variable name.
10117
10118 2000-01-06  Richard Henderson  <rth@cygnus.com>
10119
10120         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
10121         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
10122         (count_reg_sets_1, count_reg_references): Likewise.
10123         (flow_loops_level_compute): Start counting actual loop depth at 1.
10124         (flow_loops_find): Likewise.
10125         * local-alloc.c (update_equiv_regs): Likewise.
10126         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
10127
10128 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
10129
10130         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
10131         FIRST_PSEUDO_REGISTER
10132         * dwarf2out.c: Don't include frame.h
10133         * dwarfout.c: Likewise
10134         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
10135         frame.h
10136
10137 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
10138
10139         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
10140         dead registers.
10141
10142         * i386.c (movsf splitter): Fix typo in my last checkin.
10143
10144 2000-01-05  Nick Clifton  <nickc@cygnus.com>
10145
10146         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
10147         own definition of this macro.
10148         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
10149         flag_data_sections or UNIQUE_SECTION_P are true.
10150
10151         * tm.texi (UNIQUE_SECTION): Document that it can be called for
10152         unitialised data decls.
10153
10154         * config/i386/winnt.c (i386_pe_unique_section): Cope with
10155         being called for uninitialised data.
10156
10157         * config/i386/interix.c (i386_pe_unique_section): Cope with
10158         being called for uninitialised data.
10159
10160         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
10161         for uninitialised data.
10162
10163         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
10164         for uninitialised data.
10165
10166         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
10167         for uninitialised data.
10168
10169         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
10170         (UNIQUE_SECTION_P): Always generate a unique section if
10171         flag_data_sections is true.
10172         (UNIQUE_SECTION): Also generate unique sections for
10173         uninitialised data.
10174         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
10175         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
10176         named_section().
10177
10178 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10179
10180         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
10181         SI, or DI.
10182
10183 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10184
10185         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
10186         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
10187         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
10188         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
10189         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
10190
10191         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
10192
10193 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
10194
10195         * c-decl.c (finish_enum): Simplify code to determine minimum and
10196         maximum values of the enum, and calculate the type.  Remove check
10197         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
10198         the DECL_INITIAL of each enumeration constant with a copy converted
10199         to the enumeration type.  When updating variant types, don't bother
10200         updating the type itself.
10201
10202         * c-typeck.c (build_binary_op): Simplify conditional expressions
10203         when weeding out spurious signed-unsigned warnings.  Add new
10204         spurious warning category: if the unsigned quantity is an enum
10205         and its maximum value fits in signed_type(result_type).  Update
10206         commentary.
10207         (build_conditional_expr): Warn here if one alternative is signed
10208         and the other is unsigned.
10209
10210 2000-01-05  Nick Clifton  <nickc@cygnus.com>
10211
10212         * config/fr30/fr30.h: Remove extraneous comments.
10213
10214 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
10215
10216         * reload1.c (choose_reload_regs): When disabling a reload, also
10217         set reload_spill_index to -1.
10218
10219 2000-01-04  Joel Sherrill (joel@OARcorp.com>
10220
10221         * configure.in (m68*-*-rtemscoff*): New target, formal name for
10222         old m68*-*-rtems*.
10223         (m68*-*-rtemself*): New target.
10224         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
10225         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
10226         (sparc*-*-rtemself*): New target.
10227         (sparc*-*-rtems*): Now elf not a.out.
10228         * config/i386/rtems.h: Include config/rtems.h.
10229         * config/i386/rtemself.h: Include config/rtems.h.
10230         * config/i960/rtems.h: Include config/rtems.h.
10231         * config/m68k/rtems.h: Include config/rtems.h.
10232         * config/m68k/rtemself.h: Include config/rtems.h.
10233         * config/mips/rtems64.h: Include config/rtems.h.
10234         * config/pa/rtems.h: Include config/rtems.h.
10235         * config/rs6000/rtems.h: Include config/rtems.h.
10236         * config/sh/rtems.h: Include config/rtems.h.
10237         * config/sh/rtemself.h: Include config/rtems.h.
10238         * config/sparc/rtems.h: Include config/rtems.h.
10239         * config/sparc/rtemself.h: Include config/rtems.h
10240
10241 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
10242
10243         * final.c (shorten_branches): Correctly compute length of
10244         asms without operands.
10245
10246 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
10247
10248         * configure.in: Add pj target.
10249         * configure: Regenerate.
10250         * config/pj: New directory.
10251         * config/pj/lib1funcs.S: New file.
10252         * config/pj/linux.h: New file.
10253         * config/pj/pj.c: New file.
10254         * config/pj/pj.md: New file.
10255         * config/pj/pjl.h: New file.
10256         * config/pj/t-pj: New file.
10257         * config/pj/xm-pj.h: New file
10258
10259 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
10260
10261         * toplev.c (rest_of_compilation): Run shorten-branches before
10262         reg-stack for now.
10263
10264 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10265
10266         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
10267         macros so that they're consistent with their names.
10268         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
10269         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
10270
10271 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10272
10273         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
10274         modified inadvertently.
10275
10276 2000-01-04  Joel Sherrill <joel@OARcorp.com>
10277
10278         * configure.in (v850*-*-rtems*): New target.
10279         * configure: Regenerate.
10280         * config/v850/rtems.h: New file.
10281
10282 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
10283
10284         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
10285         (__gthread_key_create): Likewise.
10286         (__gthread_key_dtor):  Likewise.
10287         (__gthread_once): Fix logic.
10288         (__gthread_key_delete): Cast away constness.
10289
10290         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
10291         * invoke.texi: Document.
10292         * i386/mingw32.h (CPP_SPEC): Use.
10293         (LIBGCC_SPEC): Likewise.
10294         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
10295
10296 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
10297
10298         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
10299         (HANDLE_PRAGMA_PACK): Undefine.
10300         (SLOW_UNALIGNED_ACCESS): Define.
10301
10302 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
10303
10304         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
10305         to default definition.
10306         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
10307         (store_fixed_bit_field): Call macro with word_mode and alignment.
10308         (extract_bit_field): Call macro with relevant mode and alignment.
10309         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
10310         to default definition.
10311         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
10312         and alignment.
10313         (move_by_pieces_ninsns): Likewise.
10314         (clear_by_pieces): Likewise.
10315         (emit_push_insn): Likewise.
10316         (store_field): Call macro with relevant mode and alignment.
10317         (expand_expr): Likewise.
10318         (expand_expr_unaligned): Likewise.
10319
10320         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
10321         (SLOW_UNALIGNED_ACCESS): Define.
10322         (CASE_VECTOR_MODE): Always use 32-bit offsets.
10323         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
10324         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
10325         (toc_section): Likewise and .toc pseudo-op.
10326         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
10327         64-bit mode.
10328         (TEXT_SECTION_ASM_OP): Likewise.
10329         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
10330         32-bit offsets.
10331
10332         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
10333         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
10334         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
10335         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
10336         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
10337
10338 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
10339
10340         * regclass.c: Revert my Jan 4 change to loop cost computation.
10341
10342 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
10343
10344         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
10345         compilation.
10346
10347 2000-01-04  Stan Cox  <scox@cygnus.com>
10348
10349         * haifa-sched.c (build_control_flow): Change unreachable simple
10350         loop test to check if current block has only one predecessor.
10351         (find_rgns): Initialize degree.  Use dest as degree index, not src.
10352
10353 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10354
10355         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
10356
10357         * calls.c (expand_call): Likewise for
10358         `old_stack_arg_under_construction'.
10359
10360         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
10361
10362         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
10363         `save_constant'.
10364
10365         * gcc.c (execute): Likewise for `ut' and `st'.
10366
10367         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
10368
10369         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
10370
10371         * jump.c (jump_optimize_1): Likewise for `temp2'.
10372
10373         * local-alloc.c (block_alloc): Likewise for `r1'.
10374
10375         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
10376
10377         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
10378         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
10379
10380         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
10381         and `set2'.
10382
10383         * reload.c (find_reloads): Likewise for `goal_alternative_number'
10384         and `goal_earlyclobber'.
10385
10386         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
10387
10388         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
10389
10390         * stupid.c (stupid_life_analysis): Likewise for `chain'.
10391
10392         * unroll.c (copy_loop_body): Likewise for `copy'.
10393
10394         * varasm.c (output_constructor): Likewise for `byte'.
10395
10396 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
10397
10398         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
10399         all FP constants for constant->reg moves.
10400         (ix86_split_to_parts): Try to convert memory address into immediate
10401         when available in the constant pool.
10402         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
10403         moves.
10404         (LEGITIMATE_CONSTANT_P): Return 1.
10405         * i386.md (pushsf): New splitter to convert constant pool memory
10406         reference to immediate.
10407         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
10408         reload.
10409
10410 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
10411
10412         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
10413         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
10414         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
10415         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
10416         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
10417
10418 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
10419
10420         * ginclude/stdbool.h:  Support compilation as C++.
10421
10422 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10423
10424         * fold-const.c (make_range): Don't try to reverse an unbounded range.
10425
10426 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
10427
10428         * regclass.c (regclass): Properly compute loop_cost.  Adjust
10429         comments.
10430
10431         * regclass.c: Fix minor whitespace problems.
10432
10433 2000-01-03  Anthony Green  <green@cygnus.com>
10434
10435         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
10436         Restore the pic register if required.
10437
10438 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
10439
10440         * c-common.c (format_char_info): Update comment.
10441         (check_format_info): Recognize 'z' modifier in the same way 'Z'
10442         was recognized.  Emit warning for formats new in ISO C99 only
10443         if flag_isoc9x is not set.
10444
10445 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
10446
10447         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
10448
10449 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
10450
10451         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
10452         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
10453         (make_compound_operation): Choose cheaper alternative between
10454         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
10455
10456         * regclass.c (op_costs): Remove global variable.
10457         (record_reg_classes): New parameter "op_costs" and "reg_pref".
10458         (record_operand_costs): Break out from ...
10459         (scan_one_insn): ... here.
10460         (dump_regclass): Make dumps nicer.
10461         (regclass): Dump preferrences choosed and changes done during passes.
10462
10463 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
10464
10465         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
10466
10467 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
10468
10469         * config/sparc/sparc.c (gen_df_reg): New function.
10470         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
10471         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
10472         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
10473         movtf_cc_reg_sp64+1): Use it.
10474
10475 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
10476
10477         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
10478         copied LABEL_DECLs.
10479
10480 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10481
10482         * config/i386/i386.c (ix86_expand_unary_operator): Function
10483         definition made void.
10484         (ix86_expand_binary_operator): Update outdated preceding comment.
10485         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
10486         prototype.
10487
10488         * config/i386/i386.c (override_options): Fix option-name typo.
10489
10490 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
10491
10492         * system.h (CEIL): Define.
10493         * builtins.c (CEIL): Remove.
10494         * expmed.c (CEIL): Likewise.
10495         * expr.c (CEIL): Likewise.
10496         * stor-layout.c (CEIL): Likewise.
10497
10498 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
10499
10500         * expr.c (store_constructor_field): Fix typo introduced with last
10501         gcc2 merge.
10502
10503 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
10504
10505         * tree.h (BINFO_N_BASETYPES): New macro.
10506
10507 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
10508
10509         * expmed.c (emit_store_flag): Prevent losing a pending stack
10510         adjust the same way we prevent losing queued increments.
10511
10512 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10513
10514         * function.c (update_temp_slot_address): Handle case where sum of
10515         temporary address plus offset in register is a valid address.
10516
10517 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
10518
10519         * genrecog.c (change_state) Corrected typo.
10520
10521 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10522
10523         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
10524         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
10525         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
10526
10527 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
10528
10529         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
10530         case, expand GT comparisons correctly.  Fix a comment before this
10531         part of the code.
10532
10533 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
10534
10535         * dwarfout.c: Include "frame.h"
10536         * dwarf2out.c: Likewise.
10537         * Makefile.in (dwarfout.o): Depend on frame.h
10538         (dwarf2out.o): Likewise.
10539
10540 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
10541
10542         Restore i386 binary compatibility in Dwarf EH info.
10543         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
10544         value of FIRST_PSEUDO_REGISTER.
10545         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
10546         (struct frame_state): Use DWARF_FRAME_REGISTERS.
10547         * dwarfout.c (output_reg_number): Ditto.
10548         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
10549         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
10550
10551 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
10552
10553         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
10554         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
10555         (<hack>_RE_CT): not needed
10556         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
10557         rewritten to scan the file text once only
10558         "template<..." test added
10559         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
10560         (is_cxx_header): declaration added
10561         * fixinc/fixtests.c(is_cxx_header): removed
10562         (apply_fix_p_t): removed
10563         (double_slash_test): is_cxx_header is only called once now
10564         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
10565         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
10566         within the templates.
10567         The borken spelling of "broken" was fixed.
10568         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
10569         The default level depends on FIXINC_DEBUG.
10570
10571 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10572
10573         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
10574         Otherwise provide a declaration for atexit.
10575         (init_dummy): Make sure dummy call to atexit is nevertheless
10576         called with correct number of args.
10577
10578         * frame.c: Update comments referring to other files.
10579
10580         * libgcc2.c: Likewise.
10581
10582 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10583
10584         * cse.c (free_element, get_element): Remove unused prototypes.
10585
10586         * fold-const.c (extract_muldiv): Initialize variables `op0' and
10587         `op1'.
10588
10589         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
10590         `else' clauses.
10591
10592 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
10593
10594         * configure.in,configure: case arm for mn10200-*-* now sets
10595         float_format=i32 so that float.h will correctly claim "double"
10596         to be 32 bits. Ran autoconf to generate configure from .in file.
10597
10598 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
10599
10600         * pa.md (conditional zero): If op1 is a register, force it into
10601         the same register as op0.
10602
10603 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
10604
10605         * tree.h (BINFO_BASETYPES): Improve documentation.
10606
10607 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10608
10609         * configure.in (--enable-checking): Use a more portable `for'
10610         loop syntax.
10611
10612 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10613
10614         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
10615         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
10616
10617         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
10618         Delete files.
10619
10620         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
10621         Delete descriptions.
10622
10623         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
10624         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
10625         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
10626         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
10627         xm-svr4.h: Remove all instances of sys_siglist handling.
10628
10629 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
10630
10631         * config/sparc/sparc.md (cmp_zero_qi,
10632         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
10633         cmp_zero_extendqidi2_andcc_set): New patterns.
10634
10635 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
10636
10637         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
10638         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
10639         (fpgnulib.c, xfgnulib.c): Add rules.
10640         * m68k/t-mot3300-gas: Likewise.
10641
10642 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
10643
10644         * configure.in: Avoid [[ by using test and changequote.  Add
10645         changequote required by 1999-12-14 change.
10646         * configure: Rebuild.
10647
10648 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
10649
10650         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
10651
10652 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
10653
10654         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
10655         * flow.c (find_use_as_address): Likewise.
10656         * function.c (fixup_var_refs_1): Likewise.
10657         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
10658         * jump.c (invert_exp, redirect_exp): Likewise.
10659         * loop.c (replace_call_address): Likewise.
10660         (count_nonfixed_reads): Likewise.
10661         * rtlanal.c (modified_between_p): Likewise.
10662         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
10663         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
10664         * unroll.c (remap_split_bivs): Likewise.
10665
10666 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10667
10668         * diagnostic.c (v_message_with_decl): Use .* format specifier
10669         instead of building the format specifier width manually.
10670
10671         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
10672         determining whether to provide a prototype.  Remove the
10673         sys_siglist clause in the conditional.
10674
10675 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10676
10677         * fold-const.c (operand_equal_p): Use memcmp to compare string
10678         constants.
10679         Suggested by D. J. Bernstein
10680
10681 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
10682
10683         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
10684         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
10685         compiling libgcc2.
10686         * config/mips/mips.h (TARGET_64BIT): Likewise.
10687         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
10688         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
10689         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
10690         dsps.  Give routines proper names if SI/DI modes are not used.
10691         * longlong.h: Use DWunion instead of DIunion.
10692
10693 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
10694
10695         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
10696         GC_CHECKING, GC_ALWAYS_COLLECT.
10697         * configure.in: Allow --enable-checking with an argument
10698         listing check modes to enable.
10699         * config.in, configure: Rebuilt.
10700         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
10701         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
10702         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
10703         ENABLE_GC_ALWAYS_COLLECT.
10704         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
10705         throughout.
10706         * tree.h, tree.c: Change ENABLE_CHECKING to
10707         ENABLE_TREE_CHECKING throughout.
10708
10709 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10710
10711         * fold-const.c (fold_truthop): Properly check for FP RHS.
10712
10713 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
10714
10715         * toplev.h (note_deferall_of_defined_inline_function): Declare.
10716         * toplev.c (note_deferral_of_defined_inline_function): New
10717         function, split out from ...
10718         (rest_of_compilation): ... here.  Use it.
10719
10720 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10721
10722         * expr.c (store_constructor): Don't call clear_storage if size is
10723         variable.
10724
10725 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10726
10727         * Makefile.in (toplev.o): Depend on loop.h.
10728
10729         * dwarfout.c: Include tm_p.h.
10730
10731         * emit-rtl.c (restore_emit_status): Mark parameter with
10732         ATTRIBUTE_UNUSED.
10733
10734         * final.c (final_scan_insn): Likewise.
10735
10736         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
10737         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
10738         flow_depth_first_order_compute, flow_loop_pre_header_find,
10739         flow_loop_tree_node_add, flow_loops_tree_build,
10740         flow_loop_level_compute, flow_loops_level_compute,
10741         flow_loop_outside_edge_p): Add prototypes.
10742         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
10743
10744         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
10745         Mark with ATTRIBUTE_NORETURN.
10746
10747         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
10748
10749         * local-alloc.c (no_conflict_p): Likewise.
10750
10751         * loop.c (insert_bct): Hide definitions of variables with hidden
10752         usage.
10753         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
10754
10755         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
10756         with ATTRIBUTE_UNUSED.
10757         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
10758         (reg_scan): Likewise.
10759
10760         * reload.c (find_reloads): Remove unused variables `changed'.
10761
10762         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
10763         away const-ness.
10764         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
10765         Remove unused variable `insn'.
10766
10767         * toplev.c: Include loop.h.
10768         (report_file_and_line): Remove unnecessary prototype.
10769
10770         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
10771
10772         * unroll.c (biv_total_increment): Likewise.
10773
10774 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10775
10776         * reload1.c (emit_input_reload_insns): Restore old behaviour
10777         wrt. 'special' reloads.
10778
10779 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
10780
10781         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
10782         hash.h.  (cse.c): Don't depend on hashtab.h.
10783
10784         * cse.c: Don't include hashtab.h.
10785         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
10786         of dead functions.
10787         * ggc-simple.c: Don't include hash.h.
10788
10789 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
10790
10791         * dwarf2out.c (add_abstract_origin_attribute): Call
10792         gen_abstract_function on our function context.
10793
10794 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
10795
10796         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
10797
10798 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10799
10800         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
10801         case in switch.
10802
10803 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10804
10805         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
10806         constraints to "a!r".
10807
10808 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
10809
10810         * Makefile.in (calls.o): Depend on function.h.
10811         (alias.o): Likewise.
10812
10813 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
10814
10815         * reload1.c (emit_reload_insns): Break out code and variables into...
10816         (input_reload_insns, other_input_address_reload_insns,
10817         other_input_reload_insns, input_address_reload_insns,
10818         inpaddr_address_reload_insns, output_reload_insns,
10819         output_address_reload_insns, outaddr_address_reload_insns,
10820         operand_reload_insns, other_operand_reload_insns,
10821         other_output_reload_insns): ... new static variables, and...
10822         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
10823         do_output_reload): ... new functions.
10824
10825 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10826
10827         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
10828
10829 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10830
10831         * md.texi: Add c4x constraints documentation.
10832
10833 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10834
10835         * config/i386/dgux.c (struct option): Rename to
10836         lang_independent_option.
10837         (struct m_options): Add description field.
10838         (output_options): Rename option type, add sep declaration, output
10839         ix86_cpu_string and ix86_arch_string only if set.
10840         (output_file_start): Rename option type.
10841
10842 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
10843
10844         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
10845         stmp-int-hdrs.
10846         (libgcc2.a): Similarly.
10847
10848 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
10849
10850         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
10851         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
10852         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
10853
10854 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
10855
10856         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
10857         Remove redundant initialization of "frexpon" and "expon".
10858
10859 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10860
10861         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
10862
10863         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
10864         (store_constructor_field, expand_expr): Pass new arg.
10865
10866 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
10867
10868         * Makefile.in (explow.o): Depend on function.h.
10869
10870         * stor-layout.c (set_sizetype): Fix typo.
10871
10872 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
10873
10874         * function.c (cfun): Renamed from current_function.  All users
10875         changed.
10876         * function.h (cfun): Rename declaration as well.
10877
10878         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
10879         to be of type regset_head, not regset.  All users changed by adding
10880         address operator.
10881         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
10882
10883 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10884
10885         * config/c4x/rtems.h: New file.
10886
10887 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
10888
10889         * reload1.c (spill_failure): Take class of failed reload as argument
10890         and print it.  Caller changed.
10891
10892 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10893
10894         * rs6000.h (SUBTARGET_DEFAULT): New macro.
10895         (TARGET_SWITCHES): Allow subtargets to default switches.
10896         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
10897
10898 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
10899
10900         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
10901         in a main program.
10902
10903 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
10904
10905         * cccp.c (main): Define __STDC_VERSION__ as necessary.
10906         * cppinit.c (cpp_handle_option): Likewise.
10907
10908         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
10909         determine when to define.
10910
10911 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
10912
10913         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
10914         cmove with mismatched test and data modes.
10915
10916 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
10917
10918         * c-typeck.c (c_expand_start_case): Don't warn for long switch
10919         in system headers.
10920
10921 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10922
10923         * alias.c: Minor reformatting.
10924         * flow.c: Likewise.
10925         * regs.h: Likewise.
10926         * stor-layout.c: Likewise.
10927         * fold-const.c: Likewise.
10928         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
10929         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
10930         not arg itself.
10931         (size_int_wide): Cache nodes even if garbage collecting.
10932         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
10933         of SAVE_EXPR has no side effects.
10934         * cse.c: Move a comment.
10935         * tree.c: Minor reformatting.
10936         (int_size_in_bytes): Return -1 if constant overflows.
10937
10938 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10939
10940         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
10941
10942 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
10943
10944         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
10945         after any change to c-parse.in, even if objc-parse.y didn't
10946         change.  Oops.
10947
10948 1999-12-18  David S. Miller  <davem@redhat.com>
10949
10950         * toplev.c (rest_of_compilation): Restore BLOCK tree
10951         reconstruction and branch shortening changes lost in
10952         December 18th change.
10953
10954 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
10955
10956         * config/arm/linux-elf.h: Change all instances of
10957         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
10958         * config/arm/uclinux-elf.h: Likewise.
10959
10960 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
10961
10962         * toplev.c (notice, vmessage, v_message_with_file_and_line,
10963         v_message_with_decl, file_and_line_for_asm,
10964         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
10965         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
10966         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
10967         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
10968         pfatal_with_name, fatal_io_error, need_error_newline,
10969         last_error_function, last_error_tick, announce_function,
10970         default_print_error_function, print_error_function,
10971         report_error_function, fnotice, error_with_file_and_line,
10972         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
10973         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
10974         warning_with_decl, warning_for_asm, warning, pedwarn,
10975         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
10976         diagnostic.c
10977         (compile_file): Use fnotice instead of notice.  Adjust call.
10978
10979         * diagnostic.c: New file.
10980
10981         * Makefile.in (OBJS): Include diagnostic.o
10982         (diagnostic.o): Define dependence.
10983
10984 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10985
10986         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
10987         Tweak formatting.
10988
10989 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10990
10991         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
10992
10993 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
10994
10995         * fixtests.c (is_cxx_header): New fn, split out of
10996         double_slash_test.
10997         (else_endif_label): Allow "#endif // comment" in C++ headers,
10998         as determined by is_cxx_header.
10999         * fixfixes.c (else_endif_label_fix): Update comment.
11000         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
11001         a tty.
11002         * genfixes: Correct double thinko in commandline parsing.
11003         * hackshell.tpl: Generate correct sh syntax for bypass
11004         entries.
11005
11006         * inclhack.def (all): Whenever an inserted preprocessor
11007         conditional is split over multiple lines, use double
11008         backslashes in this file so the fixed header will be readable.
11009
11010         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
11011         and add bypass entry for correct version of this header.
11012         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
11013         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
11014
11015         (hpux8_bogus_inlines): New fix, split from...
11016         (ultrix_atof_param) ... here.
11017         (math_expression): Add bypass entry keyed to glibc comment
11018         indicating the problem has been dealt with; disable
11019         unnecessary sed operations; update commentary.
11020         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
11021         add select and bypass entries, simplify shell operation.
11022         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
11023
11024         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
11025          ultrix_atof_param): Add select entry.
11026         (stdio_va_list, sunos_mather_decl): Add bypass entry.
11027         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
11028         comments with the fixes they describe.
11029
11030         * c-parse.in (string action): Do not warn about ANSI string
11031         concatenation in system headers.  Affects C parser only.
11032         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
11033
11034 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
11035
11036         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
11037         compiling libgcc2 the macro depends always on arch cpp defines.
11038
11039 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
11040
11041         * loop.c (insert_loop_mem): Don't record MEMs from inside
11042         EXPR_LISTs.
11043
11044 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
11045
11046         * regclass.c (regclass): Do not use flowgraph when not optimizing.
11047
11048         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
11049         notes too, create one when replacement failed, attempt to simplify
11050         resulting notes.
11051         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
11052         or REG_EQUIV notes.
11053
11054 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
11055
11056         * crtstuff.c (__dso_handle): Declare.
11057         (__cxa_finalize): Likewise.
11058         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
11059         non-NULL.
11060
11061         * invoke.texi: Document -fuse-cxa-atexit.
11062
11063         * tree.h (ptr_type_node): Document.
11064         (const_ptr_type_node): Likewise.
11065
11066 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11067
11068         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
11069         (optimize_reg_copy_2): Likewise.
11070         (optimize_reg_copy_3): Likewise.
11071         (fixup_match_2): Likewise.
11072         (regmove_optimize): Likewise.
11073         (fixup_match_1): Liekwise.
11074
11075         * i386.md (HI to SImode promoting splitters): Rewrite.
11076         (pushsf mem peep2): New.
11077         (testhi to andhi peep2): Remove.
11078         * i386.h (x86_promote_QImode): New.
11079         (TARGET_PROMOTE_QImode): New.
11080         (PREDICATE_CODES): Add promotable_binary_operator.
11081         * i386.c (x86_promote_QImode0: New.
11082         (promotable_binary_operator): New.
11083         * i386-protos.h (promotable_binary_operator): New.
11084
11085         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
11086         condition.
11087         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
11088
11089 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
11090
11091         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
11092         * function.c (insert_block_after_note): Remove.
11093         (retrofit_block): Likewise.
11094         (identify_blocks): Fix indentation.
11095         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
11096         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
11097         * function.h (insert_block_after_note): Remove prototype.
11098         (retrofit_block): Likewise.
11099         * integrate.c (expand_inline_function): Don't call
11100         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
11101         just expand_start_bindings.  Use the block_map to remap old
11102         NOTE_BLOCKs to new ones.
11103         (integrate_decl_tree): Keep track of remapped blocks.
11104         * integrate.h (struct inline_remap): Add block_map.
11105         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
11106         NOTE_BLOCK on the notes.
11107         (expand_start_bindings): Rename to ...
11108         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
11109         (expand_end_bindings): Set NOTE_BLOCK.
11110         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
11111         reconstruct the BLOCK tree.
11112         * tree.h (expand_start_bindings): Macroize.  Call ...
11113         (expand_start_bindings_and_block): New function.
11114
11115 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
11116
11117         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
11118         to match the format.
11119
11120 1999-12-16  David S. Miller  <davem@redhat.com>
11121
11122         * expr.c (emit_move_insn_1): Only emit clobbers if one of
11123         the outputs is a SUBREG.
11124         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
11125         change.
11126
11127         * config/sparc/sparc.c (epilogue_renumber): Add default case
11128         to switch stmt.
11129
11130 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11131
11132         * toplev.c (rest_of_compilation): Run branch shortening after
11133         reg-stack.
11134
11135         * regclass.c (loop_depth): Remove
11136         (scan_one_insn): Do not handle LOOP_NOTE insns.
11137         (regclass): Go through basic blocks and set loop_cost
11138
11139 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
11140
11141         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
11142
11143 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11144
11145         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
11146         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
11147         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
11148
11149 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
11150
11151         * loop.c (insert_loop_mem): Ignore memory clobbers.
11152
11153         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
11154         to (OP A B).
11155
11156 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
11157
11158         * profile.c: Remove redundant #include "output.h".
11159
11160         * h8300.md (HImode preinc peephole): Fix typo.
11161
11162 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
11163
11164         * function.c (retrofit_block): Abort if we don't find a suitable insn.
11165         (insert_block_after_note): Abort if we don't have a previous block.
11166         Remove FN parameter.
11167         * function.h: Adjust.
11168
11169 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
11170
11171         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
11172         argument more than once.
11173
11174 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
11175
11176         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
11177
11178 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
11179
11180         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
11181
11182 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11183
11184         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
11185         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
11186         update stack_alignment_needed.
11187         (prepare_function_start): Initialize stack_alignment_needed
11188         * function.h (struct function): Add field stack_alignment_needed.
11189
11190 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11191
11192         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
11193         Handle live_throughout / dead_or_set instead of live_before /
11194         live_after.
11195         (save_call_clobbered_regs): Get register livenessinformation from
11196         chain->live_throughout.
11197         (add_stored_regs): New function.
11198         (insert_restore, insert_save): Add restored / saved registers to
11199         dead_or_set.
11200         * global.c (reg_dies): New parameter chain.
11201         (reg_becomes_live): Third parameter is regs_set now.
11202         Changed all callers.
11203         (reg_dies): New parameter chain.  Changed all callers.
11204         (build_insn_chain): Set live_throughout instead of
11205         live_before / live_after.
11206         * reload.h (struct insn_chain): Replace members live_before /
11207         live_after with live_throughout / dead_or_set.
11208         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
11209         instead of live_before / live_after.
11210         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
11211         (order_regs_for_reload, find_reg, finish_spills): Likewise.
11212         (choose_reload_regs_init): Likewise.
11213         * stupid.c (current_chain, find_clobbered_regs): Delete.
11214         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
11215         instead of chain->live_before / chain->live_after.
11216         (mark_hard_ref): New function.
11217         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
11218
11219 1999-12-15  David S. Miller  <davem@redhat.com>
11220
11221         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
11222
11223 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11224
11225         * flow.c (calculate_loop_depth): Make global, remove prototype,
11226         rewrite to use new loop infrastructure.
11227         (find_basic_block): Remove calculate_loop_depth call.
11228         * toplev.c (rest_of_compilation): Call find_basic_block.
11229         * output.h (calculate_loop_depth): Declare.
11230
11231         * flow.c (dump_flow_info): Dump loop_depth.
11232         (flow_loops_nodes_find): Increase loop_depth for basic block in the
11233         body.
11234         (flow_loops_find): Initialize the loop_depth for each basic block.
11235
11236 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
11237
11238         * tree.c (decl_function_context): Handle virtual functions.
11239
11240         * tlink.c (scan_linker_output): Don't look in demangled name when
11241         looking for linker output keywords.
11242
11243         * dwarfout.c (output_type): We can defer namespace-scope classes.
11244
11245 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
11246
11247         * regclass.c (record_reg_classes): Update comment for merging
11248         register class preferences in reg->reg copies.  Tighten conditions
11249         for merging register class preferences in reg->reg copies.
11250
11251 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
11252
11253         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
11254
11255 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
11256
11257         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
11258         (INIT_SECTION_ASM_OP): Delete.
11259         (FINI_SECTION_ASM_OP): Delete.
11260         (STARTFILE_SPEC): Define to hold just crtbegin.o.
11261
11262 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
11263
11264         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
11265         the abstract origin wasn't emitted.
11266
11267         * dwarf2out.c (class_scope_p): New fn.
11268         (gen_subprogram_die): Use it.
11269         (gen_variable_die): Use it.  Tweak logic.
11270         (gen_struct_or_union_type_die): Check context_die to determine
11271         if we're function-local.
11272         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
11273
11274 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
11275
11276         * loop.c (check_dbra_loop): Can't reverse a biv that has
11277         maybe_multiple set.
11278
11279 1999-12-14  Nick Clifton  <nickc@cygnus.com>
11280
11281         * config/arm/arm.c: Add support for -mcpu=arm720 command line
11282         switch.
11283
11284 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11285
11286         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
11287         for givs made from biv increments.
11288
11289 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
11290
11291         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
11292         * alpha.c (override_options): Recognize -mcpu=ev67.
11293         * alpha.h (CPP_CPU_EV67_SPEC): New.
11294         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
11295         (EXTRA_SPECS): Update.
11296
11297 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
11298
11299         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
11300         appropriate for -lang-c89 and -std=*.
11301         * cppinit.c (cpp_handle_option): Likewise.
11302         (new_pending_define): New, split out from cpp_handle_option.
11303         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
11304         or enable trigraphs for -ansi/-std=*.
11305
11306         * ginclude/stdarg.h (__va_copy): New.
11307         (va_copy): Don't define for C89.
11308
11309 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
11310
11311         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
11312         for long long multiply-accumulate.
11313
11314 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11315
11316         * regclass.c (scan_one_insn): Set loop_cost to 1 when
11317         optimizing for size.
11318
11319 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
11320
11321         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
11322         if something changed.  Back out that part of yesterday's changes.
11323
11324         * loop.c (loop_max_reg): New static variable.
11325         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
11326         max_reg_num.
11327         (scan_loop): Call reg_scan_update whenever we may have added new
11328         registers, and update loop_max_reg.
11329
11330 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11331
11332         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
11333         when source does not die.
11334
11335         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
11336
11337 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
11338
11339         * config/sparc/linux64.h (TARGET_LIVE_G0,
11340         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
11341         variants on Linux.
11342         * config/sparc/linux.h (TARGET_LIVE_G0,
11343         TARGET_BROKEN_SAVERESTORE): Likewise.
11344         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
11345         TARGET_BROKEN_SAVERESTORE): Likewise.
11346
11347         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
11348         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
11349         not %g2.
11350         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
11351         as sparc64 block profiling register.
11352         * config/sparc/sparc.c (sparc_override_options): Allow block
11353         profiling with -m32.
11354         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
11355         profiling register.
11356         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
11357         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
11358         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
11359
11360         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
11361         for sparc64.
11362         * config/sparc/sparc.h: Likewise.
11363         * config/sparc/xm-sysv4-64.h: Likewise.
11364         * config/float-sparc.h: Likewise.
11365         * glimits.h: Likewise.
11366         * longlong.h: Likewise.
11367
11368         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
11369         (ASM_IDENTIFY_GCC): Remove.
11370
11371 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
11372
11373         * combine.c (combine_simplify_rtx): Don't make shared rtl.
11374         (simplify_logical): Likewise.
11375
11376 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
11377
11378         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
11379         * cppfiles.c (INO_T_EQ): Likewise.
11380
11381 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
11382
11383         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
11384         * i386/mingw32.h (LIB_SPEC): Likewise.
11385         (STARTFILE_SPEC): Likewise.
11386         * i386/uwin.h (LIB_SPEC): Likewise.
11387         (STARTFILE_SPEC): Likewise.
11388
11389         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
11390         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
11391
11392 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
11393
11394         * combine.c (combine_simplify_rtx): Fix order of checks for
11395         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
11396
11397 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
11398
11399         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
11400         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
11401
11402 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
11403
11404         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
11405         defined.
11406         * regclass.c (inv_reg_alloc_order): New array.
11407         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
11408
11409         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
11410         counted_for_groups, counted_for_nongroups.  Add fields rld and
11411         n_reloads.
11412         * reload.c (push_secondary_reload): Don't set nongroup field of
11413         new reloads.
11414         (push_reload): Likewise.
11415         (find_reloads): Delete code to compute nongroup fields.
11416         * reload1.c (reload_insn_firstobj): New static variable.
11417         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
11418         users changed.
11419         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
11420         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
11421         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
11422         functions.
11423         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
11424         functions.
11425         (struct hard_reg_n_uses): Deleted.
11426         (potential_reload_regs): Deleted.
11427         (init_reload): Initialize spilled_pseudos and pseudos_counted.
11428         (reload): Don't try to allocate reload registers if we already know
11429         we have to make another pass.  Call select_reload_regs.  Free memory
11430         starting with reload_firstobj when starting another pass.
11431         Don't allocate spilled_pseudos.
11432         (calculate_needs_all_insns): Call copy_reloads for an insn that
11433         needs reloads; don't call calculate_needs.
11434         (spill_cost): New static array.
11435         (used_spill_regs_local): New static variable.
11436         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
11437         to compute potential_reload_regs.
11438         (find_reload_regs): Completely rewritten to use find_reg.
11439         (allocate_reload_reg): Don't test counted_for_groups or
11440         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
11441         all cllers changed.
11442         (choose_reload_regs): Add fallback code that uses the existing
11443         register allocation from find_reload_regs.
11444
11445 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
11446
11447         * flow.c (create_edge_list): Cast xmalloc return value.
11448
11449 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
11450
11451         * doprnt.c: Remove incorrect comment closure.
11452
11453         * cse.c: Fix a few minor whitespace goofs.
11454
11455 1999-12-13  Don Bowman  <don@pixstream.com>
11456
11457         * mips/vxworks.h: Fix problem with comment termination.
11458         (EXTRA_SECTIONS): Add in_sbss.
11459         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
11460
11461 1999-12-12  David S. Miller  <davem@redhat.com>
11462
11463         * cse.c (struct cse_reg_info): Add hash_next member,
11464         reorder rest of struct for better packing on 64-bit
11465         hosts.
11466         (cse_reg_info_tree): Kill.
11467         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
11468         REGHASH_FN): New custom pow2 hash mechanism.
11469         (NBUCKETS): Kill.
11470         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
11471         use a pow2 hash table.
11472         (get_cse_reg_info): Rework to use new REGHASH.
11473         (new_basic_block): Likewise, use HASH_SIZE, and inline
11474         free_element call.
11475         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
11476         and inline free_element call.
11477         (lookup_as_function, insert, flush_hash_table, invalidate,
11478         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
11479         invalidate_for_call, use_related_value, find_comparison_args,
11480         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
11481         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
11482         get_element): Kill.
11483
11484 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
11485
11486         * cse.c (cse_basic_block): Free qty_table consistently.
11487
11488 1999-12-12  David S. Miller  <davem@redhat.com>
11489             Jakub Jelinek    <jakub@redhat.com>
11490
11491         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
11492         SUBREGs by hand, gen the appropriate hard reg directly.
11493         (movtf reg/mem split): Likewise and alter_subreg on destination
11494         if necessary.
11495         (movtf mem/reg split): Similarly.
11496         (movdf_cc_sp64): Rename from hidden pattern.
11497         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
11498         (movtf_cc_sp64, following split): New pattern and splitter.
11499         (movdf_cc_reg_sp64): Rename from hidden pattern.
11500         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
11501         TARGET_HARD_QUAD.
11502         (movtf_cc_reg_sp64, following split): New pattern and splitter.
11503
11504 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
11505
11506         * loop.c (load_mems): Don't hoist written floating point mem
11507         if -ffloat-store.
11508
11509 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
11510
11511         * except.h (struct eh_queue): Add `next' pointer.
11512         (struct eh_status): Make x_ehqueue a pointer.
11513         (push_ehqueue):  Declare.
11514         (pop_ehqueue): Likewise.
11515         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
11516         pointer.
11517         (expand_fixup_region_end): Likewise.
11518         (expand_leftover_cleanups): Likewise.
11519         (push_ehqueue): Define.
11520         (pop_ehqueue): Likewise.
11521         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
11522         than doing it inline.
11523         (expand_start_all_catch):  Adjust now that ehqueue is a
11524         pointer.
11525         (mark_eh_queue): Mark all level of the queue.
11526         (mark_eh_status):  Adjust now that ehqueue is a
11527         pointer.
11528         (init_eh_for_function): Allocate ehqueue.
11529         (free_eh_status): Free it.
11530         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
11531         expansion for a fixup.
11532
11533 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11534
11535         * gthr-single.h (__gthread_active_p): Add prototype arguments.
11536
11537         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
11538         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
11539         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
11540         function_ptr, getpagesize, __enable_execute_stack,
11541         __enable_execute_stack, __clear_insn_cache,
11542         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
11543         _cleanup, _exit, __default_terminate, __terminate_func,
11544         __terminate, __empty, __throw, new_eh_context,
11545         eh_context_initialize, eh_context_static, eh_context_specific,
11546         get_eh_context, __get_eh_context, __get_eh_info,
11547         init_reg_size_table, eh_threads_initialize,
11548         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
11549         __unwinding_cleanup, throw_helper, __throw, __rethrow,
11550         __pure_virtual): Add prototype arguments.
11551         (__bb_exit_func): Cast a sizeof to long when comparing against one.
11552         Cast a signed value to unsigned long when comparing against one.
11553         (new_eh_context): Wrap in _GTHREADS macro.
11554         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
11555         declaration.
11556         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
11557         (throw_helper): Initialize variables `handler_p' and `pc_p'.
11558
11559 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11560
11561         * combine.c (record_promoted_value): Remove unused variable
11562         `links2'.
11563
11564         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
11565
11566         * global.c (record_conflicts): Likewise for `j'.
11567
11568         * genoutput.c (output_insn_data): Don't unnecessarily cast away
11569         const-ness.
11570
11571 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11572
11573         * i386-protos.h (output_387_binary_op, output_fix_trunc,
11574         output_fp_compare): Constify a char*.
11575
11576         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
11577         static prototypes.
11578         (override_options, ix86_comp_type_attributes, print_operand,
11579         output_387_binary_op, output_fix_trunc, output_fp_compare):
11580         Constify a char*.
11581         (ix86_sched_reorder): Mark parameter `clock_var' with
11582         ATTRIBUTE_UNUSED.
11583
11584         * i386.h (DEBUG_PRINT_REG): Constify a char*.
11585
11586 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11587
11588         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
11589         operand, for use in the Java front-end.
11590
11591 1999-12-10  Ben Collins  <bcollins@debian.org>
11592
11593         * configure.in: Fix typo for "-64" in 64bit as check.
11594         * configure: Rebuilt.
11595
11596 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
11597
11598         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
11599         appropriate.
11600
11601 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11602
11603         * c-parse.in (string): With -Wtraditional, warn if ANSI string
11604         concatenation is utilized.
11605
11606         * invoke.texi (-Wtraditional): Document it.
11607
11608 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11609
11610         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
11611         Cast a ptrdiff_t to long and pass it to printf with %ld.
11612
11613 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
11614
11615         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
11616         68881, we have no 68881 registers at all.
11617         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
11618         value in a 68881 register if it is available.
11619
11620 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
11621
11622         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
11623         for long long multiply-accumulate.
11624
11625 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
11626
11627         * loop.c (insert_loop_mem): Undo last change.
11628
11629 1999-12-10  David S. Miller  <davem@redhat.com>
11630
11631         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
11632         New functions.
11633         * config/sparc/sparc-protos.h: Add them.
11634         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
11635         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
11636         constraints which use those helpers.
11637         (EXTRA_CONSTRAINT): Use this new macro.
11638         * md.texi: Update sparc target constraints documentation.
11639         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
11640         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
11641         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
11642         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
11643         (movsf high/lo_sum split): Rework for new patterns.
11644         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
11645
11646 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
11647
11648         * c-common.c (c_common_nodes_and_builtins):
11649         Create __builtin_ptrdiff_t and __builtin_size_t.
11650
11651 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
11652
11653         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
11654
11655 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11656
11657         * regclass.c (globalize_reg): Re-instate test that allows
11658         fixed registers to be declared as a variable even after functions
11659         are defined.
11660
11661 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11662
11663         * i386.md (cpu attribute): Add "athlon".
11664         (athlon_decode): New attribute.
11665         (Athlon scheduling units definitions): New.
11666         (fcmp and shld patterns): Set athlon_decode to "vector".
11667         * i386.c (athlon_cost): New.
11668         (m_ATHLON): New.
11669         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
11670         x86_use_sahf): Set for Athlon.
11671         (x86_use_fiop): Unset for Athlon.
11672         (override_options): Define Athlon alignments and "athlon" name.
11673         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
11674         * i386.h (TARGET_ATHLON): New.
11675         (enum processor_type): Add PROCESSOR_ATHLON.
11676         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
11677         for CPU_DEFAULT==5
11678         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
11679
11680 1999-12-09  Andreas Jaeger  <aj@suse.de>
11681
11682         * loop.c (record_biv): Declare parameter as int.
11683
11684         * config/i386/i386-protos.h: Declare long_memory_operand.
11685
11686 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
11687
11688         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
11689         EXPR_WITH_FILE_LOCATION.
11690
11691 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
11692
11693         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
11694         in expander.
11695
11696         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
11697
11698         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
11699         updating code.
11700
11701 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
11702
11703         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
11704         default on linux64 again.
11705         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
11706         models for multilibing.
11707         * genmultilib: Accept | as alternative separator within a set in
11708         MULTILIB_OPTIONS.
11709
11710         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
11711
11712         * calls.c (precompute_arguments): Make sure initial_value contains
11713         value pseudo which CSE expects.
11714         * cse.c (struct set): New entry orig_src.
11715         (cse_insn): Set it early on entry, use it for libcall EQUIV note
11716         replacement.
11717
11718 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
11719
11720         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
11721
11722 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
11723
11724         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
11725
11726 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
11727
11728         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
11729         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
11730
11731         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
11732         if TARGET_ARCH32.
11733
11734         * longlong.h: Merge in changes from glibc.
11735         Also don't clobber %g2 register in 32bit SPARC assembly, so that
11736         -mno-app-regs libgcc can be compiled.
11737         * libgcc2.c: Add defines so that the updated longlong.h
11738         can be used in libgcc2.a. Also, make sure on most architectures
11739         (at least on all which have optimized code in longlong.h defined
11740         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
11741
11742 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11743
11744         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
11745         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
11746         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
11747         is GNU ld.
11748         * configure: Rebuilt.
11749
11750 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
11751
11752         * alpha.c (secondary_reload_class): For !BWX, sub-simode
11753         outputs require a register.
11754
11755 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
11756
11757         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
11758         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
11759         functions like dptoul will be resolved.
11760         (libgcc2.a): Make sure that the object files from DPBIT are named
11761         differently (prefix `_dp') from those that would be coming from
11762         FPBIT.
11763
11764 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
11765
11766         * configure.in: When target is sparc* and tm_file contains 64,
11767         test for 64bit support in assembler.  If not supported, remove
11768         sparc/t-sol2-64 from target-dependent Makefile fragments.
11769         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
11770         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
11771         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
11772         * acconfig.h (AS_SPARC64_FLAG): Added.
11773         * configure, config.in: Rebuilt.
11774         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
11775         support.  Use AS_SPARC64_FLAG.
11776
11777 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
11778
11779         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
11780         suitable for holding OFmode values so that gcc works with complex
11781         quad long doubles.
11782         (hard_64bit_mode_classes): Likewise.
11783
11784         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
11785         so that it is actually matched.
11786         (sethi_di_medlow): Likewise.
11787
11788         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
11789         as legitimate constant if -mvis.
11790         * config/sparc/sparc.md (movtf): Likewise.
11791         (clear_sf): Use const_double_operand.
11792         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
11793
11794         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
11795         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
11796         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
11797         routines, _Qp_* cannot be handled like that now.
11798         (INIT_TARGET_OPTABS): Likewise.
11799         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
11800         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
11801         sparc_emit_float_lib_cmp if ARCH64 and soft float.
11802         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
11803         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
11804         divtf3, sqrttf3): New expanders.
11805         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
11806         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
11807         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
11808         non-_hq patterns.
11809
11810         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
11811         * configure: Rebuilt.
11812         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
11813         -mcpu is given and we're doing 64bit compiles.
11814
11815 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
11816
11817         * loop.h (struct induction): Add multi_insn_incr.
11818         * loop.c (basic_induction_var): New multi_insn_incr argument.
11819         Set it if we search back through previous insns for the biv.
11820         (record_biv): New multi_insn_incr argument; fill in struct induction.
11821         (strength_reduce): Discard an iv with multiple bivs, any of
11822         which require multiple insns to increment.
11823
11824 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11825
11826         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
11827         documentation.
11828
11829 1999-12-06  David S. Miller  <davem@redhat.com>
11830
11831         * combine.c (check_promoted_subreg): Do not conditionalize this upon
11832         PROMOTE_FUNCTION_RETURN.
11833
11834 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
11835
11836         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
11837         and handle REG_UNUSED note on insn.
11838
11839         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
11840         inner_mask instead of mask.
11841
11842 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
11843
11844         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
11845         zero if there was an error.
11846
11847 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
11848
11849         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
11850         output string.
11851
11852         * longlong.h: Fix clobbers in SPARC asm statements.
11853
11854         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
11855         valid sethi operations when TARGET_ARCH64.
11856
11857         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
11858         always use move_by_pieces to avoid infinite recursion.
11859         (restore_fixed_argument_area): Likewise.
11860
11861         * combine.c (check_promoted_subreg, record_promoted_value): New
11862         functions.
11863         (combine_instructions): Use them to retain nonzero and sign bit
11864         information after SUBREGs are eliminated by optimizations in
11865         this pass if PROMOTE_FUNCTION_RETURN.
11866
11867         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
11868         .register declaration. Don't use variables with __ prefixes.
11869
11870 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11871
11872         * fold-const.c (optimize_bit_field_compare): Only use one mode
11873         for both RHS and LHS in non-constant case.
11874
11875 1999-12-06  Nathan Sidwell  <nathan@acm.org>
11876
11877         * frame.c (start_fde_sort): Only allocate erratic array, if
11878         linear one was allocated. Return allocated flag.
11879         (fde_insert): Only insert, if there's a valid array.
11880         (fde_end_sort): Split, sort and merge if linear and erratic
11881         arrays exist, else just sort linear one.
11882         (search_fdes): New function. Linear search through original fde
11883         structure.
11884         (frame_init): Permit multiple initializations. Cope with
11885         memory shortages.
11886         (find_fde): Fallback on linear search, if failed to sort array.
11887         (__deregister_frame_info): Only free sorted array, if we
11888         allocated it.
11889
11890 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
11891
11892         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
11893
11894 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
11895
11896         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
11897
11898 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
11899
11900         * tree.h (special_function_p): Declare.
11901         * calls.c (special_function_p): Make it global.  Don't take `name'
11902         as a parameter.  Fix typo in 1999-11-28 change.
11903         (expand_cal): Adjust.
11904
11905 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
11906
11907         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
11908         * tree.h (EXPR_WFL_FILENAME): Define in terms of
11909         EXPR_WFL_FILENAME_NODE.
11910         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
11911         the TREE_CHAIN.
11912         * print-tree.c (print_note): Print TREE_PRIVATE and
11913         TREE_PROTECTED.
11914
11915         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
11916         the original die cannot be found.
11917
11918         * varray.h (varray_head_tag): Add elements_used.
11919         (VARRAY_PUSH): New macro.
11920         (VARRAY_POP): Likewise.
11921         (VARRAY_TOP): Likewise.
11922         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
11923         types.
11924         * varray.c (varray_init): Initialize elements_used.
11925         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
11926         (INTEGRATE_H): New variable.
11927         (integrate.o): Depend on INTEGRATE_H.
11928         (unroll.o): Likewise.
11929
11930         * function.h (insert_block_after_note): Declare.
11931         * function.c (insert_block_after_note): Split out from ...
11932         (retrofit_block): ... here.
11933
11934         * stmt.c (expand_fixup): Fix typo in comment.
11935
11936 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
11937
11938         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
11939         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
11940         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
11941         (regmove_optimize, fixup_match_1): Likewise.
11942
11943 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11944
11945         * flow.c (flow_loops_dump): Add missing argument when calling
11946         flow_loop_nested_p.
11947
11948 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
11949             Greg McGary  <gkm@gnu.org>
11950
11951         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
11952         (init_attributes): Add A_NO_LIMIT_STACK.
11953         (decl_attributes): Handle A_NO_LIMIT_STACK.
11954         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
11955         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
11956         Handle stack bounds checking.
11957         * flags.h (flag_stack_check): Use the word 'probe' rather than
11958         'check', because the flag doesn't actually cause any checking to
11959         be done.
11960         * function.c (expand_function_start): Set
11961         current_function_limit_stack.
11962         * function.h (struct function): Add limit_stack.
11963         (current_function_limit_stack): Define.
11964         * invoke.texi (Code Gen Options): Document new options.
11965         * rtl.h: Declare stack_limit_rtx.
11966         * toplev.c (stack_limit_rtx): New variable.
11967         (decode_f_option): Handle new options -fstack-limit-register=REG,
11968         -fstack-limit-symbol=IDENT, -fno-stack-limit.
11969         (main): Add stack_limit_rtx as GC root.
11970         * tree.h (DECL_NO_LIMIT_STACK): New macro.
11971         (struct tree_decl): New member no_limit_stack.
11972
11973         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
11974         stack_limit_rtx.
11975         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
11976         (conditional_trap+1): Get new mnemonic correct.
11977         (conditional_trap+2): New pattern for DImode traps.
11978
11979         * config/m68k/m68k.c (output_function_prologue): Handle
11980         stack_limit_rtx.
11981         * config/m68k/m68k.md (trap): New insn.
11982         (conditional_trap): New insn.
11983         * md.texi (Standard Names): Document `trap' and
11984         `conditional_trap'.
11985         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
11986         so a cc0 setter doesn't get emitted at some random place in the
11987         function.
11988
11989         * config/i960/i960.md (trap): New insn.
11990         (conditional_trap): New expander.
11991         (conditional_trap+1, conditional_trap+2): New insns for signed
11992         and unsigned cases.
11993         * config/i960/i960.c (i960_function_prologue): Use
11994         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
11995
11996 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
11997                           Geoffrey Keating  <geoffk@cygnus.com>
11998
11999         * flags.h (warn_padded, warn_packed): Add global var decls.
12000         * toplev.c (warn_padded, warn_packed): Add global var defns.
12001         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
12002         * stor-layout.c (layout_record): Add local variable `type'
12003         to hold often-used TREE_TYPE (field).  Add local variable
12004         `unpacked_align' to hold alignment that would be in force
12005         if no `packed' attribute were present.  Warn if `packed' attribute
12006         is unnecessary, or even harmful.  Warn when gcc inserts padding
12007         to satisfy alignment requirements of members.  Use NULL_TREE
12008         when checking whether var_size is set.
12009         * invoke.texi: Document new flags.
12010
12011 1999-12-03  Nathan Sidwell  <nathan@acm.org>
12012
12013         * frame.c (fde_split): Reimplement to avoid variable sized array.
12014
12015 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12016
12017         * combine.c (try_combine): Before fixing up LOG_LINKS for the
12018         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
12019
12020 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
12021
12022         * invoke.texi: Document the mips option -mno-crt0
12023
12024 1999-12-02  Mike Karr  <mkarr@mathworks.com>
12025
12026         * cccp.c (argdata): Added free_ptr member.
12027         (macroexpand): Initialize free_ptr of each argument. When an
12028         argument's buffers are freed, if the argument's free_ptr corresponds
12029         to a buffer on the input stack, then return the free_ptr to that stack
12030         frame, otherwise, free it.
12031         (macarg): If an argument begins and ends on the same input stack level,
12032         then transfer the free_ptr of that buffer to the argument in case
12033         the stack is popped during the processing of a subsequent argument.
12034
12035 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
12036
12037         * loop.c (note_reg_stored): New function.
12038         (struct note_reg_stored_arg): New structure.
12039         (try_copy_prop): Change to be more conservative; only replace within
12040         one extended basic block and stop replacing if a store to the
12041         replacement reg is seen.
12042
12043 1999-12-02  Nick Clifton  <nickc@cygnus.com>
12044
12045         * config/fp-bit.c: Initialise all fields of the NAN
12046         constants.
12047
12048         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
12049         to HANDLE_PRAGMA.
12050
12051 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
12052
12053         * i386.md (extend?f?f2): Force the input into a register, not
12054         the output.
12055
12056 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
12057
12058         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
12059         regclass' sake.
12060         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
12061         alternative because setting up 64bit constant is usually costly,
12062         especially when reload is in progress or completed.
12063         (movdf_const_intreg_sp64): Likewise.
12064         (movdf_const_intreg split): Fix building up constants when
12065         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
12066
12067 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
12068
12069         * combine.c (if_then_else_cond): Use const_true_rtx instead of
12070         const1_rtx for return values in EQ/NE comparison against (const_int 0)
12071         case.
12072
12073         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
12074         (asm_file_start): Emit .am33 into assembly file when compiling for
12075         the AM33.
12076         (print_operand_address): Handle POST_INC addresses.
12077         (can_use_return_insn, initial_offset): Check AM33 registers too.
12078         (expand_prologue): Check & save AM33 registers too.
12079         (expand_epilogue): Similarly.
12080         (secondary_reload_class): Handle AM33 specific secondary reloads.
12081         (output_tst): Emit efficient code for the AM33 too.
12082         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
12083         (TARGET_SWITCHES): Add -mam33 switch.
12084         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
12085         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
12086         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
12087         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
12088         (enum reg_class, REG_CLASS_NAMES): Likewise.
12089         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
12090         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
12091         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
12092         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
12093         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
12094         (HAVE_POST_INCREMENT): Define.
12095         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
12096         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
12097         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
12098         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
12099         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
12100         (zero_extend to SI from QI/HI): Likewise.
12101         (sign_extend to SI from QI/HI): Likewise.
12102         (mulsidi3, umulsidi3): New patterns for the AM33.
12103         (tstsi with zero extension from QI/HI): Add AM33 variants.
12104         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
12105         (return_internal_regs, store_movm): Handle new AM33 registers.
12106         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
12107         (LIBGCC, INSTALL_LIBGCC): Likewise.
12108         * invoke.texi: Document new flags.
12109
12110 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12111
12112         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
12113         (addsi3_carry): Likewise.
12114         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
12115         (sbbsi3_carry): Likewise.
12116         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
12117         (mulhi3): Likewise.
12118         (test?i_1): Ensure that only one operand is memory.
12119         (conditional move patterns): likewise.
12120         (shift and rotate patterns): Rewrite to expander, add
12121         "binary_operator_ok" to the condition.
12122
12123         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
12124         * i386.h (procesor_costs): Add movzbl_load field.
12125         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
12126         non-Q registers, accept DImode registers anywhere.
12127         (Q_CLASS_P): New.
12128         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
12129         * i386.c (*_cost): Set value for movxbl_load field.
12130
12131         * (addsi): New add to lea splitter.
12132         (ashlsi): Likewise.
12133         (lea to add/shift peep2): New.
12134
12135 1999-12-01  Mark Salter <msalter@cygnus.com>
12136
12137         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
12138         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
12139         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
12140
12141 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12142
12143         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
12144         * i386.md (movsi_xor): New.
12145         (movsi_or): New.
12146         (movsi_1, movhi_1, movqi_1): Remove.
12147         (movsi_2): Rename to movsi_1.
12148         (movhi_2): Rename to movhi_1.
12149         (movqi_2): Rename to movqi_1.
12150         (movdi_1): Remove; remove splitter.
12151         (movdi_2): Rename to movdi_1.
12152         (divmodsi4 splitter): Do not emit clobbers for move patterns.
12153         (long move peep2): Do not create QI or HI mode mov0s
12154         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
12155
12156         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
12157         rewrite splitters.
12158
12159         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
12160         (abs?f2_if): Likewise.
12161
12162 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
12163
12164         * ggc.h (ggc_test_and_set_mark): New macro.
12165         (ggc_mark_rtx): Use ggc_test_and_set_mark.
12166         (ggc_mark_tree): Likewise.
12167         (ggc_mark_rtvec): Likewise.
12168         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
12169
12170 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
12171
12172         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
12173         containing types.
12174         (decl_scope_table): Just an array of trees now.
12175         (push_decl_scope): Simplify.
12176         (dwarf2out_init): Adjust.
12177         (local_scope_p): New fn.
12178         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
12179         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
12180         (gen_typedef_die): Likewise.
12181         (gen_lexical_block_die): Don't call push/pop_decl_scope.
12182         (gen_inlined_subroutine_die): Likewise.
12183         (gen_abstract_function): Set current_function_decl temporarily.
12184         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
12185         Handle block extern declarations.  Don't call push/pop_decl_scope.
12186         (gen_decl_die): Fix logic for block externs.
12187
12188 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12189
12190         * calls.c (special_function_p): Remove `realloc' and add `strdup'
12191         to the list of functions which have attribute malloc by default.
12192
12193 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12194
12195         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
12196         integer constant does not match the traditional type, limit the
12197         warnings to cases where the base of the type is ten.
12198
12199         * invoke.texi (-Wtraditional): Document it.
12200
12201 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12202
12203         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
12204         * rs6000.md: Only access a CONST_INT with INTVAL
12205
12206 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
12207
12208         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
12209         (compute_nearerout): Likewise.
12210         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
12211         size_t to unsigned long for formatting.
12212
12213 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
12214
12215         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
12216         Allow the user to override call-used/fixed state of %g2-5
12217         registers from the command line (with the exception of %g4 for
12218         embedded model).
12219         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
12220         there is a higher chance of having a leaf function.
12221         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
12222         for ARCH64 which has %ccr register.
12223         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
12224         patterns.
12225         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
12226         insn accept into delay slot any insn which does not use %[ol]
12227         registers.  Accept some LO_SUM and shift left by 1 for the normal
12228         restore case.
12229         (output_function_epilogue): Likewise.
12230         (epilogue_renumber): Added argument which inhibits any renumbering
12231         and just tests if the rtx does not use any %[ol] registers.
12232         (output_return): Reflect above change.
12233
12234 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
12235
12236         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
12237         aggregate passing for sizes <= 16 bytes.
12238
12239 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
12240
12241         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
12242         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
12243         * reload.c (find_dummy_reload): Likewise.
12244         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
12245         * reload1.c (reload_as_needed): Likewise.
12246         * stupid.c (stupid_find_reg): Likewise.
12247         * tm.texi (Obsolete Register Macros): Delete section.
12248         * gmicro.h: Remove all traces of the two macros.
12249         * i386.h: Likewise.
12250         * m88k.h: Likewise.
12251         * mips.h: Likewise.
12252
12253 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
12254
12255         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
12256         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
12257         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
12258         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
12259         units for the sparclite86x chip.
12260         (flush): Revert October 14th change; add SImode specifically.
12261         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
12262         * invoke.texi: Document it.
12263
12264 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
12265
12266         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
12267         psimode_truncation_operand.
12268
12269         * config/mn10200/mn10200.c (psimode_truncation_operand): New
12270         function.  Return true if the operand is either a MEM valid
12271         for a PSImode address or not a MEM at all.
12272
12273         * config/mn10200/mn10200.md (truncsipsi2): Use
12274         psimode_truncation_operand.
12275
12276 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12277
12278         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
12279         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
12280         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
12281         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
12282         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
12283         (flow_loop_level_compute, low_loops_level_compute): Likewise.
12284         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
12285         * basic-block.h: Protect from multiple inclusion.
12286         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
12287         (struct loops, struct loop): Define structures.
12288         * sbitmap.c (sbitmap_a_subset_b_p): New function.
12289         * sbitmap.h: Protect from multiple inclusion.
12290         (sbitmap_a_subset_b_p): Add prototype.
12291         * Makefile.in (LOOP_H): New macro.
12292         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
12293
12294 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
12295
12296         * cppinit.c (CAT): The argument list of this macro may not contain
12297         spaces !
12298
12299 1999-11-29  David S. Miller  <davem@redhat.com>
12300
12301         Move quantity tables and register equivalence chains into
12302         per-qty and per-register structure arrays respectively.
12303         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
12304         qty_const_insn, qty_comparison_code, qty_comparison_const,
12305         qty_comparison_qty): Delete, replace with...
12306         (qty_table): this structure table.
12307         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
12308         (reg_eqv_table): this structure table.
12309         (make_new_qty): Add argument MODE.  Caller updated.
12310         Update to use qty_table and reg_eqv_table.
12311         (make_regs_eqv, delete_reg_equiv, insert_regs,
12312         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
12313         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
12314         cse_process_notes, cse_main, cse_basic_block): Likewise.
12315
12316 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12317
12318         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
12319         operation if C is negative.
12320         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
12321         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
12322         law for some divisions if constant is negative and change other
12323         divisions to the opposite rounding.
12324
12325         * expr.c (store_constructor_field): If bit position is not multiple
12326         of alignment of TARGET's mode, use BLKmode.
12327
12328         * expr.c (expand_expr_unaligned): Add more code from full case
12329         that is needed when OP0 is in a register.
12330
12331 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12332
12333         * dwarfout.c (field_byte_offset): Size can be zero if there was
12334         an error.
12335
12336 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
12337
12338         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
12339         (associate_trees): Delete unused var TEM.
12340         (extract_muldiv): Delete unused var CANCEL_P.
12341
12342         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
12343         (target_isinf, target_isnan, target_negative): Add return types to
12344         function definitions.
12345
12346 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
12347
12348         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
12349         * fixinc/hackshell.tpl: ditto
12350         * fixinc/fixtests.c(double_slash_test): more C++ header testing
12351         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
12352
12353 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
12354
12355         * reload.c (push_reload): When looking for a register to put into
12356         reg_rtx, make sure all hard regs in a multi-reg register are in the
12357         right class and nonfixed.
12358
12359         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
12360         pending_read_insns, pending_write_insns, pending_read_mems,
12361         pending_write_mems, pending_list_length, last_pending_memory_flush,
12362         last_function_call, sched_before_next_call): Move static variables
12363         into a structure.
12364         (bb_ prefixed versions): Replace with single array bb_deps.
12365         (struct deps): New structure.
12366         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
12367         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
12368         argument of type "struct deps *"; use that instead of global
12369         variables.  All callers changed.
12370         (init_rgn_data_dependencies): Delete function.
12371         (init_rtx_vector): Delete function.
12372         (init_deps): New function.
12373
12374         (free_pending_lists): Simplify, we always use the bb_deps array even
12375         if only one basic block.
12376         (compute_block_backward_dependences): Likewise.
12377         (schedule_region): Likewise.
12378
12379         (propagate_deps): New function, broken out of
12380         compute_block_backward_dependences.
12381         (compute_block_backward_dependences): Use it.
12382
12383         * alpha.md: Delete useless patterns that tried to work around
12384         register elimination problems.
12385
12386         * unroll.c (loop_iterations): Don't abort if iteration variable
12387         was made by loop.
12388
12389         From Joern Rennecke:
12390         * reload1.c (reloads_conflict): Reverse test comparing operand
12391         numbers when testing for conflict between output/outaddr reloads.
12392
12393 1999-11-29  David S. Miller  <davem@redhat.com>
12394
12395         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
12396         arg.
12397         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
12398
12399 1999-11-28  Robert Lipe  <robertl@cygnus.com>
12400
12401         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
12402         table from .fini into .dtor.
12403
12404 1999-11-28  Anthony Green  <green@cygnus.com>
12405
12406         * tree.h (struct tree_decl): Add malloc_flag.
12407         (DECL_IS_MALLOC): Define.
12408         * c-common.c (attrs): Add A_MALLOC attribute.
12409         (init_attributes): Add this attribute to the table.
12410         (decl_attributes): Handle malloc attribute.
12411         * calls.c (special_function_p): Check for the malloc attribute.
12412         * extend.texi (Function Attributes): Document malloc attribute.
12413
12414 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
12415
12416         * pa.md (reload shift-add patterns): Remove.
12417
12418 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12419
12420         * reorg.c (dbr_schedule) Print more statistics. Corrected
12421         problem when printing info when 3 delay slots are filled.
12422
12423 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
12424
12425         * combine.c (setup_incoming_promotions): Pass an outgoing
12426         regno to FUNCTION_ARG_REGNO_P which it expects.
12427
12428 1999-11-28  Andreas Jaeger  <aj@suse.de>
12429
12430         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
12431
12432 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
12433
12434         * cccp.c (do_include): Avoid initialization of automatic variable.
12435
12436         * integrate.c (mark_stores): Function definition made void, to match
12437         previous declaration.
12438         * regclass.c (dump_regclass): Ditto.
12439         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
12440
12441 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12442
12443         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
12444         known to be multiple of divisor.
12445
12446         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
12447
12448         * combine.c (try_combine): Add code to try to merge a set of a
12449         two-word pseudo to a constant with a setting of one of those words
12450         to a constant.
12451
12452         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
12453         (split_tree): Completely rework to make more general.
12454         (make_range, fold): Call negate_expr.
12455         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
12456         (fold, associate): Call new split_tree and associate_trees.
12457         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
12458
12459 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
12460
12461         * loop.c (try_copy_prop): Avoid GNU C extension.
12462
12463 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
12464
12465         * except.c (init_eh_for_function): Still zero eh_return_context,
12466         eh_return_stack_adjust, and eh_return_handler.
12467
12468         * except.h (eh_status): Adjust documentation for x_protect_list.
12469         (begin_protect_partials): New function.
12470         * except.c (enqueue_eh_entry): Fix formatting.
12471         (get_first_handler): Add consistency check.
12472         (add_partial_entry): Adjust usage of protect_list.
12473         (emit_cleanup_handler): Save and restore ehqueue.
12474         (expand_start_all_catch): Add comment.
12475         (begin_protect_partials): New function.
12476         (end_protect_partials): Adjust usage of protect_list.
12477         (init_eh_for_function): Use xcalloc.
12478
12479 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12480
12481         * c-common.c (check_format_info): Don't call a variadic function
12482         with a non-literal format string.
12483
12484         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
12485
12486         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
12487         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
12488         Likewise.
12489
12490         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
12491         Likewise.
12492
12493         * collect2.c (collect_wait): Likewise.
12494
12495         * dbxout.c (dbxout_type): Likewise.
12496
12497         * gcc.c (do_spec_1): Likewise.
12498
12499         * genemit.c (gen_insn, gen_expand): Likewise.
12500
12501         * genrecog.c (write_switch, write_subroutine): Likewise.
12502
12503         * mips-tfile.c (catch_signal, botch): Likewise.
12504
12505         * print-rtl.c (print_rtx): Likewise.
12506
12507         * toplev.c (default_print_error_function, report_error_function,
12508         _fatal_insn): Likewise.
12509
12510 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
12511
12512         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
12513
12514 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12515
12516         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
12517         operations when needed.
12518         * i386.md (fop_?f_comm): New.
12519         (fop_?f_1): Do not accept commutative operands.
12520
12521 1999-11-25  Andreas Jaeger  <aj@suse.de>
12522
12523         * config/mips/mips.md (casesi_internal): Add missing brace.
12524
12525 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
12526
12527         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
12528         (splice_child_die): Handle moving a child DIE from the declaration
12529         DIE of a class to its specification.
12530         (gen_struct_or_union_type_die): Use 'complete' consistently.
12531         (gen_decl_die): Generate the virtual context DIE first.
12532         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
12533
12534 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
12535
12536         * config/mips/mips.md (call_value_multiple_interanal1): New.
12537
12538 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
12539
12540         * dwarf2out.c (free_AT, free_die): New fns.
12541         (remove_children): Call them.
12542         (output_line_info): Disable removal of duplicate notes.
12543
12544         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
12545         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
12546         means pretend the type isn't defined.
12547         Don't defer emitting types.
12548         (gen_type_die_for_member): New fn.
12549         (gen_decl_die): Call it.
12550         (splice_child_die): New fn.
12551         (gen_member_die): Call it rather than generate duplicate dies.
12552
12553         Defer emitting information for the abstract instance of an inline
12554         until we either inline it or emit an out-of-line copy.
12555         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
12556         from output_inline_function if DECL_ABSTRACT is also set.
12557         (block_ultimate_origin): Likewise.
12558         (gen_abstract_function): New fn.
12559         (gen_decl_die, gen_inlined_subroutine_die): Call it.
12560         (gen_subprogram_die):  An abstract instance is not a declaration
12561         just because it doesn't match current_function_decl.  Don't abort
12562         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
12563         has an abstract origin.
12564         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
12565         abstract instance here.
12566
12567 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
12568
12569         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
12570         where we need to reload fpul from a system register.
12571
12572 1999-11-24  Andreas Jaeger  <aj@suse.de>
12573
12574         * config/mips/linux.h (CPP_PREDEFINES): Added.
12575         (LINK_SPEC): Remove -Y since this is only needed on sparc.
12576
12577 1999-11-24  Andreas Jaeger  <aj@suse.de>
12578
12579         * config/mips/linux.h (TARGET_VERSION): Added.
12580         (HANDLE_SYSV_PRAGMA): Added.
12581         (DEFAULT_VTABLE_THUNKS): Added.
12582
12583 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12584
12585         * local-alloc.c (qty): New structure and static variable.
12586         (qty_phys_reg): Remove, all references changed to qty.
12587         (qty_n_refs): Likewise.
12588         (qty_min_class): Likewise.
12589         (qty_birth): Likewise.
12590         (qty_death): Likewise.
12591         (qty_size): Likewise.
12592         (qty_mode): Likewise.
12593         (qty_n_calls_crossed): Likewise.
12594         (qty_alternate_class): Likewise.
12595         (qty_changes_size): Likewise.
12596         (qty_first_reg): Likewise.
12597         (alloc_qty): Rename variable QTY to QTYNO.
12598         (finf_free_reg): Likewise.
12599         (local_alloc): Allocate qty, do not allocate the removed variables.
12600
12601 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
12602
12603         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
12604         when -membedded-pic is passed.
12605
12606         * config/mips/mips.md (casesi): Handle 64-bit case too.
12607         (casesi_internal_di): New insn.
12608
12609         * config/mips/mips.c (embedded_pic_offset): Always make the
12610         embedded-pic subtractions relative to the name of the current
12611         function by use of the magic string "..CURRENT_FUNCTION".
12612         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
12613
12614 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
12615
12616         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
12617         of (const_int 0), when what we really care about is
12618         whether it's a zero constant anyway.
12619         (div_trap_mips16): Likewise.
12620
12621 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
12622
12623         * loop.c (loop_optimize): Always find_loop_tree_blocks and
12624         unroll_block_trees when generating debuggable code.
12625
12626         * tree.h (unsave_expr_1): New function.
12627         (lang_unsave): New variable.
12628         (get_callee_fndecl): New function.
12629         * tree.c (unsave_expr_now_r): New function.
12630         (lang_unsave): Define.
12631         (unsave_expr_1): Likewise.
12632         (unsave_expr_now_r): Split out from unsave_expr_now.
12633         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
12634         call unsave_expr_now_r.
12635         (get_callee_fndecl): Define.
12636
12637         * Makefile.in (gencheck): Don't depend on lang_tree_files.
12638         (gencheck.o): Do depend on lang_tree_files.
12639
12640         * integrate.h (copy_decl_for_inlining): New declaration.
12641         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
12642         (copy_decl_for_inlining): New function.
12643         (integrate_parm_decls): Use it.
12644         (integrate_decl_tree): Likewise.
12645
12646 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
12647
12648         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
12649         the second two from the first.
12650         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
12651         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
12652         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
12653         ISA_HAS_FP4.
12654         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
12655         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
12656         ISA_HAS_FP4.
12657
12658 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
12659
12660         * pa.md (call_internal_symref, call_value_internal_symref): No mode
12661         needed on the address operand.
12662         * pa.c (call_operand_address): Check for the correct mode.
12663
12664 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
12665
12666         * loop.c: Include "basic-block.h".
12667         (try_copy_prop, replace_loop_reg): New functions.
12668         (load_mems): Detect registers that just hold copies of the hoisted
12669         mem, and call try_copy_prop to eliminate them.
12670         * Makefile.in (loop.o): Update dependencies.
12671
12672 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
12673
12674         * Makefile.in (gencheck.o): Depend on gencheck.h.
12675         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
12676         (insn-peep.o): Depend on except.h and function.h.
12677         (insn-attrtab.o): Depend on RECOG_H.
12678         (insn-output.o): Depend on toplev.h and flags.h.
12679         (gengenrtl.o): Depend on real.h.
12680         (gen-protos.o): Depend on cpplib.h and cpphash.h.
12681         Unify all dependencies to be on RECOG_H rather than recog.h.
12682
12683 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12684
12685         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
12686         * configure.in: Try building a bi-arch 32/64-bit compiler on
12687         sparc-*-solaris2.7 and higher.
12688         * configure: Rebuild.
12689
12690 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
12691
12692         * config/freebsd.h: New, FreeBSD architecture independent file.
12693         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
12694         independent pieces.
12695         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
12696         directly by i386/freebsd.h.
12697         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
12698         independent configuration file.
12699         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
12700         directly by i386/freebsd.h.
12701         * configure: Rebuilt.
12702
12703         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
12704         which is in the user's namespace.
12705         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
12706         `i386' which is not in our namespace.
12707
12708 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
12709
12710         * invoke.texi (ARM Options): Add in -mno-alignment-traps
12711
12712 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
12713
12714         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
12715         (add_dwarf_attr, add_child_die): Just push onto the front.
12716         (reverse_die_lists): New fn.
12717         (add_sibling_attributes): Use it.
12718         (push_decl_scope): Reorganize.
12719         (add_name_and_src_coords_attributes): Don't set file and line for
12720         an artificial decl.
12721         (gen_subprogram_die): An artificial function doesn't need to match
12722         file and line.
12723         (gen_compile_unit_die): Return the generated die.  Only add
12724         AT_comp_dir if the filename is relative.
12725         (remove_AT): Simplify loop.  Also free string values.
12726         (output_die): A DIE ref can't be null.
12727         (output_value_format, value_format): Take a dw_attr_ref.
12728         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
12729         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
12730         AT_addr, AT_lbl): New fns.
12731         (various): Use them.
12732         (various): Constify.
12733
12734 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12735
12736         * combine.c (combine_simplify_rtx): When handling a SUBREG,
12737         take SUBREG_WORD into account.
12738         (if_then_else_cond): Likewise.
12739
12740 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
12741
12742         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
12743         clause from BSD license, pursuant with
12744
12745           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
12746
12747 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
12748
12749         * loop.c (load_mems): Reformat slightly.
12750         * basic-block.h (regset_head): New typedef.
12751         (INIT_REG_SET): New macro.
12752
12753 1999-11-22  Bruce Korb  <autogen@linuxbox.com
12754
12755         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
12756         (mips-dec-bsd*): non-functional code
12757         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
12758
12759         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
12760         added three replacement fixes
12761         (no_double_slash): removed comments that are not (any longer) pertinent
12762         (bad_lval): this fix currently runs against many files.
12763         The comment seems to indicate that we should select for files
12764         containing 'pragma extern_prefix'.
12765
12766         * fixinc/fixinc.x86-linux-gnu: deleted
12767         * fixinc/inclhack.sh:  regen
12768         * fixinc/fixincl.x:  regen
12769         * fixinc/fixincl.sh:  regen
12770
12771 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
12772
12773         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
12774         its code is INSN and it has no notes.
12775
12776 1999-11-22  Andrew Haley  <aph@cygnus.com>
12777
12778         * varasm.c (function_defined): Remove.
12779         (make_function_rtl): Don't set function_defined.
12780         (make_decl_rtl): Remove global register warning.
12781         * regclass.c (no_global_reg_vars): New variable.
12782         (globalize_reg): Warn if function has already been defined.
12783         (regclass_init): Set no_global_reg_vars.
12784
12785 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12786
12787         * regclass.c (reg_pref): New structure and static variable
12788         (prefclass): Delete.
12789         (altclass): Delete.
12790         (all uses of prefclass and altclass): Use reg_pref instead.
12791
12792 1999-11-21  Nick Clifton  <nickc@cygnus.com>
12793
12794         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
12795         -malignment-traps.
12796         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
12797         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
12798         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
12799
12800 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
12801
12802         * varasm.c (output_constructor): Solve problem with long long
12803         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
12804
12805 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12806
12807         * global.c (allocno): New structure and static variable.
12808         (allocno_reg): Remove, all references replaced by allocno.
12809         (allocno_size): Likewise.
12810         (hard_reg_conflicts): Likewise.
12811         (hard_reg_preferences): Likewise.
12812         (hard_reg_copy_preferences): Likewise.
12813         (hard_reg_full_preferences): Likewise.
12814         (regs_someone_prefers): Likewise.
12815         (allocno_calls_crossed): Likewise.
12816         (allocno_n_refs): Likewise.
12817         (allocno_live_length): Likewise.
12818         (find_reg): Rename ALLOCNO to NUM.
12819
12820         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
12821         references updated.
12822         (may_move_out_cost): New variable.
12823         (init_reg_sets_1): Initialize may_move_out_cost.
12824         (record_reg_classes): Use may_move_out_cost.
12825
12826         * regclass.c (dump_regclass): New function.
12827         (regclass): New parameter DUMP, call DUMP_REGCLASS.
12828         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
12829         pass rtl_dump_file to regclass.
12830         * rtl.h (regclass): Update prototype.
12831
12832 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12833
12834         * i386.md (neg, not and abs patterns): Revmap to use
12835         ix86_expand_unary_operator and ix86_unary_operator_ok.
12836         (add?f and sub?f expanders): Force operand 1 to register.
12837         * i386.c (ix86_expand_unary_operator): Rewrite.
12838         (ix86_unary_operator_ok): Ensure that memory operands
12839         match real opcode.
12840         (ix86_binary_operator_ok): Do not allow operand 1 to
12841         come into memory and operand 0 not.
12842         (ix86_expand_binary_operator): Ensure that
12843         src1 is not non-matching memory.
12844
12845         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
12846         to support integer registers and memory.
12847         (abss?2_integer): Likewise.
12848
12849         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
12850         (REG_CLASS_NAMES): Likewise.
12851         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
12852         and GENERAL_REGS.
12853         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
12854         (movsf): Likewise; unify 4th and 5th alternative.
12855         (pushdf): Likewise.
12856         (movdf_1): Likewise; rename to movdf_integer.
12857         (pushxf): Likewise; rename to pushxf_integer; fix output template;
12858         remove redundant splitter.
12859         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
12860         (movdf_nointeger): New.
12861         (movxf_nointeger): New.
12862         (pushxf_nointeger): New.
12863
12864         * i386.md (extend?f?f): Split to expander and pattern, refuse two
12865         memory operands in patterns.
12866         (fop*): Refuse two memory operands.
12867
12868         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
12869         on !TARGET_USE_CLTD CPUs.
12870
12871 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
12872
12873         * extend.texi: Document C++ restricted pointers and references.
12874
12875 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
12876
12877         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
12878         (invalidate_skipped_set): Call it unconditionally.
12879         (cse_set_around_loop): Likewise.
12880
12881 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
12882
12883         * rtl.texi (mem): Add documentation for alias-set argument
12884         to RTX `mem'.
12885
12886 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12887
12888         * i386.h (struct_processor_costs): New fields int_load, int_store,
12889         fp_move, fp_load and fp_store
12890         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
12891         fp->int moves
12892         (MEMORY_MOVE_COST): New macro.
12893         * i386.c (386_cost): Define new fields.
12894         (i486_cost): Likewise.
12895         (pentium_cost): Likewise.
12896         (pentiumpro_cost): Likewise.
12897         (k6_cost): Likewise.
12898
12899 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
12900                           Geoffrey Keating  <geoffk@cygnus.com>
12901
12902         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
12903
12904         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
12905         MASK_ALIGN_INT.
12906
12907         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
12908         (TARGET_STRICT_ALIGNMENT): New macro.
12909         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
12910         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
12911         * invoke.texi (M680x0 Options): Document -mstrict-align.
12912
12913 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
12914                           Richard Henderson  <rth@cygnus.com>
12915
12916         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
12917         (ix86_split_long_move): Declare.
12918         * i386.c (split_xf, ix86_split_movdi): Remove.
12919         (ix86_split_to_parts, ix86_split_long_move): New.
12920         * i386.md (dimode move splitters): Use ix86_split_long_move.
12921         (dfmode move splitters): Likewise.
12922         (xfmode move splitters): Likewise.
12923         (movsf_1): Allow F->r.
12924         (movdf_1, movxf_1): Allow F->ro.
12925
12926 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
12927
12928         * except.h (struct eh_entry): Add goto_entry_p.
12929         (eh_region_from_symbol): Remove prototype.
12930         * except.c (find_func_region_from_symbol): New function.
12931         (emit_cleanup_handler): Likewise.
12932         (eh_region_from_symbol): Make it static.
12933         (add_new_handler): Verify the argument.
12934         (find_func_region): Update comment.
12935         (expand_eh_region_end): Expand handlers here, rater than waiting
12936         until expand_leftover_cleanups or start_all_catch.
12937         (expand_leftover_cleanups): Don't expand here.
12938         (expand_start_all_catch): Or here.
12939         (expand_rethrow): Check the return value from find_func_region.
12940         * function.c (expand_function_end): Emit the catch_clauses.
12941
12942 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
12943
12944         * integrate.c (expand_inline_function): Add necessary check for NULL.
12945
12946 1999-11-18  Nick Clifton  <nickc@cygnus.com>
12947
12948         * toplev.c (main): Correctly detect an unrecognised option.
12949
12950         * cppinit.c (cpp_handle_option): Do not claim to have consumed
12951         a -f option if it has not been recognised.
12952
12953 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
12954
12955         * basic-block.h (update_life_extent): Remove trailing comma on
12956         enumeration type list.
12957
12958 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12959
12960         * varasm.c (output_constructor) Solved problem with long long
12961         bitfields. Corrected calculating this_time and shift. Also
12962         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
12963
12964 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
12965
12966         * flow.c (split_edge): Take looping structure into account when
12967         determining where to put the new block note.
12968
12969 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
12970
12971         * Makefile.in (ggc-none.o): Provide host specific version if
12972         needed.
12973
12974 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
12975
12976         * cse.c (delete_trivially_dead_insns): Identify no-op insns
12977         containing subregs too.
12978
12979 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
12980
12981         * invoke.texi: Add documentation for -muninit-const-in-rodata.
12982         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
12983         (TARGET_UNINIT_CONST_IN_RODATA): Define.
12984         (text_section): Add switches -munint-const-in-rodata and
12985         -mno-uninit-const-in-rodata.
12986         (ASM_OUTPUT_COMMON): Remove.
12987         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
12988         const objects should be placed in read-only data. Otherwise declare
12989         them in common.
12990
12991 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
12992
12993         * jump.c (jump_optimize_1): Revert last change.
12994
12995 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
12996
12997         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
12998         test if optimizing for size.
12999
13000 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
13001
13002         * Makefile.in (toplev.o): Depend on except.h.
13003         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
13004
13005 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13006
13007         * i386.md (divmodsi4): Rewrite to expander.
13008         (*divmodsi4_nocltd): New.
13009         (*divmodsi4_cltd): New.
13010         (divmodsi4 splitter): Handle the case when input comes in edx.
13011         (udivmodhi4): Do not use constraints in exander.
13012         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
13013
13014 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
13015
13016         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
13017         for the common case.
13018
13019 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
13020
13021         * explow.c (hard_function_value): Add outgoing argument.
13022         * expr.h (hard_function_value): Declare it.
13023         * calls.c (expand_call, emit_library_call_value): Update callers.
13024         * function.c (aggregate_value_p): Ditto.
13025         (diddle_return_value): Must look at the outgoing registers
13026         on archs with register windows.
13027
13028 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
13029
13030         * alpha.c (alpha_build_va_list): Use make_lang_type and
13031         initialize TYPE_NAME for the va_list record.
13032
13033         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
13034
13035         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
13036         for printing.
13037         * ggc.h (struct ggc_statistics): Rearrange elements for better
13038         packing on 64-bit hosts.
13039         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
13040         (compute_nearerout): Likewise.
13041
13042 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
13043
13044         * config/rs6000/rs6000.c (first_reg_to_save): Save
13045         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
13046
13047 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
13048
13049         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
13050         notion of nesting to find the DIE for a type or function.
13051         DIEs can go in limbo even if we got a context_die.
13052         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
13053         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
13054         for local type.
13055         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
13056         (gen_type_die): Writing out the context doesn't cause member class
13057         template instantiations to be written out as well.
13058
13059 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
13060
13061         * rs6000.h (ASM_OUTPUT_DEF): New.
13062         Based on proposed addition from David Edelsohn.
13063
13064 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
13065             Bruce Korb  <autogen@linuxbox.com>
13066
13067         * fixinc/inclhack.def
13068         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
13069         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
13070                 in net/inet.h.
13071         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
13072         (svr4_endian): enabled with SVR5
13073         (svr4_mkdev): simplified syntax and enabled with SVR5
13074
13075 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
13076
13077         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
13078         * configure: Rebuilt.
13079         * config/t-freebsd-thread: New file.
13080
13081 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
13082
13083         * i386.c (ix86_decompose_address): Verify the base is a REG
13084         before trying to examine its register number.
13085
13086         * basic-block.h: Remove all #defines and prototypes related to
13087         integer lists.
13088         (free_bb_mem, compute_preds_succs): Remove prototype.
13089         * rtl.h (free_bb_mem): Remove prototype.
13090         * flow.c (alloc_int_list_node); Remove function.
13091         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
13092         (compute_preds_succs, free_bb_mem): Likewise.
13093         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
13094         * toplev.c (rest_of_compilation): Likewise.
13095         * haifa-sched.c (build_control_flow): Use flow generated edge
13096         list to build the haifa specific edge list.
13097         (find_rgns): Use new CFG data structures instead of pred/succ lists.
13098         (schedule_insns): Do not build pred/succ lists anymore.  Instead
13099         build the edge table.
13100
13101         * basic-block.h (dump_bb_data): Remove declaration.
13102         * flow.c (dump_bb_data): Remove function.
13103         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
13104         (sbitmap_union_of_predsucc): Likewise.
13105
13106         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
13107         argument.  All callers changed.
13108         (delete_null_pointer_checks_1): No longer need to compute the
13109         pred/succ lists.
13110
13111         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
13112         All callers changed.
13113         (pre_expr_reaches_here_p_work): Likewise.
13114         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
13115         * lcm.c (compute_laterin): Fix initialization of LATER.
13116         (compute_nearerout): Similarly for NEARER.
13117
13118 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13119
13120         * cse.c (set_nonvarying_address_components): Delete unused function.
13121         (refers_to_p): Likewise.
13122
13123 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
13124
13125         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
13126         needed.
13127
13128 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13129
13130         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
13131         definition in do while (0).
13132
13133 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
13134
13135         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
13136
13137 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
13138
13139         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
13140
13141 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
13142
13143         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
13144         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
13145         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
13146         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
13147
13148         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
13149         saved on the stack.  Output more accurate stack frame statistics
13150         into assembler file.
13151
13152 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
13153
13154         * genextract.c (record_insn_name): New function.
13155         (get_insn_name): No longer a stub.
13156         (main): Call record_insn_name for each insn.  After each label
13157         written, print the insn name in a comment.
13158
13159 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13160
13161         * output.h (const_section, init_section, fini_section): Add
13162         prototypes.
13163
13164         * alpha/elf.h (const_section): Delete declaration.
13165
13166         * svr4.h (const_section): Likewise.
13167
13168 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
13169
13170         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
13171         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
13172         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
13173         expressions.
13174         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
13175         variable-sized array bounds.
13176
13177 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
13178
13179         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
13180         ASM_OUTPUT_LABEL.
13181
13182 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13183
13184         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
13185         addresses the same way GO_IF_LEGITIMATE_INDEX does.
13186
13187 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13188
13189         * cse.c (hash_arg_in_struct): Delete.
13190         (struct table_elt): Delete elt in_struct.
13191         (struct set): Delete elt src_in_struct.
13192         (merge_equiv_classes): Don't set either hash_arg_in_struct or
13193         the corresponding in_struct elts.
13194         (canon_hash): Likewise.
13195         (safe_hash): Likewise.
13196         (find_best_addr): Likewise.
13197         (record_jump_cond): Likewise.
13198         (cse_insn): Likewise.
13199
13200 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
13201
13202         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
13203
13204         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
13205         unsigned types.
13206
13207 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
13208
13209         * function.c (diddle_return_value): Put back check that the DECL_RTL
13210         for the function is a register.
13211
13212         * function.c (diddle_return_value): Use hard_function_value to
13213         get an rtx suitable for use in the USE/CLOBBER insn.
13214
13215         * global.c (global_conflicts): Update comments.
13216         (record_conflicts): No need to record conflicts between pseudos here.
13217
13218 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
13219
13220         * fixinc/fixincl.c: Added verbose levels for status messages
13221
13222 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13223
13224         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
13225         operand as argument to expand_and or expand_binop.
13226
13227 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
13228
13229         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
13230         gcc_add_string_root.
13231
13232 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
13233
13234         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
13235
13236 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
13237
13238         * flow.c (compute_flow_dominators): Initially put all blocks on
13239         the worklist.
13240         * lcm.c (compute_antinout_edge, compute_available): Similarly.
13241         * gcse.c (compute_cprop_avinout): Remove.
13242         (compute_cprop_data): Use compute_available.
13243         (delete_null_pointer_checks_1): Use compute_available.
13244
13245         * basic-block.h (compute_available): Returns a void now.
13246         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
13247         to return a value anymore.
13248         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
13249         worklists.  Fix boundary cases. Compute maximal solutions.
13250         (compute_laterin, compute_nearerout): Similarly.
13251
13252         * dwarf2out.c (add_AT_location_description): Allow
13253         (mem (plus (pseudo) (...)) too.
13254
13255 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
13256
13257         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
13258
13259 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
13260                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13261
13262         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
13263
13264         * gansidecl.h: Likewise.
13265
13266         * rtl.c: Likewise.
13267
13268         * rtl.h: Likewise.
13269
13270         * toplev.h: Likewise.
13271
13272         * tree.c: Likewise.
13273
13274         * tree.h: Likewise.
13275
13276         * varray.c: Likewise.
13277
13278         * varray.h: Likewise.
13279
13280 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
13281
13282         * gcov.c (struct arcdata): Add hits and total, remove prob.
13283         (output_branch_counts): New.
13284         (process_args): Set output_branch_counts if -c.
13285         (calculate_branch_probs): Store hits and total instead of
13286         percentage.
13287         (output_data): Emit counts if output_branch_counts is true.
13288         * gcov.texi (Invoking Gcov): Document -c switch..
13289
13290 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
13291
13292         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
13293         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
13294
13295 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
13296
13297         * invoke.texi (C Dialect Options): Add missing builtins from
13298         c-common.c to list.
13299         * extend.texi (Other Builtins): Copy to this list.
13300
13301 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13302
13303         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
13304         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
13305         redundant bitmap.h.
13306
13307 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
13308
13309         * flow.c (compute_flow_dominators): No longer treat basic block 0
13310         or (n_basic_blocks - 1) specially.  Clear the AUX field before
13311         starting computation of doms/pdoms.  Fix initial state for pdoms.
13312
13313 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13314
13315         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
13316         match rtl.o's: added ggc.h and toplev.h
13317         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
13318         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
13319         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
13320
13321 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
13322
13323         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
13324         from HAVE_DOS_BASED_FILESYSTEM.
13325         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
13326         HAVE_DOS_BASED_FILESYSTEM.
13327         (main): Likewise.
13328         (split_directories): Only special-case DOS file names if
13329         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
13330         instead of explicit tests.  Conditionalize on !VMS.
13331         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
13332         tests.  Conditionalize on !VMS.
13333         (process_command): Only use make_relative_prefix if !VMS.
13334         (free_split_directories): Conditionalize on !VMS.
13335         (DIR_UP): Conditionalize on !VMS.
13336
13337 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
13338
13339         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
13340
13341 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
13342
13343         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
13344         case.
13345
13346 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
13347
13348         * invoke.texi (Environment Variables): Document relative path
13349         lookup.
13350         * gcc.c (DIR_UP): If not defined, define as "..".
13351         (standard_bindir_prefix): New static, holds target location to
13352         install binaries.
13353         (split_directories): New function to split a filename into
13354         component directories.
13355         (free_split_directories): New function, release memory allocated
13356         by split_directories.
13357         (make_relative_prefix): New function, make a relative pathname if
13358         the compiler is not in the expected location.
13359         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
13360         can figure out an appropriate prefix from argv[0].
13361         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
13362         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
13363         STANDARD_BINDIR_PREFIX.
13364
13365 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13366
13367         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
13368         in c4x.c.
13369         * config/c4x/c4x.h: Moved prototypes to c4x.h.
13370         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
13371         c4x_secondary_memory_needed) Delete.
13372         (fp_zero_operand): Add mode argument.
13373
13374 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
13375
13376         * reload1.c (reload_reg_free_for_value_p): Don't use a register
13377         that is in reload_reg_used.
13378
13379 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
13380
13381         * config/arm/arm-protos.h: New file: Prototypes for functions
13382         defined in arm.c and pe.c.
13383         * config/arm/arm.h: Fix compile time warnings.
13384         * config/arm/arm.c: Fix compile time warnings.
13385         * config/arm/pe.h: Fix compile time warnings.
13386         * config/arm/aout.h: Fix compile time warnings.
13387
13388 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
13389
13390         * config/m32r/m32r-protos.h: New file: Prototypes for functions
13391         defined in m32r.c
13392
13393         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
13394         Add support for subtargets.
13395         Add prototypes for new predicates.
13396         Add scheduling macros.
13397
13398         * config/m32r/m32r.c: Fix compile time warnings.
13399         (int8_operand): New predicate function.
13400         (reg_or_cmp_int16_operand): New predicate function.
13401         (extend_operand): New predicate function.
13402         (m32r_adjust_code): New scheduling function.
13403         (m32r_adjust_priorty): New scheduling function.
13404         (m32r_sched_init): New scheduling function.
13405         (m32r_sched_reorder): New scheduling function.
13406         (m32r_sched_variable_issue): New scheduling function.
13407         (direct_return): New codegen function.
13408         (m32r_not_same_reg): New rtl testsing function.
13409
13410         * config/m32r/m32r.md: Fix compile time warnings.
13411         Add support for pre decrement and post increment memory
13412         references.
13413         Add S<cc> patterns.
13414         Add fabs patterns.
13415
13416 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13417
13418         * global.c (EXECUTE_IF_CONFLICT): Don't define.
13419         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
13420         (find_reg): Likewise.
13421
13422 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
13423
13424         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
13425         to avoid assembler errors.
13426
13427 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
13428
13429         * config/v850/v850-protos.h: New file: Prototypes for functions
13430         defined in v850.c
13431         * config/v850/v850.h: Move prototypes to v850-protos.h
13432         * config/v850/v850.c: Move prototypes to v850-protos.h
13433         * config/v850/v850.md: Fix compile time warnings.
13434
13435         * config/fr30/fr30-protos.h: New file: Prototypes for functions
13436         defined in fr30.c
13437         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
13438         * config/fr30/fr30.c: Fix compile time warnings.
13439         * config/fr30/fr30.md: Fix compile time warnings.
13440
13441 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
13442
13443         * tree.h (get_containing_scope): Declare it.
13444         * tree.c (get_containing_scope): New fucntion.
13445         (decl_function_context): Use it.
13446         * toplev.c (rest_of_compilation): Use get_containing_scope.
13447
13448 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13449
13450         * Makefile.in (rtl.o): Depend on toplev.h.
13451
13452 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
13453
13454         * cse.c (delete_trivially_dead_insns): Replace alloca with
13455         xmalloc/xcalloc.
13456         * except.c (update_rethrow_references): Likewise.
13457         (init_eh_nesting_info): Likewise.
13458         * function.c (identify_blocks): Likewise.
13459         * gcse.c (dump_hash_table): Likewise.
13460         * graph.c (print_rtl_graph_with_bb): Likewise.
13461         * loop.c (combine_movables): Likewise.
13462         (move_movables): Likewise.
13463         (count_loop_regs_set): Likewise.
13464         (strength_reduce): Likewise.
13465         * profile.c (compute_branch_probabilities): New function, split
13466         out from ...
13467         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
13468         * regclass.c (regclass): Likewise.
13469         * regmove.c (regmove_optimize): Likewise.
13470         * toplev.c (compile_file): Likewise.
13471         (main): Don't mess with the stack rlimit.
13472
13473 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
13474
13475         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
13476         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
13477
13478 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
13479
13480         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
13481
13482 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
13483
13484         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
13485         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
13486         macro expansion.
13487
13488 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
13489
13490         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
13491
13492 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
13493
13494         * gcse.c (post_dominators): Kill.
13495         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
13496         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
13497         pass in a pdom array since we do not need pdoms.
13498         * haifa-sched.c (schedule_insns): Similarly.
13499         * flow.c (compute_dominators): Remove dead function.
13500         (compute_flow_dominators): Do not compute doms or pdoms if the
13501         caller does not request them.  Split up loop to build doms and
13502         pdoms.  Use a worklist to compute doms and pdoms.
13503         * basic-block.h (compute_dominators): Remove prototype.
13504
13505 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
13506
13507         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
13508         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
13509         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
13510         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
13511         (cant_move, fed_by_spec_load, is_load_insn): Remove.
13512         (schedule_region): Remove unused variable.
13513         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
13514
13515 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
13516
13517         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
13518         (update_equiv_regs): Likewise.
13519         (block_alloc): Likewise.
13520         * reg-stack.c (reg_to_stack): Likewise.
13521         (convert_regs_2): Likewise.
13522         * reload1.c (reload_as_needed): Likewise.
13523
13524 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
13525
13526         * Makefile.in (dbxout.o): Depend on ggc.h.
13527         (dwarf2out.o): Likewise.
13528         (xcoffout.o): Likewise.
13529         * dbxout.c: Include ggc.h.
13530         (dbxout_init): Register lastfile as a root.
13531         * dwarf2out.c: Include ggc.h.
13532         (dwarf2out_line): Register lastfile as a root.
13533         * xcoffout.c: Include ggc.h.
13534         (xcoffout_source_line): Register xcoff_lastfile as a root.
13535
13536 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
13537
13538         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
13539
13540 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
13541
13542         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
13543         defined.
13544         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
13545
13546 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13547
13548         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
13549         (EXECUTE_IF_CONFLICT): Likewise.
13550         (ALLOCNO_LIVE_P): Avoid signed division.
13551         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
13552         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
13553         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
13554
13555 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
13556
13557         * haifa-sched.c (schedule_block): Don't crash if there's no
13558         next insn for an interblock movement.
13559         (add_branch_dependences): Don't allow clobber insns to move either.
13560
13561 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
13562
13563         * i386.c (split_xf): New.
13564         * i386-protos.h: Declare it.
13565         * i386.md (movxf_1): Add general regs alternatives.
13566         (movxf_1+1): New splitter for same.
13567
13568 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
13569
13570         * function.c (purge_addressof_1): Add missing return values.
13571
13572 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
13573
13574         * function.c (is_addressof): New function.  Returns true if
13575         the given piece of RTL is an ADDRESSOF.
13576         (purge_addressof_1): Make boolean.  Return false if the
13577         ADDRESSOFs could not be purged.
13578         (purge_addressof): If ADDRESSOFs could not be purged from the
13579         notes attached to an insn, remove the offending note(s),
13580         unless they are attached to a libcall.
13581
13582 1999-11-05  Andreas Jaeger  <aj@suse.de>
13583
13584         * genoutput.c (null_operand =): Initialize all fields.
13585
13586         * errors.h: Add extern to prototypes.
13587
13588 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
13589
13590         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
13591         * configure: Rebuilt.
13592
13593 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13594
13595         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
13596         (mirror_conflicts): New function.
13597         (global_alloc): Call it.
13598         (expand_preferences): Remove redundant CONFLICTP test.
13599         (find_reg, dump_conflicts): Likewise.
13600         (prune_preferences): Process conflicts one word at a time.
13601
13602 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
13603
13604         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
13605         instead of an explicit loop.
13606
13607 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
13608
13609         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
13610         if REG_RETVAL check succeeds, then put classp in src_elt.
13611
13612 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
13613
13614         * function.c (pad_to_arg_alignment): Only update argument_pad
13615         if the argument's alignment is greater than STACK_BOUNDARY.
13616
13617 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
13618
13619         * bitmap.h (BITMAP_XFREE): New.
13620         * flow.c (life_analysis): Use it.
13621         (life_analysis_1): Free blocks.
13622
13623         * combine.c (undo_commit): New.
13624         (try_combine): Use it.  Don't zap undobuf.undos.
13625         (combine_instructions): Don't zap undobuf.undos; free the
13626         undobuf.frees list.
13627
13628         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
13629
13630         * stmt.c (cost_table_): New.
13631         (estimate_case_costs): Use it instead of xmalloc.
13632
13633         * toplev.c (compile_file): Reuse dumpname memory instead
13634         of strdup'ing it.
13635
13636 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
13637
13638         * reg-stack.c (convert_regs_1): Initialize target_stack->top
13639         after verifying an EH edge.
13640
13641         * haifa-sched.c (init_rgn_data_dependences): Correctly
13642         size bb_pending_lists_length when zeroing.
13643
13644 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
13645
13646         * function.c (diddle_return_value): New.
13647         (expand_function_end): Use it.
13648         * stmt.c (expand_null_return): Likewise.
13649         (expand_value_return): Likewise.
13650
13651         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
13652
13653         * reload1.c (reload): Don't remove return value clobbers.
13654
13655 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
13656
13657         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
13658
13659 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
13660
13661         * cse.c (cse_main): Use xmalloc, not alloca.
13662         (cse_basic_block): Likewise.
13663         * local-alloc.c (local_alloc): Likewise.
13664
13665 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
13666                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13667
13668         * rtl.c: Include toplev.h.
13669         (fatal): Remove declaration.
13670
13671 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
13672
13673         * haifa-sched.c (schedule_block): Fix thinko.
13674
13675 1999-11-03  James McKelvey <mckelvey@fafnir.com>
13676
13677         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
13678         S_IR* defined values
13679
13680 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
13681
13682         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
13683         call `malloc' instead.
13684
13685 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
13686
13687         * flags.h (flag_renumber_insns): Declare.
13688         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
13689         renumbering table.
13690         * rtl.h (renumber_insns): Change prototype.
13691         * toplev.c (flag_renumber_insns): Define.
13692         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
13693
13694 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
13695
13696         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
13697         and fpsqrtd.  Use them and create fdiv function unit to more
13698         accurately represent fpu sqrt pipeline semantics on UltraSparc.
13699         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
13700
13701 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
13702
13703         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
13704         3 on UltraSparc.
13705         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
13706         insn into ready list, do not use just a raw swap.
13707
13708 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
13709
13710         * rtl.h (renumber_insns): New function.
13711         (remove_unnecessary_notes): Likewise.
13712         * emit-rtl.c (renumber_insns): Define.
13713         (remove_unncessary_notes): Likewise.
13714         * toplev.c (rest_of_compilation): Remove dead code.
13715         Use renumber_insns and remove_unncessary_notes.
13716
13717         * gcse.c (struct null_pointer_info): New type.
13718         (get_bitmap_width): New function.
13719         (current_block): Remove.
13720         (nonnull_local): Likewise.
13721         (nonnull_killed): Likewise.
13722         (invalidate_nonnull_info): Take a null_pointer_info as input.
13723         (delete_null_pointer_checks_1): New function.
13724         (delete_null_pointer_checks): Use it.
13725
13726         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
13727         (split_edges): Likewise.
13728         (schedule_block): Likewise.
13729         (compute_block_backward_dependencies): Likewise.
13730         (schedule_region): Likewise.
13731         (schedule_insns): Likewise.
13732
13733 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
13734
13735         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
13736         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
13737         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
13738         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
13739         * jump.c (delete_unreferenced_labels): Don't delete if
13740         LABEL_ALTERNATE_NAME is set.
13741         * print-rtl.c (print_rtx): Dump alternate name.
13742         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
13743         * rtl.h (LABEL_ALTERNATE_NAME): Define.
13744         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
13745         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
13746
13747 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13748
13749         * fix-header.c (recognized_extern, recognized_function): Constify
13750         a char*.
13751
13752         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
13753         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
13754         (compute_available): Remove unused variable `last'.
13755         (compute_nearerout): Remove unused variable `temp_bitmap'.
13756         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
13757         Remove unused variable `x'.
13758
13759         * scan.h (recognized_function, recognized_extern): Constify a
13760         char*.
13761
13762         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
13763
13764 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13765
13766         * varasm.c (decode_rtx_const): Use XSTR to access the string
13767         of a SYMBOL_REF.
13768
13769 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
13770
13771         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
13772
13773 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13774
13775         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
13776
13777 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
13778
13779         * pa.c (ireg_operand): New function.
13780         * pa.h (PREDICATE_CODES): Handle ireg_operand.
13781         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
13782         Fix out of date comment.
13783
13784         * pa.md (negdi2): Turn into expander + anonymous pattern.
13785
13786         * reload.c (find_reloads): Fix typos in recent change.
13787
13788         * dwarf2out.c: Do not include ctype.h.
13789
13790 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13791
13792         * regclass.c (record_reg_classes): Always use may_move_cost when
13793         seeing how operand fits with various register classes.
13794
13795 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
13796
13797         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
13798         * toplev.c: Revert Nov 1 13:22 change.
13799
13800 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
13801
13802         * config/pa/pa.md (height reduction patterns): Add checks for
13803         overlapping operands to avoid semantic-destroying splits for
13804         height reduction patterns.
13805
13806 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13807
13808         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
13809         have been an hyphen, fixed.
13810         * configure: Rebuilt.
13811
13812 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
13813
13814         * config/arm/tpe.h: Add prototypes for exported functions.
13815         * config/arm/pe.c: Fix compile time warnings.
13816         * config/arm/semi.h: Fix compile time warnings.
13817         * config/arm/arm.c: Fix compile time warnings.
13818         * config/arm/arm.h: Fix compile time warnings.
13819         * config/arm/arm.md: Fix compile time warnings.
13820         * config/arm/thumb.c: Fix compile time warnings.
13821         * config/arm/thumb.h: Fix compile time warnings.
13822         * config/arm/thumb.md: Fix compile time warnings.
13823
13824 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
13825
13826         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
13827         detection code
13828
13829         * unroll.c (unroll_loop): Remove LOOP notes when loop is
13830         completely unrolled.
13831
13832 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13833
13834         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
13835
13836 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
13837
13838         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
13839         * rtl.h (rtx_equal_p): Move prototype.
13840         * rtl.c (rtx_equal_function_value_matters): Move from
13841         rtlanal.c
13842         (rtx_equal_p): Likewise.
13843         * rtlanal.c (rtx_equal_function_value_matters): Delete.
13844         (rtx_equal_p): Likewise.
13845
13846 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
13847
13848         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
13849         ! HAS_INIT_SECTION.
13850
13851 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
13852
13853         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
13854
13855         * pa.h (ADDR_VEC_ALIGN): Define.
13856
13857         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
13858         notes when presented with "if (foo) break; end_of_loop" and
13859         the break sequence gets moved out of the loop.
13860
13861         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
13862         Remove explicit zero initializations of entries within MAP.
13863
13864 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
13865
13866         * reg-stack.c (convert_regs_1): Handle EH edges specially.
13867
13868 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
13869
13870         * bitmap.h (BITMAP_XMALLOC): New macro.
13871         * flow.c (CLEAN_ALLOCA): Remove.
13872         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
13873         (life_analysis): Likewise.
13874         (update_life_info): Don't use CLEAN_ALLOCA.
13875         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
13876         (calculate_global_regs_live): Likewise.
13877         (print_rtl_with_bb): Likewise.
13878         (verify_flow_info): Likewise.
13879         * global.c (global_alloc): Likewise.
13880         (global_conflicts): Likewise.
13881         * integrate.c (save_for_inline_nocopy): Likewise.
13882         (expand_inline_function): Likewise.
13883         * jump.c (jump_optimize_1): Likewise.
13884         (duplicate_loop_exit_test): Likewise.
13885         (thread_jumps): Likewise.
13886         * loop.c (loop_optimize): Likewise.
13887         (combine_givs): Likewise.
13888         (recombine_givs): Likewise.
13889         * reorg.c (dbr_schedule): Likewise.
13890         * unroll.c (unroll_loop): Likewise.
13891
13892         * combine.c (combine_instructions): Use xmalloc instead of alloca.
13893
13894 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
13895
13896         * toplev.c (rest_of_compilation): Don't optimize the CFG
13897         when rebuilding, just before dbr.
13898
13899 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13900
13901         * output.h (assemble_end_function, assemble_destructor,
13902         assemble_constructor, assemble_gc_entry, assemble_global,
13903         assemble_label, output_constant_pool) Constify a char*.
13904
13905         * varasm.c (assemble_destructor, assemble_constructor,
13906         assemble_gc_entry, assemble_end_function, assemble_global,
13907         assemble_label, output_constant_pool): Likewise.
13908
13909 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
13910
13911         * config/arm/thumb.c (thumb_expand_prologue): Add comments
13912         explaining what is goin on in this function.
13913
13914 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13915
13916         * regclass.c (record_reg_classes): In matching case, recompute
13917         costs since the direction of movement is different.
13918
13919 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
13920
13921         * resource.c (mark_target_live_regs): For unconditional branches,
13922         the resources found at the branch target should be added to the
13923         resources found so far, not intersected.
13924
13925 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
13926
13927         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
13928         old cpp's.
13929         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
13930         (sys/mman.h): Include this file only if #HAVE_MMAP.
13931         (run_compiles): Initialize `esac_fmt' with one old KR string, not
13932         with automatically concatenated ANSI strings.
13933
13934 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
13935
13936         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
13937         (DIV_ROUND_UP): Robustify.
13938         (ggc_recalculate_in_use_p): New function.
13939         (release_pages): Don't inline it.
13940         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
13941         outer contexts.
13942         (ggc_pop_context): Use ggc_recalculate_in_use_p.
13943         (clear_marks): Always save in_use_p.
13944         (sweep_pages): Use ggc_recalculate_in_use_p.
13945         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
13946         Release pages before counting statistics.
13947
13948 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
13949
13950         * toplev.c (rest_of_compilation): Fix thinko in this change:
13951
13952         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
13953
13954         (rest_of_compilation): If inside an inlined external function,
13955         pretend we are just being declared.
13956
13957 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
13958
13959         * flow.c (calculate_global_regs_live): Fix thinko.
13960
13961         * integrate.c (expand_inline_function): Fix bugs in previous
13962         change from Oct 28, 1999.
13963
13964 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
13965
13966         * stmt.c (expand_value_return): Fix typo in this change:
13967
13968         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13969         (expand_value_return): Correctly convert VAL when promoting function
13970         return; support RETURN_REG being a PARALLEL.
13971
13972 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
13973
13974         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
13975
13976 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13977
13978         * hard-reg-set.h (reg_names): Constify a char*.
13979
13980         * regclass.c  (reg_names): Likewise.
13981
13982         * regs.h (reg_names): Likewise
13983
13984         * a29k/a29k.c (reg_names): Delete declaration.
13985
13986         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
13987
13988         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
13989         arc_output_function_epilogue): Likewise.
13990
13991         * elxsi/elxsi.c (reg_names): Likewise.
13992
13993         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
13994
13995         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
13996         Likewise.
13997
13998         * m88k/m88k.c (output_function_profiler): Likewise.
13999
14000         * sparc/sparc.c (sparc_flat_output_function_prologue,
14001         sparc_flat_output_function_epilogue): Likewise.
14002
14003 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
14004
14005         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
14006         warning from -Wuninitialized and put it under -W.
14007         * function.c (uninitialized_vars_warning): Warn only when the
14008         corresponding flag is set.
14009
14010 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
14011
14012         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
14013         is nonzero and the single set does not have an elt, then assign
14014         it an elt.
14015
14016         * simplify-rtx.c: New file.
14017         * Makefile.in (OBJS): Add simplify-rtx.o
14018         (simplify-rtx.o): Add dependencies.
14019         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
14020         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
14021         (cse_gen_binary, simplify_unary_operation): Delete.
14022         (simplify_binary_operation, simplify_plus_minus): Likewise.
14023         (check_fold_consts, simplify_relation_operation): Likewise.
14024         (simplify_ternary_operation): Likewise.
14025         (delete_trivially_dead_insns): Simplify the contents of the
14026         REG_EQUAL note before trying to substitute it into the source
14027         of the reg-reg copy at the end of a libcall sequence.
14028
14029         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
14030         references/callers changed.
14031
14032         * mn10200.c (mn10200_va_arg): Force the return value into a
14033         register.
14034
14035         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
14036
14037         * cccp.c (macroexpand): Avoid out of range accesses for omitted
14038         arguments.
14039
14040 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
14041
14042         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
14043
14044 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
14045
14046         * fold-const.c (fold): Fix thinko when optimizing comparisons
14047         against -0.0.
14048
14049 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
14050
14051         * gcc.texi (Passes): Update front-end files to their current
14052         location.
14053
14054 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
14055
14056         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
14057         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
14058         (PREDICATE_CODES): Add addition_operation.
14059         * alpha-protos.h (addition_operation): Declare.
14060         (secondary_reload_class): Likewise.
14061         * alpha.c (addition_operation): New.
14062         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
14063         * alpha.md (adddi3): Turn into expander.
14064         (*lda, *adddi_2): New.
14065         (movsf, movdf patterns): Don't preference integer regs.
14066         (movsi, movdi patterns): Don't preference fp regs.
14067
14068 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
14069
14070         * genrecog.c (write_switch): Check for duplicate CODE cases.
14071
14072 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
14073
14074         * ggc-common.c: Update pre-function commentary.
14075         * ggc-page.c: Likewise.
14076         (poison): Remove.
14077         (poison_pages): Use memset directly.
14078         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
14079         (ggc_collect): Poison before sweeping.
14080         * ggc-simple.c: Update pre-function commentary.
14081         (ggc_alloc_obj): Poison non-zeroed memory.
14082
14083 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
14084
14085         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
14086         match format string, even on 64-bit hosts.
14087         * gcc-page.c (ggc_page_print_statistics): Likewise.
14088
14089 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
14090
14091         * config/i386/i386.c (ix86_cpu): Revert last patch.
14092         * config/i386/i386.h (ix86_cpu): Ditto.
14093
14094 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
14095
14096         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
14097         TYPE_SIZE, convert type of result to sizetype.
14098
14099 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
14100
14101         * flow.c (count_or_remove_death_notes): Equate NULL with the
14102         universal set.
14103
14104         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
14105         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
14106         dbr_schedule.
14107
14108         * i386.c (pic_label_no): Delete.
14109         (ix86_attr_length_default): Don't use single_set to peek
14110         inside a parallel.
14111
14112         * recog.c (peephole2_optimize): Allow recog_next_insn to index
14113         the first insn after bb->end.
14114         * i386.md (push mem peeps): Scratch is live after evaluation
14115         of the memory.
14116         (cmp mem peep): Similarly.
14117
14118 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
14119
14120         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
14121         * function.c (pad_to_arg_alignment): Add missing braces.
14122
14123 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14124
14125         * alpha/alpha-protos.h (literal_section): Add prototype.
14126         (alpha_need_linkage, alpha_start_function,alpha_end_function):
14127         Constify a char*.
14128
14129         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
14130         prototype.
14131         (alpha_start_function, alpha_end_function, float_strings,
14132         alpha_need_linkage): Constify a char*
14133
14134         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
14135
14136         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
14137
14138         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
14139
14140         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
14141
14142 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14143
14144         * flow.c (debug_flow_info): Add prototype.
14145
14146         * gcc.c (main): Likewise.
14147
14148         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
14149         Likewise.
14150
14151         * reload1.c (failed_reload, set_reload_reg): Likewise.
14152
14153         * mips-tfile.c (main): Likewise.
14154         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
14155         with ATTRIBUTE_NORETURN.
14156
14157 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
14158
14159         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
14160         DECL is not a memory ref.
14161
14162 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
14163
14164         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
14165         * config/i386/i386.c (ix86_cpu): Add extern attribute.
14166
14167 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
14168
14169         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
14170         * config/mips/elf64.h: ditto.
14171
14172 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
14173
14174         * expr.c (emit_push_insn): New argument alignment_pad.
14175         Update all callers.  Adjust stack pointer based on alignment pad.
14176         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
14177         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
14178         (locate_and_pad_parm): New argument alignment_pad.  Update all
14179         callers.
14180         * expr.h (emit_push_insn): Update prototype.
14181         (locate_and_pad_parm): Update prototype.
14182         * calls.c (arg_data):  Add new field alignment_pad.
14183         (initialize_argument_information): Initialize alignment_pad.
14184
14185 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
14186
14187         * except.c (free_eh_nesting_info): Free the info itself.
14188         * function.c (free_after_compilation): Don't free NULL.
14189         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
14190         (pre_edge_insert): Free inserted.
14191         * stmt.c (free_stmt_status): Don't free NULL.
14192
14193 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
14194
14195         * gcov.c (DIR_SEPARATOR): Provide default.
14196         (output_data): Add test for MS-DOS format absolute filename.
14197         (fancy_abort): Correct program name.
14198         (open_files): Open all files in binary mode.
14199         * libgcc2.c (__bb_exit_func): Likewise.
14200
14201         * profile.c (init_branch_prob): Specify binary when opening files.
14202
14203         * flags.h (flag_unwind_tables): New decl.
14204         * toplev.c (flag_unwind_table): New definition.
14205         (f_options): Add -funwind-tables.
14206         (decode_g_option): Clarify warning when unknown -g option is given.
14207         (rest_of_compilation): If inside an inlined external function,
14208         pretend we are just being declared.
14209
14210         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
14211         (dwarf2out_frame_finish): Likewise.
14212
14213 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
14214
14215         * fold-const.c (merge_ranges): If not in0, but in1, handle
14216         upper bounds equal like subset case.
14217
14218 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
14219
14220         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
14221         passed in a register but moved to the stack.
14222
14223 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
14224
14225         * gcc.c (pass_exit_codes, greatest_status): New variables.
14226         (struct option_map): Add entry for "--pass-exit-codes".
14227         (execute): Update greatest_status if error.
14228         (display_help): Add documentation for -pass-exit-codes.
14229         (process_command): Handle -pass-exit-codes.
14230         (main): Look at pass_exit_codes and greatest_status on call to exit.
14231
14232 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14233
14234         * reload.c (find_reloads): Refine test for no input reload
14235         case to not includes reloads emitted after insn.
14236
14237         * function.c (find_temp_slots_from_address): Handle sum involving
14238         a register that points to a temp slot.
14239         (update_temp_slot_address): Make recursive call if both old and
14240         new are PLUS with a common operand.
14241         * calls.c (expand_call): Mark temp slot for result as having
14242         address taken.
14243
14244         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
14245
14246         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
14247         component as well as "BINUTILS".
14248
14249         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
14250         * integrate.c (copy_rtx_and_substitute): Likewise.
14251         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
14252         All callers changed.
14253         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
14254
14255         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
14256         gdb extensions, write size of type; also be more consistent
14257         in using references when this is a subtype.
14258
14259         * pa.md (extv, extzv, insv): Use define_expand to reject constant
14260         that is out of range.
14261
14262         * loop.c (unknown_constant_address_altered): New variable.
14263         (prescan_loop): Initialize it.
14264         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
14265         (invariant_p, case MEM): Remove handling for volatile and readonly;
14266         check new variable if readonly.
14267         (check_dbra_loop): Chdeck unknown_constant_address_altered.
14268
14269         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
14270         (addr_affects_sp_p): Removed from note_mem_written and only
14271         define #ifdef AUTO_INC_DEC.
14272
14273         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
14274
14275         * regclass.c (record_reg_classes): Properly handle register move
14276         directions.
14277
14278         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
14279         Don't think valid if both operands are invalid.
14280         (struct constant_descriptor): New field RTL.
14281         (mark_const_hash_entry): Mark it.
14282         (record_constant{,_rtx}): Initialize it.
14283         (output_constant_def): Allocate RTL in permanent obstack and
14284         save in table.
14285         ({record,compare}_constant_1): Modes must match for
14286         CONSTRUCTOR of ARRAY_TYPE.
14287
14288         * c-common.h (initializer_constant_valid_p): Delete decl from here.
14289         * output.h (initializer_constant_valid_p): Move decl to here.
14290         * c-common.c (initializer_constant_valid_p): Delete function from here.
14291         * varasm.c (initializer_constant_valid_p): Move function to here.
14292
14293         * tree.h (STRIP_SIGN_NOPS): New macro.
14294         * fold-const.c (optimize_minmax_comparison): New function.
14295         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
14296         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
14297         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
14298         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
14299         widening conversions.
14300         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
14301         to look at size of mode, not precision of type; also add missing cases.
14302         (optimize_bit_field_compare, decode_field_reference): Don't try to
14303         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
14304
14305         * dwarf2out.c (ctype.h): Include.
14306         (dwarf2out_set_demangle_name_func): New function.
14307         (size_of_line_info): Deleted.
14308         (output_line_info): Compute size of line info table from difference
14309         of labels.
14310         (base_type_die, add_name_attribute): Call demangle function, if any.
14311         (field_byte_offset): Use bits per word for variable length fields.
14312         (gen_array_type_die): Add array name.
14313         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
14314         (dwarf2out_add_library_unit_info): New function.
14315
14316         * explow.c (set_stack_check_libfunc): New function.
14317         (stack_check_libfunc): New static variable.
14318         (probe_stack_range): Allow front-end to set up a libfunc to call.
14319
14320         * combine.c (simplify_comparison): When making comparison in wider
14321         mode, check for having commuted an AND and a SUBREG.
14322         (contains_muldiv): New function.
14323         (try_combine): Call it when dividing a PARALLEL.
14324         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
14325         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
14326         a PLUS.
14327         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
14328         use one of the CLOBBERs instead.
14329         (if_then_else_cond): If comparing against zero, just return thing
14330         being compared.
14331
14332         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
14333         Don't generate shifts and subtract if have conditional arithmetic.
14334
14335         * rtl.h (delete_barrier): New declaration.
14336         * jump.c (jump_optimize): Set up to handle conditional call.
14337         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
14338         (delete_barrier): New function.
14339
14340         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
14341
14342         * recog.c (nonmemory_operand): Accept ADDRESSOF.
14343
14344         * tree.c (build_type_attribute_variant): Push to obstack of
14345         ttype around type_hash_canon call.
14346
14347         * expr.c (placeholder_list): Move decl to file scope.
14348         (expand_expr): Don't force access to volatile just because its
14349         address is taken.
14350         If ignoring reference operations, just expand the operands.
14351         (expand_expr, case COMPONENT_REF): Propagate
14352         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
14353         Refine test for using bitfield operations vs pointer punning.
14354         (expand_expr, case CONVERT_EXPR): If converting to
14355         BLKmode UNION_TYPE from BLKmode, just return inner object.
14356         Use proper mode in store_field call.
14357         Properly set sizes of object to store and total size in store_field
14358         call for convert to union.
14359         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
14360         memory (like for ADDR_EXPR).  Also, don't put constant in register if
14361         we'll want it in memory.
14362         (readonly_fields_p): New function.
14363         (expand_expr, case INDIRECT_REF): Call it if LHS.
14364         (expand_assignment): Handle a RESULT_DECL where
14365         DECL_RTL is a PARALLEL.
14366         (do_jump, case WITH_RECORD_EXPR): New case.
14367         (get_inner_reference): Always go inside a CONVERT_EXPR
14368         and NOP_EXPR if both modes are the same.
14369         (store_field): Use bitfield operations if size of bitsize is not same
14370         as size of RHS's type.
14371         Check for bitpos not a multiple of alignment in BLKmode case.
14372         Do block move in largest possible alignment.
14373         (store_constructor): Set BITSIZE to -1 for variable size and properly
14374         in case of array of BLKmode.
14375         (expand_expr_unaligned): New function.
14376         (do_compare_and_jump): Call it.
14377
14378         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
14379         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
14380         does not include 'o'.
14381
14382         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
14383         both SET_DEST and SET_SRC reference a virtual register.
14384         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
14385
14386         * integrate.c (expand_inline_function): Handle case of setting
14387         virtual stack vars register (from built in setjmp); when parameter
14388         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
14389         (subst_constant): Add new parm, MEMONLY.
14390         (expand_inline_function, integrate_parm_decls): Pass new parm.
14391         (integrate_decl_tree): Likewise.
14392         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
14393         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
14394         (copy_rtx_and_substitute, case SET): Add explicit calls to
14395         copy_rtx_and_substitute for both sides.
14396
14397         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
14398         constraints.
14399         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
14400         within INDEX_TYPE, instead of before.
14401         (fixup_gotos): Use f->target_rtl, not the next insn,
14402         since latter may be from a later fixup.
14403         (expand_value_return): Correctly convert VAL when promoting function
14404         return; support RETURN_REG being a PARALLEL.
14405         (expand_return): When checking for result in regs and having
14406         cleanup, consider PARALLEL in DECL_RTL as being in regs.
14407
14408 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
14409
14410         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
14411         last_nominal_fname): Mark const.
14412         (struct include_hash: name, nshort, control_macro): Mark
14413         const.
14414         (struct macrodef: symnam): Mark const.
14415         (struct if_stack: fname): Mark const.
14416         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
14417         (IStable): New character-syntax array which encompasses all
14418         the old is_foo arrays.
14419         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
14420         is_space): New macros for interrogating IStable.
14421         (check_macro_name): Kill last argument.  All callers changed.
14422
14423         * cppinit.c (initialize_char_syntax): Delete.
14424         (is_idchar, is_idstart, is_hor_space, is_space,
14425         trigraph_table): Delete.
14426         (IStable): New.  Initialize with clever macros to avoid
14427         information duplication.
14428         (builtin_array): Table of builtins to get rid of explicit list
14429         in initialize_builtins.
14430         (initialize_builtins): Use builtins_array.
14431         (cpp_start_read): Call init_IStable, and set IStable['$'] if
14432         opts->dollars_in_ident.
14433
14434         * cppexp.c: Change all refs to is_xyz[] arrays to use new
14435         is_xyz() macros.
14436         (cpp_parse_expr): Avoid 'format string is not constant'
14437         warning. Use ISGRAPH to identify printable chars.
14438         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
14439         is_xyz() macros.
14440         (read_and_prescan): Map trigraphs to chars with open-coded
14441         if-else-if-... sequence, not a lookup table.
14442         * cpphash.c: Change all refs to is_xyz[] arrays to use new
14443         is_xyz() macros.
14444         * cpplib.c: Change all refs to is_xyz[] arrays to use new
14445         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
14446         (check_macro_name): Remove ability to report an invalid
14447         assertion name, which is never used.
14448         (do_line): Constify a couple of char *'s.
14449         * cppmain.c (main): Call cpp_cleanup before returning.
14450
14451 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
14452
14453         * ggc.h (struct ggc_statistics): New type.
14454         (ggc_get_size): New function.
14455         (ggc_print_statistics): Likewise.
14456         * ggc-common.c (ggc_stats): New variable.
14457         (ggc_mark_rtx_children): Keep statistics.
14458         (ggc_mark_tree_children): Likewise.
14459         (ggc_print_statistics): New function.
14460         * ggc-page.c (struct globals): Add bytes_mapped field.
14461         (alloc_anon): Update it.
14462         (release_pages): Likewise.
14463         (ggc_get_size): New function.
14464         (ggc_page_print_statistics): New function.
14465         * ggc-simple.c (ggc_get_size): New function.
14466
14467 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
14468
14469         * flow.c (propagate_block): When the last reference to a label
14470         before an ADDR_VEC is deleted because the reference is a dead
14471         store, delete the ADDR_VEC.
14472
14473 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
14474
14475         * resource.c (find_free_register): Don't use the frame pointer
14476         if frame_pointer_needed.
14477
14478 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
14479
14480         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
14481         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
14482
14483         * config/i960/i960.c (i960_va_start): New locals base, num.
14484         Use INDIRECT_REF instead of ARRAY_REF on valist.
14485         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
14486
14487 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
14488
14489         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
14490
14491 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
14492
14493         * tree.def (PLACEHOLDER_EXPR): Update comments.
14494
14495 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14496
14497         * c-common.c (check_format_info): Avoid non-literal format string
14498         warnings when `first_arg_num' is zero.
14499
14500 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14501
14502         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
14503
14504 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
14505
14506         * arm.md (casesi_insn): Add a clobber of the condition code
14507         register.
14508
14509 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
14510
14511         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
14512         used by both cc1 and cc1plus.
14513
14514 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
14515
14516         * config/arm/arm.c: Initialise arm_structure_size_boundary to
14517         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
14518         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
14519         to the value 32 if it has not already been defined.
14520         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
14521         Override definition in arm.h with a value of 8.
14522
14523 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
14524
14525         * c-pragma.c (push_alignment): Don't check the return value
14526         of xmalloc.
14527
14528 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
14529
14530         * sparc.h (ADJUST_COST): Fix thinko.
14531
14532 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
14533
14534         * cccp.c (rescan): Fixed obp pointer handling around call to
14535         check_expand subroutine.
14536
14537 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
14538
14539         * gcse.c (delete_null_pointer_checks): Only record non-null info
14540         for pseudos when examining stores.
14541
14542         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
14543         splitters for these patterns.  Use "#" for output templates.
14544         (addsi3_carryin_shift): New pattern.
14545
14546 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
14547
14548         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
14549         of the function return register into a plain REG until
14550         after function inlining is done.
14551
14552 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
14553
14554         * jump.c (jump_optimize_1): If we did cross-jumping, and
14555         the data will matter, rebuild the CFG.
14556         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
14557         not optimizing.  Don't run shorten_branches.
14558         * toplev.c (rest_of_compilation): Run shorten_branches after
14559         reg_to_stack.
14560
14561 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
14562
14563         * rtl.h (note_stores): Add additional paramter.
14564         * rtlanal.c (reg_set_p_1): Take additional paramter.
14565         (reg_set_last_1): Likewise.
14566         (reg_set_p): Adjust call to note_stores.
14567         (reg_set_last): Likewise.
14568         (note_stores): Pass data parameter to worker function.
14569         * alias.c (record_set): Take additional parameter.
14570         (init_alias_analysis): Pass it.
14571         * caller-save.c (mark_set_regs): Take additional parameter.
14572         (save_call_clobbered_regs): Pass NULL to note_stores.
14573         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
14574         parameter.
14575         (record_dead_and_set_regs_1): Likewise.
14576         (reg_dead_at_p_1): Likewise.
14577         (combine_instructions): Adjust calls to note_stores.
14578         (try_combine): Likewise.
14579         (record_dead_insn): Remove.
14580         (record_dead_and_set_regs): Adjust calls to note_stores.
14581         (reg_dead_at_p): Likewise.
14582         * cse.c (invalidate_skipped_set): Take additional parameter.
14583         (cse_check_loop_start): Likewise.
14584         (cse_check_loop_start_value): Remove.
14585         (cse_set_around_loop): Adjust calls to note_stores.
14586         * flow.c (notice_stack_pointer_modification): Take additional
14587         parameter.  Remove duplicate declaration.
14588         (record_volatile_insns): Adjust calls to note_stores.
14589         * gcse.c (record_set_info): Take additional parameter.
14590         (record_last_set_info): Likewise.
14591         (invalidate_nonnull_info): Likewise.
14592         (record_set_insn): Remove.
14593         (compute_sets): Adjust calls to note_stores.
14594         (last_set_insn): Remove.
14595         (compute_hash_table): Adjust calls to note_stores.
14596         (insert_insn_end_bb): Likewise.
14597         (delete_null_pointer_checks): Likewise.
14598         * global.c (mark_reg_store): Take additional parameter.
14599         (mark_reg_clobber): Likewise.
14600         (reg_becomes_live): Likewise.
14601         (global_conflicts): Adjust calls to note_stores.
14602         (build_insn_chain): Likewise.
14603         * integrate.c (note_modified_parmregs): Take additional parameter.
14604         (mark_stores): Likewise.  Make it static.
14605         (save_for_inline_nocopy): Adjust calls to note_stores.
14606         (try_constants): Likewise.
14607         * integrate.h (mark_stores): Remove declaration.
14608         * jump.c (mark_modified_reg): Take additional parameter.
14609         (thread_jumps): Adjust calls to note_stores.
14610         * local-alloc.c (validate_equiv_mem_from_store): Take additional
14611         parameter.
14612         (no_equiv): Likewise.
14613         (reg_is_set): Likewise.
14614         (validate_equiv_mem): Adjust calls to note_stores.
14615         (update_equiv_regs): Likewise.
14616         (block_alloc): Likewise.
14617         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
14618         (note_addr_stored): Take additional parameter.
14619         (note_set_pseudo_multiple_uses): Likewise.
14620         (record_initial): Likewise.
14621         (prescan_loop): Adjust calls to note_stores.
14622         (strength_reduce): Likewise.
14623         (check_dbra_loop): Likewise.
14624         * regmove.c (flags_set_1): Take additional paramter.
14625         (mark_flags_life_zones): Adjust calls to note_stores.
14626         * reload1.c (mark_not_eliminable): Take additional parameter.
14627         (forget_old_reloads_1): Likewise.
14628         (reload_cse_invalidate_rtx): Likewise.
14629         (reload_cse_check_clobber): Likewise.
14630         (reload_combine_note_store): Likewise.
14631         (move2add_note_store): Likewise.
14632         (reload): Adjust calls to note_stores.
14633         (reload_as_needed): Likewise.
14634         (emit_reload_insns): Likewise.
14635         (reload_cse_regs_1): Likewise.
14636         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
14637         (reload_combine): Adjust calls to note_stores.
14638         * resource.c (update_live_status): Take additional paramter.
14639         (mark_target_live_regs): Adjust calls to note_stores.
14640         * stupid.c (find_clobbered_regs): Take additional parameter.
14641         (stupid_life_analysis): Adjust calls to note_stores.
14642
14643 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
14644
14645         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
14646         definition.
14647
14648         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
14649         definition.
14650
14651         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
14652         of the variable arm_structure_size_boundary.
14653
14654 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
14655
14656         * alias.c (init_alias_analysis): Allocate reg_known_value and
14657         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
14658         and reg_seen.
14659         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
14660         * cse.c (cse_main): Call end_alias_analysis.
14661         * haifa-sched.c (schedule_insns): Likewise.
14662         * local-alloc. (update_equiv_regs): Likewise.
14663         * reload1.c (reload_cse_regs): Likewise.
14664
14665 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14666
14667         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
14668         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
14669         mapping from MASK_FPU.
14670
14671 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
14672
14673         * sparc.md (call): Don't bound structure return size to 0xfff.
14674
14675 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
14676
14677         * resource.c (mark_target_live_regs): Check that the target
14678         insn wasn't created after compute_bb_for_insn.
14679
14680 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
14681
14682         * ggc-page.c (poison_pages): Don't be overzealous.
14683
14684 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
14685
14686         * alias.c: Update comments for ADDRESS.
14687         (nonlocal_reference_p): Look inside the ADDRESS to determine if
14688         it is a local memory reference.
14689
14690         * c-typeck.c (build_function_call): Check that the built-in
14691         function is of class BUILT_IN_NORMAL before trying to recongize
14692         it as BUILT_IN_ABS.
14693         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
14694         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
14695
14696 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
14697
14698         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
14699         of alloca.
14700         (pre_gcse): Likewise.
14701         (hoist_expr_reaches_here_p): Likewise.
14702         (hoist_code): Likewise.
14703         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
14704         code to ...
14705         (pre_expr_reaches_here_p_work): ... here.
14706         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
14707         code to ...
14708         (expr_reaches_here_p_work): ... here.
14709
14710 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
14711
14712         * resource.c (find_basic_block): Delete.
14713         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
14714         (init_resource_info): Call compute_bb_for_insn.
14715
14716 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
14717
14718         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
14719         with already adjacent blocks, but no fallthru.
14720         (merge_blocks_move_successor_nojumps): Simplify.
14721         (debug_flow_info): New.
14722
14723         * toplev.c (rest_of_compilation): Open jump1 dump file before
14724         jump and close after, as opposed to just using dump_rtl.
14725
14726 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14727
14728         * reload.h (earlyclobber_operand_p): Declare.
14729         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
14730         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
14731         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
14732         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
14733
14734 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
14735                           Richard Henderson  <rth@cygnus.com>
14736
14737         * emit-rtl.c (emit_block_insn_before): New.
14738         (emit_block_insn_after): New.
14739         * basic-block.h: Declare them.
14740
14741         * bitmap.h: Protect from multiple inclusion.
14742
14743         * recog.c (scratch_operand): Handle VOIDmode correctly.
14744
14745         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
14746
14747         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
14748         * function.c (assign_parms): Likewise.
14749         * global.c (global_conflicts): Clarify STACK_REGS commentary.
14750
14751         * reg-stack.c (max_uid): Remove.
14752         (blocks, block_begin, block_end, block_drops_in): Remove.
14753         (block_stack_in, block_out_reg_set, block_number): Remove.
14754         (struct block_info_def, BLOCK_INFO): New.
14755         (enum emit_where): New.
14756         (current_block): New.
14757         (BLOCK_NUM): Remove.
14758         (mark_regs_pat, record_label_references): Remove.
14759         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
14760         (nan): New.
14761         (goto_block_pat, print_blocks, dump_stack_info): Remove.
14762         (reg_to_stack): Simplified test for existance of fp code.  Use
14763         flow.c code.  Call shorten_branches after cross-jump opt.
14764         (check_asm_stack_operands): Renamed from record_asm_reg_life.
14765         Return false if the asm doesn't use stack regs.  Don't do life
14766         analysis on the asm.
14767         (emit_pop_insn): Replace function pointer arg `when' with
14768         enum `where'.  Update all callers.
14769         (change_stack): Likewise.  Update basic block end.
14770         (emit_swap_insn): Use current_block->head to limit reverse search
14771         for start of block.  Use emit_block_insn_after.
14772         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
14773         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
14774         structure assignment instead of bcopy.
14775         (print_stack): New.
14776         (convert_regs_entry, convert_regs_exit): New.
14777         (convert_regs_1, convert_regs_2): Split out from convert_regs.
14778         Work on basic blocks and the CFG.
14779         (convert_regs): Use them.
14780
14781         * i386.c (output_fix_trunc): Remove code for DImode input operand
14782         not at top-of-stack.
14783         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
14784         appropriate mode.
14785         (fix_truncdi_1): Allow any mode scratch.
14786
14787 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
14788
14789         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
14790         * linux.h, netbsd.h, vms.h: Not here.
14791
14792 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
14793
14794         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
14795         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
14796         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
14797         CONDITIONAL_REGISTER_USEAGE): Use them.
14798         * config/mips/mips.c (mips_move_1word,mips_move_2words,
14799         gen_conditional_branch,override_options) : Use them.
14800         * config/mips/mips.md : Use them.
14801
14802 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
14803
14804         * i386.md (zero_extendqihi2): Use SImode register name with andl.
14805
14806 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
14807
14808         * integrate.c (function_cannot_inline_p): Don't allow inlining
14809         if setjmp is used.
14810
14811 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14812
14813         * c-parse.in (cast_expr): Constify.
14814
14815         * cccp.c (special_symbol): Likewise.
14816
14817         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
14818
14819         * dwarf2out.c (base_type_die): Likewise.
14820
14821         * global.c (allocno_compare): Likewise.
14822
14823         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
14824
14825         * regclass.c (fix_register): Likewise.
14826
14827         * rtl.h (fix_register): Likewise.
14828
14829         * stupid.c (stupid_reg_compare): Likewise.
14830
14831         * toplev.c (decode_f_option): Likewise.
14832
14833         * tree.c (build_complex_type): Likewise.
14834
14835 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
14836
14837         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
14838
14839 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14840
14841         * reload.c (find_reloads): Compute mode and nregs fields of all
14842         reloads.
14843         * reload1.c (calculate_needs_all_insns): Simplify a bit.
14844         (calculate_needs): Use precomputed mode/nregs values.
14845         (allocate_reload_reg): Likewise.
14846         Break out two...
14847         (failed_reload, set_reload_reg): ... new functions.
14848         (choose_reload_regs_init): New function, mostly broken out from...
14849         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
14850         Also lose one #if 0 block.
14851
14852 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
14853
14854         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
14855         substitution.
14856
14857 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
14858
14859         * tree.h (BLOCK_TYPE_TAGS): Remove.
14860         (BLOCK_END_NOTE): Likewise.
14861         (BLOCK_LIVE_RANGE_FLAG): Likewise.
14862         (BLOCK_LIVE_RANGE_START): Likewise.
14863         (BLOCK_LIVE_RANGE_END): Likewise.
14864         (tree_block): Remove live_range_flag, live_range_var_flag, and
14865         type_tags.  Remove end_note, live_range_start, and live_range_end.
14866         (remember_end_note): Remove prototype.
14867         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
14868         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
14869         remember_end_note.
14870         * ggc-common.c (ggc_mark_tree_children): Don't mark
14871         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
14872         * integrate.c (adjust_copied_decl_tree): Remove.
14873         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
14874         * stmt.c (last_block_end_note): Remove.
14875         (init_stmt): Don't add a GC root for it.
14876         (expand_fixup): Don't set it.
14877         (remember_end_note): Remove.
14878         (expand_end_bindings): Don't set last_block_end_note.
14879
14880 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14881
14882         * reload1.c (reload_reg_free_for_value_p): Show
14883         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
14884         reloads.
14885
14886 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
14887
14888         * expmed.c (extract_bit_field): Allow for the case of non-integer
14889         objects that are smaller than a word (like SFmode on a 64-bit
14890         machine).
14891
14892         * loop.c (basic_induction_var): A non-integer variable which is
14893         being set by a paradoxical subreg is probably not a biv.
14894
14895 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14896
14897         * prefix.c (translate_name) Check for empty prefix string.
14898
14899 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
14900
14901         * Makefile.in (CPP_CROSS_NAME): New variable.
14902         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
14903         xcpp.
14904         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
14905         names of the files to be uninstalled.
14906
14907 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
14908
14909         * collect2.c (IS_DIR_SEPARATOR): Define.
14910         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
14911
14912         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
14913         functions too.
14914
14915         * haifa-sched.c (add_dependence): Update the true dependency
14916         cache the first time we add a true dependence to the LOG_LINKS chain.
14917
14918 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
14919
14920         * fold-const.c (fold): Fix comment.
14921
14922 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14923
14924         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
14925         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
14926         dbxout_start_new_source_file, dbxout_source_file,
14927         dbxout_source_line, dbxout_finish, dbxout_type_fields,
14928         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
14929         Constify a char*.
14930         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
14931         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
14932         (dbxout_block): Initialize variable `blocknum'.
14933
14934         * dbxout.h (dbxout_init, dbxout_finish,
14935         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
14936         dbxout_args, dbxout_source_line): Constify a char*.
14937
14938         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
14939         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
14940         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
14941         low_pc_attribute, high_pc_attribute, body_begin_attribute,
14942         body_end_attribute, comp_dir_attribute, sf_names_attribute,
14943         src_info_attribute, mac_info_attribute, producer_attribute,
14944         lookup_filename, generate_macinfo_entry, fundamental_type_code,
14945         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
14946         dwarfout_undef): Constify a char*.
14947         (add_incomplete_type, retry_incomplete_types): Add prototypes.
14948
14949         * dwarfout.h (dwarfout_define, dwarfout_undef,
14950         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
14951
14952 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
14953
14954         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
14955         (MULTILIB_ISA_DEFAULT): New.
14956         (MULTILIB_DEFAULTS): Use it.
14957         * config/mips/mips.c (): Remove the now unnecessary definition
14958         of MIPS_ISA_DEFAULT.
14959         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
14960         unnecessary definition.
14961
14962 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
14963
14964         * arm.md (pic_load_addr): Add constraints to operand 1.
14965
14966 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
14967
14968         * fixinc/genfixes:  Provide a means for specifying -D options to
14969         AutoGen
14970
14971 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
14972
14973         * arm.c (arm_override_options): Correct initialization of
14974         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
14975         arm_is_strong, and arm_is_6_or_7.
14976
14977         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
14978         (note_set_pseudo_multiple_uses): New function.
14979         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
14980         if a pseudo set in the loop exit is used elsewhere.
14981
14982 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
14983
14984         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
14985
14986 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
14987
14988         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
14989         a single load-address pattern.
14990
14991 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
14992
14993         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
14994         depending on whether or not line-number notes are present.
14995
14996 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14997
14998         * cccp.c (progname, file_buf, default_include, include_file,
14999         macrodef, definition, hashval, wchar_type, user_label_prefix,
15000         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
15001         expand_to_temp_buffer, is_system_include, base_name,
15002         absolute_filename, read_name_map, open_include_file,
15003         record_control_macro, check_precompiled, check_preconditions,
15004         pcfinclude, pass_thru_directive, create_definition,
15005         check_macro_name, comp_def_part, collect_expansion,
15006         check_assertion, read_token_list, assertion_install,
15007         assertion_lookup, eval_if_expression, conditional_skip,
15008         validate_else, skip_quoted_string, quote_string, macarg1,
15009         error_from_errno, install, lookup, hashf, dump_defn_1,
15010         perror_with_name, pfatal_with_name, main, trigraph_pcp,
15011         check_white_space, rescan, handle_directive, monthnames,
15012         special_symbol, do_include, remap_include_file, write_output,
15013         arglist, do_assert, do_unassert, do_line, do_error, do_once,
15014         do_ident, do_sccs, do_xifdef, skip_if_group,
15015         output_line_directive, macroexpand, macarg, change_newlines,
15016         initialize_builtins, make_definition): Constify a char*.
15017
15018         * pcp.h (stringdef): Likewise.
15019
15020 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
15021
15022         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
15023         not of pattern.
15024
15025 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
15026                           Richard Henderson  <rth@cygnus.com>
15027
15028         * alias.c: Include ggc.h.
15029         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
15030         (record_set): Verify enough room in reg_base_value.
15031         (init_alias_analysis): Allocate reg_base_value with xcalloc.
15032         Register it as a GC root.
15033         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
15034         * Makefile.in (alias.o): Depend on ggc.h.
15035
15036         * unroll.c (unroll_loop): Verify the insn before a barrier
15037         is a JUMP_INSN before checking JUMP_LABEL.
15038
15039 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15040
15041         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
15042         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
15043         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
15044         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
15045         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
15046         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
15047
15048 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15049
15050         * output.h (ctors_section, dtors_section, bss_section): Prototype.
15051
15052         * alpha/alpha-interix.h (text_section): Delete prototype.
15053         * alpha/elf.h (text_section): Likewise.
15054         * arm/linux-elf.h (text_section): Likewise.
15055         * arm/linux-telf.h (text_section): Likewise.
15056         * c4x/c4x.h (text_section): Likewise.
15057         * dsp16xx/dsp16xx.h (bss_section): Likewise.
15058         * elfos.h (text_section): Likewise.
15059         * i386/aix386ng.h (text_section): Likewise.
15060         * i386/i386-interix.h (text_section): Likewise.
15061         * i386/sco5.h (text_section): Likewise.
15062         * i386/svr3gas.h (text_section): Likewise.
15063         * nextstep.h (text_section): Likewise.
15064         * psos.h (text_section): Likewise.
15065         * ptx4.h (text_section): Likewise.
15066         * svr3.h (text_section): Likewise.
15067         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
15068
15069 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15070
15071         * final.c (peephole): Delete prototype.
15072
15073         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
15074         (pre_insert_copies): Remove unused variable `bb'.
15075
15076         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
15077         prototypes.
15078
15079         * output.h (peephole): Add prototype.
15080
15081 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
15082
15083         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
15084         -O0.
15085
15086 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
15087
15088         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
15089         for inlined declarations.
15090
15091 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
15092
15093         * arm.c (logical_binary_operator): New fucntion.
15094         * arm.h (logical_binary_operator): Declare it.
15095         (PREDICATE_CODES): Handle logical_binary_operator.
15096         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
15097         output constraints.  Add appropriate splitters.
15098         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
15099         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
15100         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
15101
15102 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15103
15104         * genoutput.c (struct operand_data): New elt eliminable.
15105         (output_operand_data): Write it.
15106         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
15107         (compare_operands): Take it into account.
15108         * recog.h (struct insn_operand_data): New elt eliminable.
15109         * reload1.c (check_eliminable_occurrences, elimination_effects): New
15110         functions.
15111         (old_asm_operands_vec, new_asm_operands_vec): Delete.
15112         (eliminate_regs): Move code that detects changes to elimination
15113         target regs into new function elimination_effects.
15114         Delete one #if 0 block.
15115         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
15116         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
15117         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
15118         Only call eliminate_regs for real operands of the insn, not for parts
15119         of its structure or parts matched by things like match_operator.
15120         Use elimination_effects and check_eliminable_occurrences.  Use
15121         copy_insn to duplicate the pattern when not in the final pass.
15122
15123 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
15124
15125         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
15126         and fld.
15127
15128 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
15129
15130         * fixinc/README: document the "mach" machine matching test
15131         * fixinc/fixfixes.c: Implement the #else/#endif label fix
15132         * fixinc/fixtests.c: Implement the #else/#endif label test
15133         * fixinc/inclhack.def: utilize these tests and fixes
15134         * fixinc/inclhack.sh:  regen
15135         * fixinc/fixincl.x:  regen
15136         * fixinc/fixincl.sh:  regen
15137
15138 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
15139
15140         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
15141         depend on ggc.h.
15142
15143 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
15144
15145         * gcc.1: Document exit codes.
15146
15147 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15148
15149         * calls.c: Include tm_p.h later, so everything we need is defined.
15150         * expr.c: Likewise.
15151         * function.c: Likewise.
15152
15153         * except.c: Include tm_p.h.
15154
15155         * sparc.c: Likewise.
15156         (dwarf2out_cfi_label): Don't prototype.
15157         (check_return_regs, epilogue_renumber,
15158         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
15159         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
15160         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
15161         ultra_schedule_insn): Add static prototype.
15162         (data_segment_operand, text_segment_operand): Call itself with the
15163         proper number of arguments.
15164         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
15165
15166         * sparc.h: Move all declarations to sparc-protos.h.
15167         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
15168         symbolic_operand.
15169
15170         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
15171
15172         * config/svr4.h (text_section, ctors_section, dtors_section): Add
15173         Prototypes.
15174         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
15175         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
15176         ASM_OUTPUT_ASCII): Constify a char*.
15177
15178         * sparc-protos.h: New file for sparc prototypes.
15179
15180 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15181
15182         * function.c (record_insns, contains): Always declare and define.
15183         (record_insns): Mark with ATTRIBUTE_UNUSED.
15184
15185 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
15186
15187         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
15188         to .section when outputting a .bss section to deal with multiple
15189         .bss input sections (as happens with -fdata-sections)
15190         Also output %progbits, not @progbits so the assembler doesn't treat as
15191         a comment.
15192         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
15193
15194         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
15195         thumb parts even when building with non-thumb CPUs, by forcing
15196         thumb mode.
15197
15198 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
15199
15200         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
15201         (movdf_const_intreg_sp64): Similarly.
15202
15203         * local-alloc.c (update_equiv_regs): Check the correct insn
15204         for pre-existing REG_EQUIV notes.
15205
15206 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
15207
15208         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
15209         block reached by a branch if we're not going to actually process
15210         this block.
15211
15212 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
15213
15214         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
15215         a local extern function declaration.
15216
15217 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
15218
15219         * i386.c (ix86_expand_prologue): Properly wrap USE around
15220         reg for CALL_INSN_FUNCTION_USAGE.
15221
15222 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
15223
15224         * config/mips/mips.md (movdf_internal1a): Allow floating-point
15225         move between GP_REGs.
15226
15227 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
15228
15229         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
15230         the mode size when finding out if an offset is legal.
15231
15232 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
15233
15234         * basic-block.h (PROP_*): Move constants from ...
15235         * flow.c: ... here.
15236         (compute_bb_for_insn): Free the array before reallocating.
15237         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
15238         (allocate_reg_life_data): Reset all reg variables collected by
15239         propagate_block.
15240         (get_block_head_tail): Don't convert from bb to block.
15241         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
15242         (find_insn_reg_weight): Take block not bb.
15243         (schedule_block): Don't set block num for moved insns.
15244         (schedule_region): Don't update_life_info or find_insn_reg_weight.
15245         (schedule_insns): Do it here instead.
15246         * combine.c (combine_instructions): Invoke compute_bb_for_insn
15247         before update_life_info.
15248         * recog.c (split_all_insns, peephole2_optimize): Update for
15249         new arg to update_life_info.
15250         * rtlanal.c (remove_note): Cope with NULL note.
15251         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
15252         if we did sched1.
15253
15254 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
15255
15256         * jump.c (jump_optimize_1): More accurately detect casesi insns.
15257
15258         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
15259         block records so that merge_blocks_nomove will clean up correctly.
15260         (split_edge): Handle casesi insns.
15261
15262         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
15263
15264 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
15265
15266         * pa.md (call, call_value): Do not emit a blockage after restoring
15267         the PIC register.
15268
15269 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
15270
15271         * c-typeck.c (c_expand_asm_operands): Fix typo.
15272
15273 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15274
15275         * arm.c (fpu_rhs_operand): Verify modes.
15276         (fpu_add_operand): Likewise.
15277         (di_operand): Likewise.
15278         (soft_df_operand): Likewise.
15279
15280 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
15281
15282         * arm.c (arm_return_in_memory): APCS rules state that the elements
15283         of a structure returned in a register must be 'integer-like'.
15284
15285 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
15286
15287         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
15288         in the source tree when the generated targets are out of date
15289         * fixinc/genfixes: Alter it to run individual fixes for make.
15290         * fixinc/README: rewrite
15291         * fixinc/inclhack.def: moved initial comments to README
15292
15293 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
15294
15295         * toplev.c (main): Do not generate an error message if an
15296         unrecognised command line switch is recognisable by another
15297         language.  If extra_warnings are enabled, then generate a
15298         warning message instead.
15299
15300 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
15301
15302         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
15303         (insert_pack_attributes): Delete prototype.
15304
15305         * c-pragma.c (default_alignment): New static variable.
15306         (push_alignment): Initialize to current effective alignment.
15307         (pop_alignment): Use to set new alignment.
15308         (insert_pack_attributes): Delete function.
15309         (handle_pragma_token): Set default_alignment as well each time
15310         a #pragma pack(<n>) is encountered.
15311
15312 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
15313
15314         * reg-stack.c (stack_result): Aggregates are not returned in
15315         stack registers.
15316
15317 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
15318
15319         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
15320
15321 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
15322
15323         * basic-block.h (set_block_num): Declare.
15324         * flow.c (update_life_info): Don't call compute_bb_for_insn
15325         or free_basic_block_vars.
15326         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
15327         (insn_orig_block): Remove.
15328         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
15329         (schedule_block): Keep BLOCK_NUM up-to-date.
15330         (schedule_insns): Use compute_bb_for_insn.
15331         * recog.c (split_all_insns): Likewise.
15332         (peephole2_optimize): Likewise.
15333
15334 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
15335
15336         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
15337         if the pic register is used.
15338
15339 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15340
15341         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
15342         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
15343         if that tests TREE_PERMANENT.
15344
15345 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
15346
15347         * cse.c (invalidate_for_call): Do not remove memory references from
15348         the table here.  It's handled elsewhere.
15349
15350         * haifa-sched.c (add_dependence): Protect references to the
15351         true dependency cache with #ifdef INSN_SCHEDULING.
15352         (remove_dependence): Similarly.
15353
15354         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
15355         to the cfg code that this is a return instruction.
15356         * mn10300.md (return_internal): Similarly.
15357
15358         * combine.c (get_last_value): If the last set of a register
15359         is after subst_low_cuid, then we can not use it to determine
15360         the register's last value.
15361
15362 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
15363
15364         * Makefile.in: Back out previous change.
15365
15366 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
15367
15368         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
15369
15370         * haifa-sched.c (add_dependence): Only check/update the cache
15371         if it exists.
15372         (remove_dependence): Likewise.
15373         (schedule_insns): Only create the true_dependency_cache if the
15374         average number of instructions in a basic block is very large.
15375
15376 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
15377
15378         * Makefile.in (ggc-common.o): Depend on genrtl.h.
15379         (ggc-simple.o): Likewise.
15380         (ggc-page.o): Likewise.
15381
15382 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
15383
15384         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
15385         Prototype for exported functions.
15386         (pre_lcm, pre_rev_lcm): Remove prototypes.
15387         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
15388         (compute_available): Move to lcm.c, and change parameter order.
15389         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
15390         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
15391         (gcse_main): No longer call compute_preds_succs.  Rebuild the
15392         set table after reach pre pass.
15393         (pre_insert_map, pre_delete_map, edge_list): New.
15394         (alloc_pre_mem): Allocate edge vectors.
15395         (free_pre_mem): Delete edge vectors.
15396         (compute_pre_data): Call new edge based lcm routines.
15397         (process_insert_insn): New function.
15398         (insert_insn_end_bb): Use it.
15399         (pre_edge_insert): New function.
15400         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
15401         needed.
15402         (pre_insert_copies): Revamp using new edge based lcm outputs.
15403         (pre_delete): Likewise.
15404         (one_pre_gcse_pass): Insert & remove fake edges to the exit
15405         block.
15406         (compute_code_hoist_vbeinout): New new edge based routines.
15407         * lcm.c: Remove all the old LCM functions.  Replace with new ones
15408         that work with the new cfg datastructures and work with edges
15409         instead of blocks.
15410
15411 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15412
15413         * reload.h (struct reload): Add new fields "mode" and "nregs".
15414         * reload1.c: Change all occurrences of reload_mode and reload_nregs
15415         to reference the "mode" and "nregs" field within struct reload.
15416
15417 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
15418
15419         * haifa-sched.c (true_dependency_cache): New.
15420         (add_dependence): Use the true dependency cache to avoid expensive
15421         walks down the LOG_LINKS dependency list.  Add entries to the
15422         cache as necessary.
15423         (remove_dependence): Remove entries from the true dependency cache
15424         as needed.
15425         (schedule_insns): Allocate and initialize and free the true
15426         dependency cache.
15427
15428         * haifa-sched.c (schedule_insns): Do not remove inter-block
15429         dependencies anymore.
15430
15431 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
15432
15433         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
15434         * i386/t-winnt: Likewise.
15435
15436 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
15437
15438         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
15439
15440 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
15441
15442         * Makefile.in (LANGUAGES): Omit "proto".
15443         (clean): Remove stale comment about removing unprotoize.c.
15444
15445 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15446
15447         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
15448         using arithmetic on void pointers.
15449
15450 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
15451
15452         * haifa-sched.c (compute_block_forward_dependencies): Only check
15453         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
15454
15455 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
15456
15457         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
15458         (expr_equiv_p): Reject memories with different alias sets.
15459
15460 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
15461
15462         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
15463         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
15464         (f_options): Add "bounded-pointers" and "bounds-check" entries.
15465         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
15466         (lang_init): Set default for flag_bounds_check if still "unspecified".
15467
15468 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15469
15470         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
15471
15472 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15473
15474         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
15475         instructions.
15476
15477 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15478
15479         * config/c4x/c4x.md (*db_noclobber,
15480         *decrement_and_branch_until_zero_noclobber): New patterns and
15481         associated splitters.
15482
15483 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15484
15485         * config/c4x/c4x.md (parallel instruction patterns): Rework
15486         constraints to keep reload happy.
15487
15488 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15489
15490         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
15491         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
15492         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
15493         Add new patterns and associated post-reload splitters.
15494
15495 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15496
15497         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
15498
15499 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15500
15501         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
15502         if appropriate.
15503         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
15504
15505 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15506
15507         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
15508         memory mode.
15509
15510 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
15511
15512         * pa.c (move_operand): Rely on memory_address_p to determine the
15513         validity of non-indexed memory addresses.
15514         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
15515         operand in DFmode and SFmode when generating PA2.0 code.
15516
15517 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
15518
15519         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
15520
15521 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
15522
15523         * mips.c (function_prologue): Fix argument types.
15524         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
15525         (casesi_internal): Write to the scratch register.
15526
15527 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
15528
15529         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
15530         to U_CHAR **.
15531         (parse_charconst): Delete unnecessary cast when calling
15532         cpp_parse_escape.
15533         (cpplib.h): Kill prototype of cpp_parse_escape.
15534
15535 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
15536
15537         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
15538         * unroll.c (unroll_loop): Cast return value of alloca.
15539         * i370/i370.c: Include function.h and toplev.h.
15540         (i370_label_scan): Remove c++ commented abort.
15541         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
15542         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
15543         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
15544         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
15545
15546 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
15547
15548         * config/t-freebsd: Do not override USER_H.
15549         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
15550
15551 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
15552                           Mumit Khan  <khan@xraylith.wisc.edu>
15553
15554         * c-parse.in (component_decl): Support anonymous struct/union.
15555         (%expect): Update.
15556         * c-parse.y: Regenerate.
15557         * c-parse.c: Likewise.
15558         * objc/objc-parse.y: Likewise.
15559         * objc/objc-parse.c: Likewise.
15560         * c-decl.c (finish_struct): Don't sort the fields.
15561         (field_decl_cmp): Delete unused function.
15562
15563 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
15564
15565         * sparc.md (movsf_const_intreg): Revert last constraint change.
15566         (movdf_const_intreg_sp32): Likewise.
15567
15568 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
15569
15570         * cse.c: Include hashtab.h instead of splay-tree.h
15571         (struct cse_reg_info): No longer use variant union.  Add new
15572         field "regno".  All references changed to avoid union.
15573         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
15574         (free_cse_reg_info): Remove.
15575         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
15576         (get_cse_reg_info): Revamp to use expandable hash tables instead
15577         of splay trees.  Initialize new fields in cse_reg_info structure.
15578         (new_basic_block): Similarly.
15579
15580 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
15581
15582         * genrecog.c (message_with_line): Prototype.
15583         (validate_pattern): Pass along the set for the dest, not a flag.
15584         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
15585         Check for PC/CC0 as sources.
15586         (nodes_identical): Check for children position match before
15587         allowing the combination.
15588
15589         * rtl.c (read_rtx): Track line number across \\\n.
15590
15591 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
15592
15593         * mips.h (SPECIAL_MODE_PREDICATES): New.
15594         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
15595         (movdi+1, movsi+1): Add output reload constraint.
15596         (casesi_internal): Likewise.  Fix commentary.
15597         (return_internal): Use pmode_register_operand.
15598
15599 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
15600
15601         * 1750a.md (movstrqi): Add missing output reload constraint.
15602         (call_value): Likewise.
15603         * a29k.md (cpxxx patterns): Add missing match_operator mode.
15604         (jmpfdec): Add missing inout reload constraint.
15605         * elxsi.md (addsi patterns): Add missing output reload constraint.
15606         (move from sp): Use @ alternates.
15607         (call_value): No constraint on output.
15608         * fr30.md (movsi_pop): Add missing output reload constraint.
15609         (movsf_constant_store): Likewise.
15610         (splits): Remove constraints.
15611         (subsi3): Add missing mode.
15612         * i370.md (cmpstrsi+1): Add missing output reload constraint.
15613         (call_value): Likewise.
15614         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
15615         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
15616         * m32r.md (movsicc_internal): Add output reload constraint.
15617         (movstrsi_internal): Add inout reload constraints.
15618         * m88k.h (reg_names): Don't declare.
15619         (SPECIAL_MODE_PREDICATES): New.
15620         * m88k.md (*): Use register_operand not reg_or_0_operand
15621         on destinations.
15622         * mn10200.h (PREDICATE_CODES): New.
15623         * ns32k.md (ffs pattern): Add output reload constraint.
15624         * pdp11.md (sob pattern): Add inout reload constraint.
15625         * sh.md (splits): Remove constraints.
15626         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
15627         * v850.md (pattern_is_ok_for_epilogue): Likewise.
15628         * vax.md (jgequ pattern): Add inout reload constraint.
15629
15630 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
15631
15632         * configure.in (djgpp): Revert previous patch.
15633         * configure: Rebuit.
15634         * config/i386/djgpp.h: Revert previous patch.
15635
15636 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
15637
15638         * fixinc/inclhack.def: Restore patch lost during last merge of
15639         "no_bogosity" branch.
15640         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
15641
15642 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
15643
15644         * fixincludes: Add a HPUX 11 fix for inttypes.h.
15645         * fixinc/inclhack.def: Same.
15646         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
15647
15648 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
15649
15650         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
15651         as the base of a PLUS.
15652
15653 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15654
15655         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
15656         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
15657
15658 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
15659
15660         * pa.md (post_stw+1): Use pmode_register_operand.
15661         (dcacheflush, icacheflush): Likewise.
15662
15663         * i386.md (movstricthi_1): Allow r/r.
15664
15665 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
15666
15667         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
15668         to (not (and (arg0) (arg1))). Similary for and.
15669
15670         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
15671         fallthrough to associate code.
15672         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
15673         bits in common.
15674
15675         * combine.c (simplify_logical): Convert XOR to IOR if operands have
15676         no bits in common; remove XOR to ROTATE conversion.
15677
15678 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15679
15680         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
15681
15682 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15683
15684         * config/c4x/c4x.c (dst_operand): New.
15685         (PREDICATE_CODES): Update.
15686         * config/c4x/c4x.h (dst_operand): Declare it.
15687         * config/c4x/c4x.md:  Define mode for each unspec usage.
15688         (move patterns):  Use dst_operand predicate instead of src_operand.
15689         (movqi_update, movqf_update): Delete.
15690
15691 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
15692
15693         * recog.c (pmode_register_operand): New.
15694         * recog.h: Declare it.
15695         * genrecog.c (pred_codes): Likewise.
15696         (special_mode_pred_table): Likewise.
15697         (validate_pattern): Don't warn no mode for address_operand.
15698
15699         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
15700         if the operand is not insn-like.
15701
15702 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
15703                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
15704
15705         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
15706
15707 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
15708
15709         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
15710         instead of general_operand in a SET_DEST.  Use const_double_operand
15711         instead of an explicit test against CONST_DOUBLE.
15712         (movsf_const_lo): Add missing register mode.
15713         (goto_handler_and_restore): Add auxiliary test for Pmode.
15714         (flush): Adjust to use address_operand.
15715         (return_sf_no_fpu): Add missing output constraint.
15716
15717 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
15718
15719         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
15720         for call return value.
15721         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
15722
15723 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
15724
15725         * toplev.c (main): Only warn about options for other languages.
15726         * collect2.c (main): Pass -w to sub-gcc.
15727
15728 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
15729
15730         * flow.c (propagate_block): Add call-clobbered registers to
15731         significant too.
15732
15733         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
15734         zapping mem_set_list.
15735         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
15736         (mark_set_1, mark_used_regs): Likewise.
15737
15738 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
15739
15740         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
15741
15742 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15743
15744         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
15745         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
15746         options. Also add a new item "C-only Warning Options" to the
15747         option summary.
15748
15749 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
15750
15751         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
15752         from multiple calls.
15753
15754 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
15755
15756         * i386.md (call value patterns): Move to the end of the file.
15757         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
15758
15759 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
15760
15761         * configure.in (djgpp configuration): Define extra_objects..
15762         * configure: Rebuilt.
15763         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
15764         (DTORS_SECTION_ASM_OP): Define.
15765         (INIT_SECTION_ASM_OP): Define.
15766         (FINI_SECTION_ASM_OP): Define.
15767         (DATA_SECTION_ASM_OP): Define.
15768         (TEXT_SECTION_ASM_OP): Define.
15769         (EH_FRAME_SECTION_ASM_OP): Define.
15770         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
15771         (STARTFILE_SPEC): Add crtbegin.o.
15772         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
15773         to here from LINK_COMMAND_SPEC.
15774         (DO_GLOBAL_CTORS_BODY): Define.
15775         (CRTSTUFF_USE_FINI_SECTION): Define
15776         (HAS_INIT_SECTION): Delete.
15777
15778 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
15779
15780         * Makefile.in (all.cross): Depend on xcpp$(exeext).
15781
15782 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
15783
15784         * pa.h (PREDICATE_CODES): New.
15785
15786         * genrecog.c (validate_pattern): Condense the destination
15787         non-lvalue message.
15788
15789 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
15790
15791         * alpha.md (call-1): Supply missing mode for operator.
15792         (*): Add missing output reload constraints.  Remove constraints
15793         from define_splits.
15794
15795         * i386.h (SPECIAL_MODE_PREDICATES): New.
15796         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
15797         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
15798         (addsi_lea_3): Add missing mode for op 3.
15799         (prologue_set_got, prologue_get_pc): Add missing modes.
15800         (*) Add missing output reload constraints.
15801
15802 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
15803
15804         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
15805         check for member bit-size overflow and use var_size if it occurs.
15806         (layout_record): Use bitsize_int() to define the type size in bits.
15807         Likewise for computation and assignment to DECL_FIELD_BITPOS.
15808         (layout_decl): Likewise when assigning to DECL_SIZE.
15809
15810 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
15811
15812         * genrecog.c (validate_pattern): Typo last change.  Verify
15813         that output operands have output reloads.
15814
15815 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
15816
15817         * genrecog.c (special_mode_pred_table): New.
15818         (NUM_SPECIAL_MODE_PREDS): New.
15819         (find_operand): New.
15820         (validate_pattern): New argument `insn'.  Warn for assignment to
15821         any predicate accepting non-lvalues.  Conditionaly warn for
15822         match_operand without a mode.  Try much harder to match source
15823         and destination modes on a set.
15824         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
15825
15826 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
15827
15828         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
15829
15830 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
15831
15832         * combine.c (simplify_logical): Recognize xor pattern that encodes
15833         rotation.
15834
15835 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15836
15837         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
15838         alignment.
15839
15840 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
15841
15842         * ggc-page.c (MAP_FAILED): Provide default.
15843
15844 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
15845
15846         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
15847         * sparc.h (PREDICATE_CODES): Update.
15848
15849 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
15850
15851         * alpha.c (some_ni_operand): New.
15852         * alpha-protos.h: Declare it.
15853         * alpha.h (PREDICATE_CODES): Update.
15854         * alpha.md (sXaddq reload insns): Use some_ni_operand
15855         for SET_DEST instead of some_operand.
15856
15857 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
15858                           Jim Wilson  <wilson@cygnus.com>
15859
15860         * genrecog.c (maybe_both_true_2): Don't compare modes of
15861         two DT_pred tests.
15862         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
15863         after find_afterward.
15864         (debug_decision_1): Dump next and afterward codes.
15865
15866 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
15867
15868         * rtl.c (dump_and_abort): Remove.
15869         (fatal_with_file_and_line): New.
15870         (fatal_expected_char): New.
15871         (read_rtx_lineno, read_rtx_filename): New.
15872         (read_skip_spaces): Track line number.
15873         (read_name): Use fatal_with_file_and_line.
15874         (read_rtx): Use fatal_expected_char.  Track line number.
15875         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
15876
15877         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
15878         if it isn't a CODE_LABEL.
15879
15880         * genattr.c (main): Set read_rtx_filename.
15881         * genattrtab.c (main): Likewise.
15882         * gencodes.c (main): Likewise.
15883         * genconfig.c (main): Likewise.
15884         * genemit.c (main): Likewise.
15885         * genextract.c (main): Likewise.
15886         * genflags.c (main): Likewise.
15887         * genopinit.c (main): Likewise.
15888         * genoutput.c (main): Likewise.
15889         * genpeep.c (main): Likewise.
15890
15891         * genrecog.c (decision_test.u.insn): Add `lineno'.
15892         (pattern_lineno, error_count): New variables.
15893         (message_with_line): New.
15894         (add_to_sequence): Break out checking code to ...
15895         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
15896         (merge_insn): Use message_with_line.
15897         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
15898         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
15899
15900 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15901
15902         * expr.c (store_constructor): Clear union if constructor is empty.
15903
15904 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
15905
15906         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
15907         Add !endian checks.  Change %{...} to %(...).
15908
15909 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
15910
15911         * i386.md (*addsi3_cc): Renamed from addcsi3.
15912         (*addsi3_carry): Renamed from addxsi3.
15913         (*subsi3_cc): Renamed from subcsi3.
15914         (*subsi3_carry): Renamed from subxsi3.
15915         (*xorqi_cc_1): Renamed from xorcqi_1.
15916         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
15917         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
15918
15919 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
15920
15921         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
15922         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
15923
15924 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
15925
15926         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
15927         climb up the chain of insns.
15928
15929 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
15930
15931         * genrecog.c (write_subroutine): Careful for null trees.
15932         (process_tree): Don't elide empty functions.
15933
15934 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
15935
15936         * Makefile.in (genrtl.o): Depend on ggc.h.
15937         * configure.in (valloc): Probe for it.
15938         (with-gc): Use ggc-page if valloc present.
15939         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
15940         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
15941         (ggc_alloc_string): Moved from ggc-page.c.
15942         * ggc-none.c (ggc_alloc_obj): New.
15943         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
15944         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
15945         (struct globals): Likewise for dev_zero_fd.
15946         (init_ggc): Likewise for it's initialization.
15947         (ggc_allocated_p): Move careful dereference from ...
15948         (ggc_lookup_page_table): ... here.  Delete.
15949         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
15950         (alloc_anon): Use valloc if no mmap.
15951         (release_pages): Use free if using valloc.
15952         (ggc_alloc_obj): Renamed from alloc_obj.
15953         (ggc_set_mark): Renamed from mark_obj.
15954         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
15955         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
15956         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
15957         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
15958         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
15959         (ggc_collect): Use fp printing instead of our own rounding.
15960         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
15961         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
15962         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
15963         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
15964         (struct ggc_string, struct ggc_any): Delete.
15965         (offsetof): Provide default definition.
15966         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
15967         (PTR_KEY): New.
15968         (struct ggc_mem): New, from corpse of ggc_any.
15969         (struct ggc_status): Delete.
15970         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
15971         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
15972         (n_strings_collected, n_anys_collected): Delete.
15973         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
15974         (ggc_alloc_string, ggc_alloc): Delete.
15975         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
15976         (ggc_free_string, ggc_free_any): Delete.
15977         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
15978         (ggc_compare_addresses, ggc_mark_string): Delete.
15979         (ggc_mark_string_if_gcable, ggc_mark): Delete.
15980         (search_data): Delete.
15981         (struct globals): New.
15982         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
15983         (tree_insert, tree_lookup): New.
15984         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
15985         (clear_marks, sweep_objs): New.
15986         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
15987         (init_ggc): Set allocated_last_gc.
15988         (ggc_push_context): Gut.  Use G.context.
15989         (ggc_pop_context): Likewise.
15990         (ggc_pop_context_1): New.
15991         (debug_ggc_tree): New.
15992         (debug_ggc_balance, tally_leaves): New.
15993         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
15994         (ggc_mark_string_if_gcable): Remove decl.
15995         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
15996         (ggc_mark_rtvec_children): New.
15997         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
15998         (ggc_mark_if_gcable): New decl.
15999         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
16000         (ggc_alloc_tree, ggc_alloc): Likewise.
16001         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
16002         (ggc_alloc_obj): New decl.
16003         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
16004         (ggc_alloc_tree, ggc_alloc): Likewise.
16005         (ggc_set_mark): New decl.
16006         * rtl.h (struct rtx_def): Remove gc_mark.
16007         (struct rtvec_def): Likewise.
16008         * tree.h (struct tree_common): Likewise.
16009
16010 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
16011
16012         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
16013         float_format and thread_file definitions.
16014         * configure: Rebuilt.
16015
16016 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
16017
16018         * extend.texi (Function Names): Document types of function names.
16019
16020 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16021
16022         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
16023         an earlyclobbered output conflict with RELOAD_INPUT reloads.
16024
16025 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16026
16027         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
16028
16029 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16030
16031         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
16032
16033 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
16034
16035         * collect2.c (main): Do prelimnary link on AIX if rflag.
16036
16037 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
16038
16039         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
16040         __CTOR_LIST__ in opposite order, which is the correct order for sorted
16041         constructors.
16042         (__do_global_dtors): similarly for __DTOR_LIST__.
16043
16044 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16045                                 Diego Novillo <dnovillo@cygnus.com>
16046
16047         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
16048         FPUL_REGS.
16049
16050 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
16051
16052         * fixincl/*: Merged "no_bogosity" branch
16053         * fixincl/fixlib.h: protect against doubly defining t_bool
16054         * fixincl/server.h: protect against doubly defining t_bool
16055
16056 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
16057
16058         * genoutput.c: Include toplev.h.
16059
16060 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
16061
16062         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
16063         Undef.
16064         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
16065         * configure: Regenerate.
16066
16067 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
16068
16069         * gcse.c (delete_null_pointer_checks): Returns void.
16070
16071 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16072
16073         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
16074         * emit-rtl.c (copy_insn_1): Likewise.
16075
16076 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
16077
16078         * config/mips/mips.c (mips_build_va_list): Correct
16079         TREE_CHAIN setting when hard-float.
16080         (mips_va_start): Use corrected setting.
16081         (mips_va_arg): Likewise.  Also pass a tree to build of
16082         POSTINCREMENT_EXPR rather than a naked 'int'.
16083
16084 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
16085
16086         * ggc.h (ggc_push_context): Fix comment.
16087         (ggc_pop_context): Likewise.
16088         (mark_string_if_gcable): Likewise.
16089         * ggc-common.c (ggc_mark_rtx_children): Use
16090         ggc_mark_string_if_gcable.
16091         * ggc-page.c (ggc_lookup_page_table): New function.
16092         (ggc_allocated_p): Likewise.
16093         (mark_obj): Fix formatting.
16094         (ggc_mark_string_if_gcable): New function.
16095         * ggc-simple.c (ggc_allocated_strings): New variable.
16096         (ggc_strings_used): Likewise.
16097         (ggc_compare_addresses): New function.
16098         (ggc_pop_context): Pop the `any' memory too.
16099         (ggc_mark_string_if_gcable): New function.
16100         (ggc_collect): Initialize and tear down ggc_allocated_strings.
16101
16102 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
16103
16104         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
16105         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
16106         * rs6000.c (expand_block_move): Match movstrsi_?reg register
16107         changes.
16108
16109 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
16110
16111         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
16112         (sched_reg_live_length, sched_reg_basic_block): Delete.
16113         (current_block_num, bb_live_regs, old_live_regs): Delete.
16114         (dead_notes, struct sometimes): Delete.
16115         (sched_note_set, birthing_insn_p): Delete.
16116         (adjust_priority): Gut useless reg lifetime code.
16117         (create_reg_dead_note, attach_deaths): Delete.
16118         (attach_deaths_insn, new_sometimes_live): Delete.
16119         (finish_sometimes_live): Delete.
16120         (find_pre_sched_live, find_post_sched_live): Delete.
16121         (update_reg_usage): Delete.
16122         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
16123         (schedule_insns): Delete reg lifetime code.
16124         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
16125         (unlink_other_notes): Adjust REG_NOTE commentary.
16126         (reemit_notes): Use REG_SAVE_NOTE.
16127         (schedule_block): Likewise.
16128         (schedule_region): Allocate bitmap of blocks in region.  Use
16129         count_or_remove_death_notes.  Use update_life_info.
16130
16131         * rtl.h (REG_SAVE_NOTE): New.
16132         * rtl.c (reg_note_name): Update.
16133
16134 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
16135
16136         * combine.c (refresh_blocks, need_refresh): New.
16137         (combine_instructions): Allocate refresh_blocks.  Invoke
16138         update_life_info if needed.
16139         (distribute_notes): Mark refresh_blocks instead of installing
16140         USE insns.
16141         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
16142         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
16143
16144         * Makefile.in (recog.o): Depend on basic-block.h.
16145
16146 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
16147
16148         * genrecog.c (add_to_sequence): Thinko last change: delete
16149         shadowing allow_const_int variable.
16150
16151 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16152
16153         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
16154         __GNUC__ and __GNUC_MINOR__.
16155
16156         * gansidecl.h: Likewise.
16157
16158         * rtl.c: Likewise.
16159
16160         * rtl.h: Likewise.
16161
16162         * toplev.h: Likewise.
16163
16164         * tree.c: Likewise.
16165
16166         * tree.h: Likewise.
16167
16168         * varray.c: Likewise.
16169
16170         * varray.h: Likewise.
16171
16172 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16173
16174         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
16175         use one before a jump table.
16176
16177         * rtl.def (ADDRESS): Change documentation to match reality.
16178         * md.texi: Don't document it.
16179         * gmicro.md (load address pattern): Use 'p' constraint, delete use
16180         of ADDRESS rtx.
16181
16182         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
16183
16184 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
16185
16186         * genrecog.c (add_to_sequence): Move allow_const_int test outside
16187         known predicate block; default allow_const_int true.
16188         (debug_decision_list): New.
16189
16190 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
16191
16192         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
16193
16194 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
16195
16196         * gcse.c (gcse_main): Avoid global optimizations if we have a
16197         large number of basic blocks and the ratio of edges to blocks
16198         is high.
16199         (delete_null_pointer_checks): Likewise.
16200
16201 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
16202
16203         * c-common.c (check_format_info): Warn if format string isn't a
16204         string literal.
16205
16206 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
16207
16208         * configure.in (arm*-*-*): Don't let autoconf remove brackets
16209         * configure: regenerate
16210
16211 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
16212
16213         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
16214         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
16215         (peepholes): Re-enable.
16216
16217 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
16218
16219         * Makefile.in (flow.o): Depend on TREE_H.
16220         * basic-block.h (REG_SET_EQUAL_P): New.
16221         (XOR_REG_SET): New.
16222         (n_edges): Declare.
16223         (free_regset_vector): Remove declaration.
16224         (flow_delete_insn_chain): Declare.
16225         (enum update_life_extent): New.
16226         (update_life_info, count_or_remove_death_notes): Declare.
16227         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
16228         Verify register live at bb->global_live_at_start before adding USE.
16229         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
16230         (CLEAN_ALLOCA): New.
16231         (n_edges): New.
16232         (PROP_*): New flags.
16233         (find_basic_blocks_1): Use alloc_EXPR_LIST.
16234         (clear_edges): Zero n_edges.
16235         (make_edge): Increment n_edges.
16236         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
16237         (flow_delete_insn_chain): Export.
16238         (delete_block): Decrement n_edges.
16239         (merge_blocks_nomove): Likewise.
16240         (life_analysis): Give life_analysis_1 PROP flags.
16241         (verify_wide_reg_1, verify_wide_reg): New.
16242         (verify_local_live_at_start): New.
16243         (update_life_info): Rewrite to call into propogate_block.
16244         (mark_reg): New.
16245         (mark_regs_live_at_end): After reload, if epilogue as rtl,
16246         always mark stack pointer.  Conditionally mark PIC register.
16247         After reload, mark call-saved registers, return regsiters.
16248         (life_analysis_1): Accept PROP flags not remove_dead_code.
16249         Call mark_regs_live_at_end before zeroing regs_ever_live.
16250         Use calculate_global_regs_live.  Copy global_live_at_end before
16251         calling final propagate_block.  Zero reg_next_use on exit.
16252         (calculate_global_regs_live): New.
16253         (allocate_bb_life_data): Don't allocate bb->local_set.
16254         (init_regset_vector, free_regset_vector): Remove.
16255         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
16256         Test flags before every operation.  Warn if prologue/epilogue insn
16257         would have been deleted.
16258         (mark_set_regs, mark_set_1): Accept and use FLAGS.
16259         Use alloc_EXPR_LIST.
16260         (mark_used_regs): Accept and use FLAGS, not FINAL.
16261         Remove special handling for RETURN.
16262         (try_pre_increment): Use alloc_EXPR_LIST.
16263         (dump_flow_info): Dump n_edges.
16264         (unlink_insn_chain, split_hard_reg_notes): Remove.
16265         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
16266         (find_insn_with_note, new_insn_dead_notes): Remove.
16267         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
16268         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
16269         (replace_insns): Remove.
16270         (count_or_remove_death_notes): New.
16271         (verify_flow_info): Abort on error after all checks.
16272         (remove_edge): Decrement n_edges.
16273         (remove_fake_edges): Tweak format.
16274         * haifa-sched.c (schedule_insns): Use split_all_insns.
16275         * output.h (update_life_info): Remove declaration.
16276         * recog.c (split_all_insns): From the corpse of split_block_insns,
16277         do the whole function block by block.  Use update_life_info.
16278         (recog_last_allowed_insn): New.
16279         (recog_next_insn): Mind it.
16280         (peephole2_optimize): Set it.  Walk backwards through blocks.
16281         Use update_life_info.
16282         * rtl.h (update_flow_info, replace_insns): Remove declarations.
16283         (split_all_insns): Declare.
16284         * toplev.c (rest_of_compilation): Thread prologue before flow2.
16285         Use split_all_insns.
16286
16287         * i386.md (or -1 peep2s): Disable.
16288
16289 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
16290
16291         * config/mips/mips.md (movstrsi+[123]) : Combine these into
16292         a single pattern.  Scrap the 'd' versions as unnecessary.
16293
16294         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
16295         tablejump_mips162,tablejump_internal4): The operands to a
16296         label_ref must be VOIDmode.
16297
16298 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16299
16300         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
16301
16302 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
16303
16304         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
16305
16306 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
16307
16308         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
16309         cache every function if ggc_p.
16310
16311 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16312
16313         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
16314         instead of copy_rtx.  Accept sequences that contain asm statements.
16315         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
16316         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
16317         orig_asm_operands_vector, copy_asm_operands_vector,
16318         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
16319         variables.
16320         * rtl.h (copy_insn, copy_insn_1): Declare.
16321
16322 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16323
16324         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
16325
16326         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
16327         arguments to `current_file_function_operand'.
16328
16329         * genrecog.c: Include hard-reg-set.h and resource.h in the
16330         generated output file.
16331
16332         * real.c: Include tm_p.h.
16333
16334 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16335
16336         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
16337         output operand.
16338
16339 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
16340
16341         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
16342         before the fctiwz insn.
16343
16344 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16345                           Mark Mitchell  <mark@codesourcery.com>
16346
16347         * tree.c (make_lang_type_fn): New funtion pointer.
16348         (make_lang_type): Call it.
16349         * tree.h (make_lang_type): Declare.
16350         (make_lang_type_fn): Likewise.
16351         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
16352
16353 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
16354
16355         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
16356         make sure that HIGH instructions are copied into BASE_REGS.
16357
16358 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
16359
16360         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
16361
16362 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
16363
16364         * c-decl.c (finish_struct): Use simpler method of
16365         removing elements of a singly-linked list.
16366
16367 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
16368
16369         * alpha.md (peephole2's): Comment out peephole2's that generate
16370         buggy code.
16371
16372 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
16373
16374         * genrecog.c (add_to_sequence): Disable mode check for
16375         wildcard matches.
16376
16377 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16378
16379         * ggc-simple.c (init_ggc): Set empty_string.
16380
16381 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
16382
16383         * configure.in: Detect mmap.  Add --with-gc=foo to select
16384         garbage collector; default to page if mmap available.
16385         * Makefile.in (GGC): Substitute.
16386
16387 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
16388
16389         * c-decl.c (ggc_p): Enable.
16390
16391 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16392
16393         * flow.c (verify_flow_info): Make it extern & unconditionally define.
16394
16395 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
16396
16397         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
16398         string for little-endian-data.
16399
16400 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
16401
16402         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
16403         case somebody tries to compile --enable-checking code with gcc
16404         1.34 or such.
16405
16406 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
16407
16408         * genrecog.c (add_to_sequence): Verify operand to label_ref is
16409         VOIDmode.
16410
16411 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
16412
16413         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
16414         * jump.c (jump_optimize_1): Document why.
16415
16416 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16417
16418         * collect2.c (scan_prog_file, scan_libraries): Prototype function
16419         pointers and casts for `int_handler' and `quit_handler'.
16420
16421         * flow.c (verify_flow_info, split_hard_reg_notes,
16422         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
16423         remove_edge, remove_fake_successors): Add static prototypes.
16424         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
16425         (mark_set_1): Initialize variable `regno'.
16426         (unlink_insn_chain): Likewise for variable `curr'.
16427         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
16428
16429         * loop.c (strength_reduce): Initialize variable
16430         `unrolled_insn_copies'.
16431         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
16432         prototypes.  Change these functions to take const PTR parameters
16433         to avoid prototype conflict when used as the comparson argument
16434         for qsort.
16435         (check_dbra_loop): Initialize variable `comparison_val'.
16436
16437         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
16438         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
16439         (find_valid_class): Initialize variable `best_class'.
16440         (find_reloads): Call memcpy, not bcopy.
16441
16442         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
16443         (hard_reg_use_compare): Don't needlessly cast away const.
16444         (reload_reg_class_lower): Likewise.
16445         (choose_reload_regs): Initialize variable `regno'.
16446
16447 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
16448
16449         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
16450
16451 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
16452
16453         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
16454         ({,d}discard): Add forward declarations.  Declare parameter as
16455         unused.
16456         (main_without_main): Explicitly declare return type to be int.
16457         (memcpy): Properly declare.
16458
16459         * libgcc2.c (toplevel): If inhibit_libc is defined and not
16460         building the trampoline support, declare malloc, free, and
16461         atexit.
16462         (__clear_cache): Mark arguments as potentially unused.
16463
16464         * frame.c (toplevel): If inhibit_libc is defined, declare
16465         malloc and free.
16466
16467 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
16468
16469         * flow.c (make_edge): Accept an optional 2D bitmap in which
16470         to cache edge existence.  Update all callers.
16471         (make_label_edge, make_eh_edge): Pass through the edge cache.
16472         (make_edges): Provide the cache.
16473
16474 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16475
16476         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
16477         a char*.
16478         (local_mbtowc): Change the type of variable `i' from int to size_t.
16479
16480         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
16481         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
16482
16483 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
16484
16485         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
16486         after other includes that define the appropriate types.  Include
16487         tm_p.h for getting user prototypes.
16488         * ggc-callbacks.c (toplevel): Ditto.
16489         * ggc-none.c (toplevel): Ditto.
16490         * gcc-page.c (toplevel): Ditto.
16491         * ggc-simple.c (toplevel): Ditto.
16492
16493 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
16494                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
16495
16496         * config/mips/mips.c (mips_move_2words): Split doubles if
16497         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
16498
16499 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
16500
16501         * genrecog.c (struct decision_test): New.
16502         (struct decision): Remove test-related members, sort the rest by size.
16503         (IS_SPLIT): Simplify.
16504         (new_decision, new_decision_test): New.
16505         (add_to_sequence): Use them.  No special handling for args of
16506         non-MATCH codes.
16507         (maybe_both_true): Renamed from not_both_true; return sense changed.
16508         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
16509         of maybe_both_true and adjusted for decision_test.
16510         (position_merit): Remove.
16511         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
16512         (merge_accept_insn): New, broken out of merge_trees.
16513         (merge_trees): Use them.  No special case for c_test; no node
16514         splitting; use test type instead of position_merit.
16515         (factor_tests): New.
16516         (simplify_tests): New.
16517         (break_out_subroutines): Don't write code now.
16518         (find_afterward): New.
16519         (write_afterward, write_switch, write_cond): New.
16520         (write_action, is_unconditional): New.
16521         (write_node): New.  Use them.
16522         (write_tree_1): Rewrite.  Use the new functions above.
16523         (write_tree): Remove afterward processing.
16524         (write_subroutine): Simplify function variant emission.
16525         (write_subroutines): New.
16526         (same_codes, clear_codes): Remove.
16527         (same_modes, clear_modes): Remove.
16528         (write_header): New, broken out of main.
16529         (make_insn_sequence): Use new_decision and new_decision_test.
16530         (process_tree): New, broken out of main.
16531         (main): Adjust for merge_trees interface change.
16532         Don't #define operands in the output file.
16533         (record_insn_name): New, broken out of make_insn_sequence.
16534         (debug_decision_2, debug_decision_1, debug_decision_0): New.
16535         (debug_decision): New.
16536
16537 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
16538
16539         * resource.c (find_free_register): Mark class_str argument const.
16540         * resource.h: Update prototype to match.
16541
16542         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
16543         * i386.md: Give all anonymous insns names.
16544
16545 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
16546
16547         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
16548         blocks.
16549
16550 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
16551
16552         * toplev.c (dbr_sched_time): Unconditional.
16553         (peephole2_time): New.
16554         (compile_file): Add pass numbers to all of the dump file suffixes.
16555         Dump peephole2_time.  Don't dump times for non-applicable passes.
16556         (rest_of_compilation): Add pass numbers to dump file suffixes.
16557         Conditionalize calls to the scheduler.
16558         * invoke.texi: Update.
16559
16560 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
16561
16562         * flow.c (make_edges): Fix insn iteration.
16563         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
16564         (find_basic_blocks_1): Fix spelling mistake.
16565
16566 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
16567
16568         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
16569         always have side-effects.  Use memset not bzero.
16570         (make_node): Likewise.
16571
16572 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
16573
16574         * stmt.c (expand_anon_union_decl): When any of the elements of the
16575         union is addressable, so is the entire union.
16576
16577 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
16578
16579         * sbitmap.c (sbitmap_ones): Don't set too many bits.
16580
16581         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
16582         * bitmap.c (bitmap_operation): Return true iff TO changed.
16583         (bitmap_equal_p): New.
16584         (bitmap_bit_p): Tidy arithmetic.
16585         (debug_bitmap_file): Likewise.
16586
16587 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
16588
16589         * toplev.c (rest_of_compilation): Turn on cse_not_expected
16590         before cse2 instead of after.
16591
16592 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
16593
16594         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
16595         register offsets.
16596
16597 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16598
16599         * cppinit.c (is_idchar initializer): Loosen tests to accept
16600         gcc 2.>6 and >2.
16601
16602 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
16603
16604         * mips.md: Define conditional move patterns for floating point
16605         operands and DI mode conditions.
16606
16607 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
16608
16609         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
16610         always have side-effects.
16611
16612 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
16613
16614         * mn10200.c (asm_file_start): Fix typo.
16615
16616         * cppinit.c (is_idchar initializer): Tighten tests for when
16617         to put the table into initialized memory.
16618
16619         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
16620         not an array of rtunion.
16621         * gcc-page.c (ggc_alloc_rtvec): Similarly.
16622         * gcc-simple (ggc_free_rtvec): Similarly.
16623
16624         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
16625         of rtunions.
16626
16627         * mbchar.h: Add missing #endif.
16628
16629         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
16630         (FPBIT, DPBIT): Define.
16631
16632 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16633
16634         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
16635
16636         * profile.c (instrument_arcs, output_gcov_string,
16637         tablejump_entry_p): Add static prototypes.
16638         (output_gcov_string): Constify a char*.
16639
16640         * regmove.c (replacement_quality, fixup_match_2): Add static
16641         prototypes.
16642
16643         * resource.h (reg_dead_p): Add extern prototype.
16644
16645         * rtl.c (trim_filename): Add static prototype.
16646
16647         * scan-decls.c (skip_to_closing_brace): Likewise.
16648
16649         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
16650         (expand_end_case): Initialize variable `range'.
16651         (emit_case_nodes): Remove unused prototype `rtx_fn'.
16652
16653         * varasm.c (asm_emit_uninitialised): Add static prototype.
16654         (asm_emit_uninitialised, assemble_variable): Mark parameter with
16655         ATTRIBUTE_UNUSED.
16656
16657 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16658
16659         * cpplib.c (if_directive_nameo): Add static prototype.
16660
16661         * cse.c (cse_insn): Remove unused variable `p'.
16662
16663         * except.c (create_rethrow_ref, push_entry,
16664         receive_exception_label, new_eh_region_entry, find_func_region,
16665         clear_function_eh_region, process_nestinfo): Add static prototypes.
16666         (get_reg_for_handler): Hide definition.
16667         (process_nestinfo): Initialize variable `extra_handlers'.
16668
16669         * expr.h (expand_builtin_longjmp): Add extern prototype.
16670
16671         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
16672
16673         * function.c (prepare_function_start): Likewise.
16674         (pop_function_context_from): Mark parameter `context' with
16675         ATTRIBUTE_UNUSED.
16676         (push_temp_slots_for_block, flush_addressof): Hide definition.
16677
16678         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
16679         solve_program_flow_graph, calculate_branch_probs,
16680         function_summary, main, fancy_abort): Add prototypes.
16681
16682         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
16683         (add_hash): Constify a char*.
16684
16685         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
16686         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
16687         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
16688
16689         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
16690
16691         * lists.c (free_list, zap_lists): Likewise.
16692
16693 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16694
16695         * alias.c (nonlocal_reference_p): Add static prototype.
16696
16697         * bitmap.c (bitmap_element_allocate): Prototype args in function
16698         pointer cast.
16699
16700         * builtins.c (stabilize_va_list): Add static prototype.
16701         (expand_builtin_va_arg): Constify a char*.
16702
16703         * c-lex.c (getch, put_back, extend_token_buffer_to,
16704         read_line_number, token_getch, token_put_back): Add static
16705         prototypes.
16706
16707         * c-parse.gperf (hash, is_reserved_word): Likewise.
16708
16709         * cccp.c (is_dir_separator): Likewise.
16710
16711 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16712
16713         * graph.h: New file to prototype functions exported by graph.c.
16714
16715         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
16716
16717         * graph.c: Include graph.h.
16718
16719         * toplev.c: Likewise.  Remove redundant prototypes.
16720
16721 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
16722
16723         * invoke.texi: Removed duplicated description for -Q.
16724
16725 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
16726
16727         * extend.texi: Grammar fix in __extension__ text.
16728
16729 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
16730
16731         * md.texi (define_peephole2): New section.
16732
16733 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
16734
16735         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
16736         (mov $-1 to or peepholer): Enable for pentium when optimizing for
16737         speed.
16738
16739 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
16740
16741         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
16742
16743 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
16744
16745         * i386.md (ffs expander): Emit Pentium friendly code for
16746         TARGET_PENTIUM.
16747
16748 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
16749
16750         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
16751         for non-trees.
16752         (build1): Likewise.
16753
16754 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16755
16756         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
16757
16758 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
16759
16760         * config/m68k/m68k.c (use_return_insn): Return false if the pic
16761         register is in use.
16762
16763 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16764
16765         * md.texi (No Constraints): Delete section.
16766         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
16767         * final.c (final_scan_insn): We always have register constraints.
16768         * genattrtab.c: Don't include "insn-config.h".
16769         (write_attr_case): We always have register constraints.
16770         * genconfig.c (register_constraint_flag): Delete.
16771         (walk_insn_part): Don't check whether we have register constraints.
16772         (main): Don't write out "#define REGISTER_CONSTRAINTS".
16773         * genoutput.c (have_constraints): Delete.
16774         (main): Don't set it.
16775         (output_operand_data): We always have constraints.
16776         (scan_operands): Likewise.
16777         (compare_operands): Likewise.
16778         * local-alloc.c (block_alloc): We always have constraints.
16779         (requires_inout): Always compile this function.
16780         * recog.c (extract_insn): We always have constraints.
16781         (constrain_operands, reg_fits_class_p): Always compile these
16782         functions.
16783         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
16784         fields.
16785         (struct insn_operand_data): Likewise.
16786         * regclass.c (regclass): We always have constraints.
16787         (record_reg_classes, copy_cost, record_address_regs,
16788         auto_inc_dec_reg_p): Always compile these functions.
16789         * regmove.c (regmove_optimize): We always have constraints.
16790         * reload.c (find_reloads): Likewise.
16791         * reload1.c (reload): Likewise.
16792         (reload_cse_simplify_operands): Likewise.
16793         * i860.c (output_delay_insn): Likewise.
16794
16795 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
16796
16797         * iris6.h (BUILD_VA_LIST_TYPE): Define.
16798
16799 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16800
16801         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
16802         for the va_list record.
16803
16804 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
16805
16806         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
16807         prologues.
16808
16809 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
16810
16811         * alias.c: Include insn-flags.h.
16812         * Makefile.in (alias.o): Update.
16813
16814 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
16815
16816         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
16817         to LTU and GEU.  Handle more cases using sbb.
16818
16819 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
16820
16821         * i386.md (truncatexfdf splitters): Do not use subreg.
16822         (fop XFmode patterns): Fix mode in operand testing.
16823
16824 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
16825
16826         * jump.c (jump_optimize_1): Amend last change to test only the
16827         form of the operand, not the insn.
16828
16829         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
16830         not register_operand to determine when B may need preloading.
16831
16832 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
16833
16834         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
16835         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
16836         (call-value patterns): Move to end of file.
16837         (*): Remove mode from label_ref in (pc) context.
16838         (movstrqi): Use memory not general_operand for BLKmode operands.
16839         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
16840         to register_operand operands.
16841         (peep2 patterns): Convert from commented-out peephole patterns.
16842
16843 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16844
16845         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
16846         to BUILT_IN_INIT_DWARF_REG_SIZES.
16847         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
16848         Renamed from BUILT_IN_DWARF_REG_SIZE; call
16849         expand_builtin_init_dwarf_reg_sizes.
16850         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
16851         with __builtin_init_dwarf_reg_size_table.
16852         * dwarf2out.c (struct reg_size_range): Delete.
16853         (expand_builtin_init_dwarf_reg_sizes): New function.
16854         (expand_builtin_dwarf_reg_size): Delete.
16855         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
16856         (expand_builtin_dwarf_reg_size): Don't declare.
16857         * libgcc2.c (dwarf_reg_size_table_initialized): New.
16858         (dwarf_reg_size_table): New.
16859         (init_reg_size_table): New function.
16860         (copy_reg): Use dwarf_reg_size_table.
16861         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
16862         before use.
16863
16864 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
16865
16866         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
16867         Correctly build argument list to constructor and destructor functions.
16868
16869 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
16870
16871         * c-tree.h (warn_float_equal): Declare.
16872         * c-decl.c (warn_float_equal): Define.
16873         (c_decode_option): Recognize -W[no-]float-equal.
16874         * c-typeck.c (build_binary_op): Conditionally warn
16875         about equality tests of floating point types.
16876         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
16877         * invoke.texi: Add docs for -Wfloat-equal warning.
16878
16879 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
16880
16881         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
16882         generating RTL directly.
16883         * mips.h (INIT_TARGET_OPTABS): Likewise.
16884         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
16885
16886         * expr.h (init_mov_optab): Delete declaration
16887
16888         * h8300.c (WORD_REG_USED): Update to avoid useless register
16889         saves in interrupt functions and functions which never return.
16890
16891         * cse.c (struct set): Delete inner_dest_loc field.
16892         (cse_insn): Remove assignments to inner_dest_loc field.
16893
16894 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
16895
16896         * ggc-page.c: Don't include <unistd.h> etc taken care of
16897         by "system.h".  Include <sys/mman.h> afterward.
16898
16899 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
16900
16901         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
16902         ggc_alloc_string.
16903
16904 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
16905
16906         * xcoffout.c (xcoffout_declare_function): Add documentation.
16907         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
16908         TARGET_64BIT.  Compare constant to -1, not bit pattern.
16909         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
16910         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
16911         gen_movsi typos.
16912
16913 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
16914
16915         * dwarf2out.c (add_abstract_origin_attribute): Abort if
16916         origin_die is NULL.
16917         (gen_inlined_enumeration_type_die): Do not abort if the type has
16918         not been writeen out.
16919         (gen_inlined_structure_type_die): Do not abort if the type has
16920         not been writeen out.
16921         (gen_inlined_union_type_die): Do not abort if the type has
16922         not been writeen out.
16923         (gen_tagged_type_instantiation_die): Do not abort if the type
16924         has not been written out.
16925
16926 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16927
16928         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
16929         call it.
16930         * reg-stack.c (straighten_stack): Copy hard reg set with
16931         COPY_HARD_REG_SET.
16932
16933 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
16934
16935         * builtins.c (stabilize_va_list): Stabilize array type va_list
16936         to a pointer type, not the base record type.
16937         (expand_builtin_va_copy): Dereference the pointers explicitly;
16938         use the correct size for the copy.
16939
16940         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
16941         (rs6000_va_arg): Likewise.
16942
16943 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
16944
16945         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
16946
16947 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
16948
16949         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
16950         field.
16951         (DECL_BUILT_IN_CLASS): Adjust accordingly.
16952
16953 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
16954
16955         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
16956         (init_ggc): Use it instead of a constant.
16957         (ggc_collect): Bound allocated_last_gc by it.
16958
16959 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
16960
16961         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
16962         with va_list.
16963
16964 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
16965
16966         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
16967         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
16968         * configure:  Regen.
16969         * config/mips/openbsd.h:  New, OpenBSD little endian target.
16970         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
16971         * config/mips/xm-openbsd.h:  New, OpenBSD host.
16972
16973 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
16974
16975         * config/m68k/m68k.c (output_function_prologue,
16976         output_function_epilogue): Use
16977         current_function_uses_pic_offset_table instead of regs_ever_live
16978         to decide whether to save/restore pic register.
16979         (legitimize_pic_address): Don't modify regs_ever_live any more.
16980
16981 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
16982
16983         * function.h (struct function): Add x_dont_save_pending_sizes_p.
16984         * stor-layout.c (variable_size): Don't add sizes to the pending
16985         sizes list if x_dont_save_pending_sizes_p is set.
16986
16987 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
16988
16989         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
16990         for symbolic_operand().
16991         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
16992
16993 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16994
16995         * combine.c (gen_rtx_combine): Add missing call to va_end().
16996
16997         * final.c (asm_fprintf): Likewise.
16998
16999         * genattrtab.c (attr_rtx): Likewise.
17000
17001 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
17002
17003         * cse.c: Update comments.
17004         (cse_insn): When converting a conditional/computed jump into
17005         an unconditional jump, always make sure a BARRIER immediately
17006         follows the converted jump.  Do not delete unreachable code.
17007         (cse_basic_block): Do not delete unreachable code.
17008         * toplev.c (rest_of_compilation): Move call to
17009         delete_trivially_dead_insns after the conditional call to
17010         jump_optimize.
17011
17012 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17013
17014         * collect2.c (make_temp_file): Don't prototype.
17015
17016         * gcc.c (make_temp_file): Likewise.
17017
17018         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
17019
17020 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
17021
17022         * varasm.c (asm_emit_uninitialised): New function: Generate
17023         the assembler statements necessary to declare an uninitialised
17024         variable.
17025         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
17026         variable.
17027         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
17028         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
17029         section.
17030         (assemble_variable): Use asm_emit_uninitialised to emit an
17031         uninitialised variable.
17032
17033 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
17034
17035         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
17036         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
17037         <geoffk@cygnus.com>.
17038
17039 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17040
17041         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
17042         * c-common.h (builtin_function): Don't declare.
17043
17044         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
17045         DECL_BUILT_IN.
17046         (pushdecl): Likewise.
17047         (finish_decl): Likewise.
17048         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
17049         int.  All callers changed.
17050         Set the builtin's DECL_BUILT_IN_CLASS.
17051         * tree.h (enum built_in_class): New.
17052         (enum built_in_function): Delete NOT_BUILT_IN.
17053         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
17054         in a union.
17055         (DECL_SET_FUNCTION_CODE): Likewise.
17056         (DECL_BUILT_IN_CLASS): New macro.
17057         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
17058         (struct tree_decl): Split builtin function code field into a
17059         struct.
17060         (builtin_function): Declare.
17061
17062 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
17063
17064         * optabs.c (init_traps): Fix typo in last change.
17065
17066 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
17067
17068         * toplev.c (rest_of_decl_compilation): Update comment.
17069
17070 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
17071
17072         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
17073         in .sbss if appropriate.
17074         (EXTRA_SECTION_FUNCTIONS): Add sbss.
17075         (SBSS_SECTION_ASM_OP): New macro.
17076         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
17077         (EXTRA_SECTIONS): Add in_sbss.
17078         * config/mips/mips.h: Prototype sbss_section.
17079
17080 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
17081
17082         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
17083         to disappear.
17084
17085 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
17086
17087         * optabs.c (init_traps): Register trap_rtx as a GC root.
17088
17089 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17090
17091         * config/mips/mips.c (function_arg_pass_by_reference): Define
17092         unconditionally, since it's called unconditionally.
17093
17094 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
17095
17096         * toplev.c (documented_lang_options): Add -fshort-wchar.
17097         * c-decl.c (c_decode_option): Likewise.
17098         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
17099         for wchar_t.
17100         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
17101         * gcc.c (default_compilers): If -fshort-wchar,
17102         override __WCHAR_TYPE__.
17103         * tm.texi (C Dialect Options): Add -fshort-wchar.
17104
17105         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
17106         symbol for a variable.
17107
17108         * cpplib.h (CPP_PREPROCESSED): New macro.
17109         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
17110         we're seeing this input for a second time.
17111
17112 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
17113
17114         * emit-rtl.c (init_emit_once): Initialize modes first.
17115
17116 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
17117
17118         * config/i386/i386.c (pic_label_name): Change to char pointer.
17119         (global_offset_table): New variable.
17120         (load_pic_register): Fill global_offset_table if it hasn't
17121         already been done.  Allocate pic_label_name dynamically.
17122         * ggc.h (empty_string): New variable.
17123         * ggc-simple.c (empty_string): Likewise.
17124         (init_ggc): Allocate empty_string and add as root.
17125         * stmt.c (digit_strings): New variable.
17126         (init_stmt): Add last_block_end_note as root.  Allocate and
17127         initialize digit_strings.
17128         (expand_asm_operands): Use empty_string instead of string
17129         constant.  Use digit_strings instead of string constants.
17130         * profile.c (init_arc_profiler): Allocate string with
17131         ggc_alloc_string instead of xmalloc.
17132         (output_func_start_profiler): Likewise.
17133         * c-typeck.c (digest_init): Check if init is error_mark_node.
17134
17135 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
17136                           Richard Henderson  <rth@cygnus.com>
17137
17138         * ggc-page.c: New file.
17139         * Makefile.in (ggc-page.o): New.
17140
17141 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
17142
17143         * invoke.texi: Document -fdelete-null-pointer-checks
17144         * toplev.c (flag_delete_null_pointer_checks): New.
17145         (f_options): Add entry for -fdelete-null-pointer-checks.
17146         (rest_of_compilation): Conditionalize null pointer check
17147         elimination on flag_delete_null_pointer_checks.
17148         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
17149
17150 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
17151
17152         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
17153         copyright notice and special exception to GPL.
17154
17155 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17156
17157         * abi64.h (mips_function_value): Add prototype arguments.
17158
17159         * mips-protos.h: New file with mips prototypes.
17160
17161         * mips.c: Include "tm_p.h".
17162         (mktemp, lookup_name): Add prototype arguments.
17163         (extern_list, string_constant, mips_fill_delay_slot,
17164         mips_output_external, mips_output_external_libcall,
17165         mips_output_filename, mips_declare_object, function_prologue,
17166         mips_expand_prologue, function_epilogue, mips16_constant,
17167         build_mips16_function_stub, mips_output_conditional_branch):
17168         Constify a char*.
17169         (mips_va_start): Remove unused variable `u'.
17170         (mips_va_arg): Cast value to unsigned when comparing against one.
17171         (trace): Delete.
17172         (save_restore_insns, mips_expand_prologue): Add missing arg in
17173         call to `large_int'.
17174
17175         * mips.h: Move prototypes to mips-protos.h.
17176         (data_section, memory_address_p, rdata_section,
17177         readonly_data_section, simple_epilogue_p, text_section): Delete
17178         prototypes delcared elsewhere.
17179         (mips_epilogue_delay_slots, print_options): Delete unused decls.
17180         (trace): Delete.
17181         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
17182
17183         * mips.md: Delete extra args in call to `mips_move_2words'.
17184
17185         * xm-iris6.h (alloca): Add prototype argument.
17186
17187         * genpeep.c: Include "tm_p.h" in generated output file.
17188
17189 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17190
17191         * basic-block.h (find_edge_index): Change parameters.
17192         * flow.c (verify_edge_list): Pass basic_block parameters to
17193         find_edge_index instead of integers.
17194
17195 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
17196
17197         * combine.c (simplify_comparison): Use an unsigned shift to adjust
17198         the constant.
17199
17200 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
17201
17202         * gcc.1: Fix a formatting error.
17203
17204 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
17205
17206         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
17207         i786, mn10200, mn10300, pdp11, v850.
17208
17209 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
17210
17211         * libgcc2.c (num_digits): Add prototype with
17212         __attribute__((const)).
17213         (__terminate): Add prototype.
17214
17215 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
17216
17217         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
17218
17219         * alpha/alpha.c (print_operand): Fix type of `code'.
17220         (alpha_output_filename): Constify.
17221         * alpha/alpha.h: Move all function declarations ...
17222         * alpha/alpha-protos.h: ... here.  New file.
17223         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
17224         (SECTION_FUNCTION_TEMPLATE): Likewise.
17225
17226 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17227
17228         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
17229         * expr.c (expand_expr): Likewise.
17230         (do_jump): Likewise.
17231         (do_store_flag): Pass ccp_store_flag to can_compare_p.
17232         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
17233         accessor macros.
17234         (enum can_compare_purpose): New.
17235         (can_compare_p): Adjust prototype.
17236         (prepare_cmp_insn, prepare_operand): Declare.
17237         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
17238         * optabs.c (cmp_available_p): Deleted.
17239         (expand_abs): Pass ccp_jump to can_compare_p.
17240         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
17241         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
17242         Call can_compare_p rather than cmp_available_p.
17243         (prepare_operand): No longer static.
17244         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
17245         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
17246         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
17247         sequence to use emit_cmp_and_jump_insns.
17248         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
17249
17250 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
17251
17252         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
17253         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
17254         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
17255         (plus (reg) (const_int 0))
17256         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
17257
17258 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
17259
17260         * rs6000.c (expand_block_move): DImode loads and stores require
17261         word-aligned displacements.  Increment address registers with
17262         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
17263
17264 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
17265
17266         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
17267         is no name for the base type, rather than segfault.  If we are
17268         writing out a complex integer type, use DW_ATE_lo_user.
17269
17270         * expr.c (emit_move_insn_1): If we are copying a complex that fits
17271         in one word or less (complex char, complex short, or on 64 bit
17272         systems complex float) to/from a hard register, copy it through
17273         memory instead of dying in gen_{real,imag}part.  If we have a
17274         short complex type, prevent inlining since it allocates stack
17275         memory.
17276
17277         * tree.c (build_complex_type): If we are writing dwarf2 output,
17278         generate a name for complex integer types.
17279
17280 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17281
17282         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
17283         * flow.c (remove_edge): Remove extra whitespace.
17284         (remove_fake_edges): Fix comment.
17285         (add_noreturn_fake_exit_edges): Use the correct name.
17286
17287 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
17288
17289         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
17290         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
17291         (clean): Depend on INTL_CLEAN.
17292         (maintainer-clean): Adjust.
17293
17294 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17295
17296         * configure.in (AC_PREREQ): Bump to 2.13.
17297         (AC_C_STRINGIZE): Call this instead of using a custom macro.
17298
17299         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
17300
17301         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
17302
17303         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
17304
17305         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
17306         (HAVE_STRINGIZE): Define.
17307
17308 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
17309
17310         * c-parse.in: save and restore warn_pointer_arith on __extension__
17311         along with pedantic.
17312         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
17313         Set the type of extension to itype rather than $<itype>1 kludge.
17314         * extend.texi (Alternate Keywords): Adjust documentation.
17315         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
17316
17317 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
17318
17319         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
17320         most assembler templates.
17321
17322         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
17323         FP loads and stores.
17324         (following_call): Always return zero for the PA8000.
17325         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
17326         FP loads and stores.
17327         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
17328
17329         * pa.h (BRANCH_COST): Define.
17330
17331         * pa.md (return, return_internal): Use bve for PA2.0.
17332
17333         * pa.md (fused multiply): Add variants which reduce height for the
17334         fused multiply, but which still generate 2 insns.
17335         (fnegabs): Similarly.
17336
17337         * pa.md (subsi3): Turn into an expander.  Create two anonymous
17338         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
17339         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
17340
17341         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
17342         for TARGET_PA_20.
17343         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
17344         code generation.
17345         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
17346         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
17347
17348         * regclass.c (init_regs): Add "top_of_stack" as a garbage
17349         collection root.
17350
17351         * flow.c (record_active_eh_regions): Terminate loop after finding
17352         the last insn in the last basic block.
17353
17354 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17355
17356         * config/c4x/c4x.md: Delete parallel instruction peepholes.
17357
17358 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17359
17360         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
17361
17362 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17363
17364         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
17365         splitting to not use output template.
17366
17367 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17368
17369         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
17370         * config/c4x/c4x.c (c4x_va_start): New function.
17371
17372 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
17373
17374         * genrecog.c (not_both_true): Handle correctly cases when called for
17375         tests with different positions in the insn.
17376
17377 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17378
17379         * machmode.h (HOST_PTR_PRINTF): Move from here ...
17380
17381         * system.h (HOST_PTR_PRINTF): ... to here.
17382
17383         * mips-tfile.c: Don't include machmode.h.
17384
17385         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
17386         (mips-tfile.o): Don't depend on machmode.h.
17387
17388 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17389
17390         * haifa-sched.c (sched_analyze): Rename local variable `region' to
17391         avoid conflicts with typedef struct `region' at the top level scope.
17392
17393 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
17394
17395         * basic-block.h (basic_block): Add eh_beg, eh_end.
17396         * flow.c (entry_exit_blocks): Update.
17397         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
17398         Call new functions.
17399         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
17400         lists.c functions to allocate insn lists.
17401         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
17402         edge creation ...
17403         (make_eh_edge): ... here.  New.
17404         (move_stray_eh_region_notes): New.
17405         (record_active_eh_regions): New.
17406         (delete_unreachable_blocks): Split out block merging ...
17407         (try_merge_blocks): ... here.  New.
17408         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
17409         Dump debugging data.
17410         (merge_blocks_move_successor_nojumps): Likewise.
17411         (merge_blocks): Use eh_beg+eh_end to validate block movement.
17412
17413 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
17414
17415         * extend.texi (Bound member functions): Document unbound pmf
17416         conversion.
17417
17418 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17419
17420         * flow.c (split_edge): Handle insertion on a fallthrough edge which
17421         has the EXIT_BLOCK as a dest.
17422
17423 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17424
17425         * flow.c (remove_edge): New function to remove an edge from the
17426         flow graph.
17427         (remove_fake_successors): New function to remove fake successor edges.
17428         (remove_fake_edges): New function to remove all fake edges from the
17429         flow graph.
17430         (add_fake_exit_edges): New function to add fake edges from all blocks
17431         with no successors to the exit block.
17432         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
17433         prototypes for new functions.
17434
17435 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
17436
17437         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
17438         Use Pmode to determine whether to output .dword or .word.
17439
17440 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
17441
17442         * tree.c (built_in_filename): New variable.
17443         (BUILT_IN_FILENAME): New macro.
17444         (init_tree_codes): Allocate built_in_filename.
17445         (make_node): Use built_in_filename instead of string constant.
17446
17447 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
17448
17449         * configure.in: Add fr30 target.
17450         * configure: Regenerate.
17451         * config/fr30: New directory.
17452         * config/fr30/crti.asm: New file.
17453         * config/fr30/fr30.c: New file.
17454         * config/fr30/crtn.asm: New file.
17455         * config/fr30/fr30.h: New file.
17456         * config/fr30/fr30.md: New file.
17457         * config/fr30/lib1funcs.asm: New file.
17458         * config/fr30/t-fr30: New file.
17459         * config/fr30/xm-fr30.h: New file.
17460
17461 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
17462
17463         * flow.c (merge_blocks_move_successor_nojumps): Delete the
17464         BARRIER at the end of the successor, not the BARRIER before
17465         the successor.
17466
17467         * pa.c (pa_add_gc_roots): Fix thinko in last change.
17468
17469 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
17470
17471         * stmt.c (any_pending_cleanups): Don't crash when
17472         current_function->stmt is unset.
17473
17474 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17475
17476         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
17477         other initializations that may use it for relative offsets.
17478
17479 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17480
17481         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
17482         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
17483         * config/i386/sol2dbg.h: Removed.
17484         * config/i386/sol2gas.h: New file, to enable gas work-around.
17485         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
17486         Don't use sol2dbg.h.
17487         * configure: Rebuilt.
17488
17489 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
17490
17491         * invoke.texi (-fthis-is-variable): Remove documentation.
17492
17493 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
17494
17495         * basic-block.h (compute_bb_for_insn): Declare.
17496         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
17497         to use; set size of basic_block_for_insn directly.
17498         (find_basic_blocks): Update.
17499
17500 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17501
17502         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
17503
17504 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17505
17506         * crtstuff.c (ON_EXIT): Delete empty macro definition.
17507         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
17508
17509 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
17510
17511         * c-decl.c (c_decode_option): Extend comment.
17512
17513 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
17514
17515         * toplev.c (progname): Make 'const char *'
17516         (flag_print_mem): Move out of main.
17517         (version_flag): Move out of main.
17518         (filename): Move out of main.
17519         (debug_args): Remove g prefix from options.
17520         (documented_lang_options): Remove cpplib specific options.
17521         (display_help): Add g prefix to debug options.
17522         (check_lang_option): Delete this function.
17523         (decode_d_option): New function: Decode -d... option.
17524         (decode_f_option): New function: Decode -f... option.
17525         (decode_W_option): New function: Decode -W... option.
17526         (decode_g_option): New function: Decode -g... option.
17527         (independent_decode_option): New function: Decode a language
17528         independent command line option.
17529         (main): Invoke lang_decode_option and then
17530         independent_decode_option on each command line option in
17531         turn.
17532
17533 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
17534
17535         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
17536          * fold-const.c (fold_range_test): Do not try to fold the range
17537          test if the rhs or lhs has side effects.
17538
17539         * basic-block.h (compute_flow_dominators): Declare.
17540
17541         * gcse.c (alloc_code_hoist_mem): New function.
17542         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
17543         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
17544         (hoist_code, one_code_hoisting_pass): Likewise.
17545         (gcse_main): If optimizing for size, then hoist expressions
17546         computed in multiple dominated basic blocks.
17547
17548         * gcse.c (invalid_nonnull_info): New function.
17549         (delete_null_pointer_checks): Likewise.
17550         * rtl.h (delete_null_pointer_checks): Declare.
17551         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
17552
17553         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
17554         (merge-blocks_move_successor_nojumps): Likewise.
17555         (merge_blocks): Allow merging of some blocks, even if it requires
17556         physical movement of the blocks, but not if it requires new jumps.
17557
17558         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
17559         Callers and prototype changed.
17560         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
17561
17562 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17563
17564         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
17565         -YP when both -p and -pg are present.  From i386/sol2.h.
17566
17567 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17568
17569         * Makefile.in (distclean): Delete tm_p.h.
17570         * configure.in: Create a new file, "tm_p.h", from a list in
17571         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
17572         "i386/i386-protos.h".
17573
17574         * alias.c: Include "tm_p.h".
17575         * c-typeck.c: Likewise.
17576         * calls.c: Likewise.
17577         * cse.c: Likewise.
17578         * emit-rtl.c: Likewise.
17579         * explow.c: Likewise.
17580         * expmed.c: Likewise.
17581         * expr.c: Likewise.
17582         * final.c: Likewise.
17583         * flow.c: Likewise.
17584         * fold-const.c: Likewise.
17585         * function.c: Likewise.
17586         * gcse.c: Likewise.
17587         * global.c: Likewise.
17588         * haifa-sched.c: Likewise.
17589         * integrate.c: Likewise.
17590         * jump.c: Likewise.
17591         * local-alloc.c: Likewise.
17592         * loop.c: Likewise.
17593         * optabs.c: Likewise.
17594         * recog.c: Likewise.
17595         * reg-stack.c: Likewise.
17596         * regclass.c: Likewise.
17597         * regmove.c: Likewise.
17598         * reload.c: Likewise.
17599         * reload1.c: Likewise.
17600         * reorg.c: Likewise.
17601         * resource.c: Likewise.
17602         * stmt.c: Likewise.
17603         * stor-layout.c: Likewise.
17604         * toplev.c: Likewise.
17605         * tree.c: Likewise.
17606         * unroll.c: Likewise.
17607         * genattrtab.c (main): Make generated file include "tm_p.h".
17608         * genemit.c (main): Likewise.
17609         * genoutput.c (main): Likewise.
17610         * genrecog.c (main): Likewise.
17611
17612         * i386.h: Delete all prototypes.
17613         * i386.c: Include "tm_p.h".
17614         (ix86_attr_length_default): Call constant_call_address_operand
17615         with correct number of arguments.
17616         * i386-protos.h: New file.
17617         * i386.md (unnamed patterns): Call constant_call_address_operand
17618         with correct number of arguments.
17619         (exception_receiver): Call load_pic_register with correct number
17620         of arguments.
17621
17622 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
17623
17624         * c-pragma.c (mark_align_stack): Dereference the void* properly.
17625
17626 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
17627
17628         * rtl.h (insns_safe_to_move_p): New function.
17629         * loop.c (find_and_verify_loops): Use it.
17630         * rtlanal.c (insns_safe_to_move_p): Define it.
17631
17632 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
17633
17634         * c-pragma.c: Include ggc.h.
17635         * Makefile.in (c-pragma.o): Update.
17636
17637 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17638
17639         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
17640         (LIB_SPEC): Likewise.
17641         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
17642         Reindent -YP/-p/-pg.
17643         Copied from config/sparc/sol2.h.
17644
17645 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
17646
17647         * c-pragma.c (mark_align_stack): New.
17648         (init_pragma): New.
17649         * c-pragma.h (init_pragma): Declare it.
17650         * c-lex.c (init_parse): Call it.
17651
17652 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17653
17654         * configure.in: Pick up thread library on Solaris/x86 just
17655         like on Solaris/sparc.
17656         * configure: Rebuilt.
17657
17658 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
17659
17660         * rtl.h (global_rtx_index): New enum.
17661         (global_rtl): Change to array of rtx.
17662         (pc_rtx, cc0_rtx): Redefine accordingly.
17663         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
17664         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
17665         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
17666         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
17667         (const_int_rtx): Change to array of rtx.
17668         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
17669         accordingly.
17670         * emit-rtl.c (global_rtl): Change to array of rtx.
17671         (const_int_rtx): Change to aray of rtx.
17672         (gen_rtx_CONST_INT): Redefine accordingly.
17673         (init_emit_once): Allocate and initialize global_rtl.  Likewise
17674         for const_int_rtx.  Add both as GC roots.
17675         * genattrtab.c (global_rtl): Update declaration.
17676
17677 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
17678
17679         * Makefile (USER_H): Add iso646.h back.
17680
17681 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
17682
17683         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
17684         zapping the LOG_LINKS of sched_before_next_call.
17685
17686         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
17687         * pa.c (insn_refs_are_delayed): Renamed from
17688         insn_sets_and_refs_are_delayed.
17689
17690 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
17691
17692         * functiion.h (struct function): Add x_whole_function_mode_p.
17693         (retrofit_block): Declare.
17694         * function.c (retrofit_block): New function.
17695         (identify_blocks): Add assertions.  Allow an incomplete set of
17696         block notes if we're still generating code for the function.
17697         * integrate.c: Include loop.h.
17698         (expand_inline_function): Call find_loop_tree_blocks to map block
17699         notes to blocks when in whole-function mode.  Use retrofit_block
17700         to insert new BLOCKs for the inlined function, rather than
17701         insert_block.
17702         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
17703         * Makefile.in (integrate.o): Depend on loop.h.
17704
17705 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
17706
17707         * tree.h (warn_about_unused_variables): Declare.
17708         * stmt.c (warn_about_unused_variables): New function, split out
17709         from ...
17710         (expand_end_bindings): Here.
17711
17712 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
17713
17714         * stmt.c (preserve_subexpressions_p): Don't crash when
17715         current_function->stmt is unset.
17716
17717 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
17718
17719         * stmt.c (expand_start_bindings): Allow callers to pass a flag
17720         indicating that no NOTE_INSN_BLOCK_BEG note is required.
17721         (expand_start_target_temps): Use it.
17722         * except.c (expand_eh_region_start_for_decl): Likewise.
17723         * expr.c (expand_expr): Likewise.
17724
17725 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
17726
17727         * fold-const.c (operand_equal_p): Pay attention to side effects.
17728
17729 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
17730
17731         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
17732         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
17733
17734         * tlink.c (scan_linker_output): Look for keywords before accepting
17735         a mangled name in quotes.
17736
17737 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
17738
17739         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
17740         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
17741
17742 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
17743
17744         * alpha.md: Revert Thu Nov 26 change that came in through the
17745         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
17746         Avoid earlyclobber when possible.
17747
17748 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17749
17750         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
17751
17752         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
17753         Define HAVE_ON_EXIT.
17754
17755 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17756
17757         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
17758         CTYPE_CONV in all ctype macros.
17759
17760         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
17761         from system.h.
17762
17763         * cexp.y (initialize_random_junk): Likewise.
17764
17765         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
17766
17767         * i370.c (handle_pragma): Likewise.
17768
17769         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
17770
17771         * v850.c (override_options): Likewise.
17772
17773         * doprint.c (_doprnt): Likewise.
17774
17775         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
17776         Likewise.
17777
17778         * fixinc/server.c (load_data): Likewise.
17779
17780         * fold-const.c (real_hex_to_f): Likewise.
17781
17782         * genattr.c (write_upcase, gen_attr): Likewise.
17783
17784         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
17785         write_upcase): Likewise.
17786
17787         * genemit.c (print_code): Likewise.
17788
17789         * genopinit.c (gen_insn): Likewise.
17790
17791         * genpeep.c (print_code): Likewise.
17792
17793         * genrecog.c (print_code): Likewise.
17794
17795         * optabs.c (init_libfuncs): Likewise.
17796
17797 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
17798
17799         * haifa-sched.c (sched_analyze): Keep the list of notes organized
17800         in pairs.
17801         (reemit_notes): Likewise.
17802
17803 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
17804
17805         * ggc.h (ggc_root): Move to ggc-common.c.
17806         (roots): Remove.
17807         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
17808         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
17809         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
17810         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
17811         * ggc-common.c (ggc_root): Move from ggc.h.
17812         (roots): Declare, static.
17813         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
17814         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
17815         null or check/set mark bit.
17816         (ggc_mark_roots): New.
17817         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
17818
17819 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
17820
17821         * m32r.c: Include toplev.h.
17822         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
17823         (gen_compare): Rename swap_p to must_swap to match uses.
17824         Add default abort case.
17825         (m32r_output_function_epilogue): Remove unused variables.
17826         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
17827         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
17828         define to empty parameter list.  Update all uses.
17829         (predicate decls): Use enum machine_mode not int.
17830         * m32r.md (movsi): Call abort, not fatal_insn.
17831         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
17832
17833 1999-09-14  Andrew Haley  <aph@cygnus.com>
17834
17835         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
17836         use $0 instead of 0.
17837
17838 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17839
17840         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
17841         computation out of loop over hard regs.
17842
17843 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
17844
17845         * function.c (identify_blocks): Don't shadow a variable in an
17846         outer scope.
17847         * integrate.c (integrate_decl_tree): Don't use pushlevel,
17848         pushdecl, or poplevel to build up the new BLOCK tree.
17849         (expand_inline_function): Likewise.
17850         (integrate_parm_decls): Likewise.
17851
17852 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
17853
17854         * c-typeck.c (qualify_type): Merge qualifiers from both types.
17855
17856 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
17857
17858         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
17859         * invoke.texi: Document this change.
17860
17861 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
17862
17863         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
17864         Free the struct.
17865         (mark_emit_status): Renamed from mark_emit_state.
17866         * except.c (mark_eh_status): Renamed from mark_eh_state.
17867         Check not null before marking.
17868         (free_eh_status): New.
17869         * expr.c (mark_expr_status, free_expr_status): New.
17870         * function.c (free_machine_status): New.
17871         (free_after_parsing): New.
17872         (free_after_compilation): Move bits to free_after_parsing; call
17873         free_eh_status, free_expr_status; zero the marked members of the
17874         function state.
17875         (prepare_function_start): No can_garbage_collect.
17876         Call init_eh_for_function.
17877         (expand_dummy_function_end): Free up current_function state.
17878         (mark_function_status): Renamed from mark_function_state.
17879         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
17880         * function.h (struct function): No can_garbage_collect.
17881         (free_machine_status, free_after_parsing): Declare.
17882         (free_eh_status, free_expr_status): Declare.
17883         * ggc.h (mark_expr_status): Declare.
17884         * stmt.c (free_stmt_status): Free the struct.
17885         (mark_stmt_status): Renamed from mark_stmt_state.
17886         (init_stmt): Don't call init_eh.
17887         (init_stmt_for_function): Don't call init_eh_for_function.
17888         * toplev.c (compile_file): Call init_eh.
17889         (rest_of_compilation): Free basic block info before ggc_collect.
17890         Call free_after_parsing; conditionally call free_after_compilation.
17891         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
17892         Check not null before marking.
17893         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
17894
17895 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
17896
17897         * c-lex.c (yylex): Initialize warn.
17898
17899 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
17900
17901         * pa.c (emit_move_sequence): Properly set the mode of the scratch
17902         register when performing secondary reloads for the SAR register.
17903
17904 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
17905
17906         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
17907         (NOTE_BLOCK): New macro.
17908         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
17909         * function.h (identify_blocks): Change prototype.
17910         * function.c (identify_blocks): Simplify.
17911         (reorder_blocks): Likewise.
17912         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
17913         NOTE_INSN_BLOCK_{BEG,END}.
17914         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
17915         the list of saved notes if the note isn't a
17916         NOTE_INSN_BLOCK_{BEG,END}.
17917         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
17918         NOTE_BLOCK_NUMBER.
17919         (reemit_notes): Adjust recreation of notes to reflect new saved
17920         note structure.
17921         * print-rtl.c (print_rtx): Print the address of the BLOCK when
17922         printing a block note.
17923         * stmt.c (block_vector): Remove.
17924         (find_loop_tree_blocks): Simplify.
17925         (unroll_block_trees): Likewise.
17926         * tree.h (reorder_block): Change prototype.
17927
17928 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
17929
17930         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
17931         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
17932         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
17933         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
17934         (atexit, exit): Simplify.
17935         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
17936         * config/lots: Remove defns of HAVE_ATEXIT.
17937
17938 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
17939
17940         * calls.c (precompute_arguments): Fix typo in comment.
17941         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
17942         TARGET_EXPR.
17943
17944 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
17945
17946         * dsp16xx.c (override_options): Fix typos in GC root registration.
17947
17948 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
17949
17950         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
17951         from config/svr4.h.
17952         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
17953         (FUNCTION_PROFILER): Redefine appropriately for Linux.
17954         (CC1_SPEC): Likewise.
17955
17956 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17957
17958         * genattr.c (main): Add extern prototype.  Call return, not exit.
17959         * genattrtab.c (main): Likewise.
17960         * gencheck.c (main): Likewise.
17961         * gencodes.c (main): Likewise.
17962         * genconfig.c (main): Likewise.
17963         * genemit.c (main): Likewise.
17964         * genextract.c (main): Likewise.
17965         * genflags.c (main): Likewise.
17966         * gengenrtl.c (main): Likewise.
17967         * genopinit.c (main): Likewise.
17968         * genoutput.c (main): Likewise.
17969         * genpeep.c (main): Likewise.
17970         * genrecog.c (main): Likewise.
17971
17972         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
17973         * genattrtab.c (get_insn_name): Likewise.
17974         * gencodes.c (get_insn_name): Likewise.
17975         * genconfig.c (get_insn_name): Likewise.
17976         * genemit.c (get_insn_name): Likewise.
17977         * genextract.c (get_insn_name): Likewise.
17978         * genflags.c (get_insn_name): Likewise.
17979         * genopinit.c (get_insn_name): Likewise.
17980         * genpeep.c (get_insn_name): Likewise.
17981
17982         * gencheck.c (usage): Add static prototype.
17983         * genextract.c (print_path): Constify a char*.
17984         * genopinit.c (optabs): Likewise.
17985         * genoutput.c (operand_data, data, output_predicate_decls,
17986         compare_operands): Likewise.
17987         * genrecog.c (write_tree): Add default case in switch.
17988
17989 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17990
17991         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
17992
17993         * print-rtl.c (get_insn_name): Remove prototype.
17994
17995         * toplev.h (progname): Declare const.
17996
17997         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
17998         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
17999         dump_sched_info, dump_local_alloc, regset_release_memory,
18000         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
18001         error_with_file_and_line, error_with_decl, error_for_asm, error,
18002         fatal, warning_with_file_and_line, warning_with_decl, warning,
18003         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
18004         Remove redundant prototypes.
18005
18006         (notice, check_lang_option, report_file_and_line, vnotice,
18007         mark_file_stack): Add static prototype.
18008         (set_fatal_function): Add prototype.
18009         (vnotice, report_file_and_line, set_fatal_function,
18010         check_lang_option): Constify a char*.
18011         (main): Prototype.  Call return, not exit.
18012
18013 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18014
18015         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
18016
18017         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
18018
18019         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
18020
18021         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
18022
18023 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18024
18025         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
18026         behave as if it's zero in all cases.
18027         (expand_function_start): Adjust call to assign_parms.
18028         * tree.h (assign_parms): Adjust prototype.
18029         * objc/objc-act.c (hack_method_prototype): Adjust call to
18030         assign_parms.
18031
18032 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
18033
18034         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
18035         arg_pointer_rtx fixed if the argument pointer register is
18036         not fixed.
18037         (NONZERO_BASE_PLUS_P): Likewise.
18038
18039 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
18040
18041         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
18042         match_insn2 to match_insn.
18043         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
18044
18045 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
18046
18047         * Makefile.in (USER_H): Remove va-foo.h.
18048
18049         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
18050         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
18051         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
18052         va-spur.h,va-v850.h}: Remove.
18053
18054 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
18055
18056         * sparc/sparc.md (eligible_for_return_delay): New attribute.
18057         (in_return_delay): Use it instead of match_insn.
18058
18059 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18060
18061         * config/alpha/va_list.h (va-alpha.h): Do not include.
18062         (__gnuc_va_list): Typedef as in varargs.h.
18063
18064 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
18065
18066         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
18067         DECL_LIVE_RANGE_RTL.
18068
18069 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
18070
18071         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
18072         not NOTE_BLOCK_NUMBER.
18073         (expand_eh_region_end): Likewise.
18074         (find_exception_handler_labels): Likewise.
18075         (scan_region): Likewise.
18076         (exception_optimize): Likewise.
18077         (update_rethrow_references): Likewise.
18078         (set_insn_eh_region): Likewise.
18079         * final.c (final_scan_insn): Likewise.
18080         * flow.c (make_edges): Likewise.
18081         * integrate.c (expand_inline_function): Likewise.
18082         * print-rtl.c (print_rtx): Likewise.
18083
18084 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
18085
18086         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
18087         terms of builtin functions and types.
18088
18089         * mips.c (mips_build_va_list): New.
18090         (mips_va_start, mips_va_arg): New.
18091         * mips.h (BUILD_VA_LIST_TYPE): New.
18092         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
18093
18094         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
18095         (sh_build_va_list, sh_va_start, sh_va_arg): New.
18096         * sh.h (BUILD_VA_LIST_TYPE): New.
18097         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
18098
18099 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
18100
18101         * recog.h (struct recog_data): Make dup_num, operand_address_p,
18102         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
18103         (struct insn_data): Likewise with n_operands, n_dups,
18104         n_alternatives, output_format.
18105         * regclass.c (scan_one_insn): Cast n_operands to int before
18106         arithmetic inside comparison.
18107
18108 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
18109
18110         * toplev.c (compile_function): Unconditionally emit nop.
18111
18112 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18113
18114         * haifa-sched.c (actual_hazard): Move declaration of variable
18115         `this_cost' into the scope where it is used.
18116
18117 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18118
18119         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
18120         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
18121         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
18122
18123         * genrecog.c (make_insn_sequence): Call memset, not bzero.
18124
18125         * jump.c (find_insert_position): Don't declare or define unless
18126         !HAVE_conditional_arithmetic.
18127         (returnjump_p_1, delete_prior_computation): Add static prototypes.
18128
18129         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
18130
18131         * recog.c (offsettable_address_p): Prototype function pointer.
18132         (preprocess_constraints): Call memset, not bzero.
18133
18134         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
18135         (gcc_obstack_init): Don't declare.
18136         (fix_sizetype): Add static prototype.
18137         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
18138         (tree_cons): Call memset, not bzero.
18139
18140         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
18141         definition in macro ASM_WEAKEN_LABEL.
18142         (mark_const_hash_entry): Add static prototype.
18143
18144 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18145
18146         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
18147
18148         * unroll.c (find_common_reg_term, subtract_reg_term,
18149         loop_find_equiv_value): Add static prototypes.
18150         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
18151         (copy_loop_body): Remove unreachable break statement.
18152
18153         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
18154
18155         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
18156
18157 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18158
18159         Undo some changes from the gcc2 merge:
18160         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
18161         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
18162         pointers.
18163
18164         Undo this change:
18165         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
18166         * emit-rtl.c (gen_lowpart_common): Disable optimization of
18167         initialized float-int union if the value is a NaN.
18168
18169 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
18170
18171         * gthr-win32.h: New file.
18172
18173         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
18174         shared as a valid attribute.
18175         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
18176         * extend.texi: Document `shared' variable attribute.
18177
18178 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
18179
18180         * configure.in: Handle --enable-threads on FreeBSD.
18181         * configure: Rebuit.
18182
18183 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
18184
18185         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
18186         thread support.
18187         * configure: Rebuilt.
18188
18189 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
18190                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
18191                           Rosimildo DaSilva <rdasilva@connecttel.com>
18192
18193         * configure.in (m68k-*-rtemscoff*): Added.
18194         * configure.in (mips64orion-*-rtems*): Converted to ELF.
18195         * configure.in (sparc-*-rtemsaout*): Added as alias for old
18196         sparc-rtems configuration.
18197         * configure.in (sparc-*-rtemself*): Added.
18198         * configure.in (sparc-*-rtems*): Now ELF not a.out.
18199         * config/i386/rtems.h: Added comment.
18200         * config/sparc/rtemself.h: New file.
18201
18202         * configure.in (m68k-rtemself): Added.
18203         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
18204         and DWARF_DEBUGGING_INFO.
18205         * config/m68k/crti.s: New file.
18206         * config/m68k/crtn.s: New file.
18207         * config/m68k/t-crtstuff: New file.
18208         * config/m68k/rtemself.h: New file.
18209
18210         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
18211         global ctor/dtor and C++ exception handling.
18212         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
18213         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
18214         ENDFILE_SPEC.
18215         * config/i386/t-rtems-i386: New File.
18216
18217 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
18218
18219         * stmt.c (expand_end_case): Return right away if the case stack is
18220         empty.
18221
18222 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
18223
18224         * Makefile.in (version.c): Remove rule incorrectly brought in from
18225         the gcc2 merge.
18226
18227 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
18228
18229         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
18230         * msdos/top.sed:  Take into account a prepended $(SHELL) to
18231         move-if-change.
18232         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
18233
18234         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
18235
18236 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18237
18238         * regmove.c (fixup_match_1): Don't change an unchanging register.
18239         (stable_but_for_p): Renamed to:
18240         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
18241         Changed all callers.
18242
18243 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
18244
18245         * loop.c (strength_reduce): Don't call reg_used_between_p if the
18246         insn from BL2 is after the insn from BL.
18247
18248 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
18249
18250         * recog.h (INSN_OUTPUT_FORMAT_*): New.
18251         (struct insn_data): Merge `template' and `outfun' into `output'.
18252         Add `output_format'.
18253         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
18254         (struct data): Remove `outfun'; add `output_format'.
18255         (name_for_index): Remove declaration.
18256         (output_insn_data): Handle output formats.
18257         (process_template): Emit the bare array for @.
18258         (gen_expand, gen_split): Set output_format to NONE.
18259         * output.h (get_insn_template): Declare.
18260         * final.c (get_insn_template): New.
18261         (final_scan_insn): Use it.
18262         * toplev.c (compile_file): Likewise.
18263
18264         * c4x/c4x.c (c4x_process_after_reload): Likewise.
18265         * i860/i860.c (output_delayed_branch): Likewise.
18266         (output_delay_insn): Likewise.
18267
18268 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18269
18270         * rtl.c (obstack_alloc_rtx): Removed.
18271
18272 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
18273
18274         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
18275
18276 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
18277
18278         * i386.c (call_insn_operand): Reject const_int.
18279         (expander_call_insn_operand): Use call_insn_operand.
18280
18281 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18282
18283         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
18284
18285 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
18286
18287         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
18288         Use DImode operation.
18289
18290 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
18291
18292         * gcc.c: Include sys/resource.h.
18293         (report_times): New flag.
18294         (execute):  If report_times is set, calculate and report the
18295         CPU time consumed by each subprocess.
18296
18297         (rus, prus): New globals.
18298         (option_map): Add --time.
18299         (display_help): Document -time.
18300         (process_command): Set report_times if -time is given.
18301         Turn off -pipe if -time is given.
18302
18303         * invoke.texi: Document new option -time.
18304
18305         * configure.in: Check for getrusage.  Check if we have to
18306         prototype getrusage.
18307         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
18308         * configure: Regenerate.
18309         * config.in: Regenerate.
18310
18311 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
18312
18313         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
18314         fields.
18315
18316 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
18317
18318         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
18319         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
18320         (nan): Return _thenan_sf or _thenan_df as appropriate.
18321         (L_thenan_sf): Define _thenan_sf.
18322         (L_thenan_df): Define _thenan_df.
18323
18324         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
18325         (DPBIT_FUNCS): Add _thenan_df.
18326
18327 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
18328
18329         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
18330         TYPE_SIZE_UNIT.
18331
18332 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18333
18334         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
18335
18336         * gcc.h: New file.
18337         (lang_specific_driver): Don't take a function pointer parameter.
18338         All callers changed.
18339
18340         * gcc.c: Include gcc.h.
18341         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
18342         lang_specific_extra_outfiles, fatal): Don't declare.
18343         (multilib_defaults_raw): Constify.
18344         (read_specs): Call memset, rather than bzero.
18345         (main): Call return, not exit.
18346         (lookup_compiler): Call memcpy, not bcopy.
18347         (fatal): Make extern.
18348
18349         * cppspec.c: Include gcc.h.
18350         (lang_specific_driver): Initialize variable `quote'.  Constify a
18351         char*.  All calls to the function pointer parameter now
18352         explicitly call `fatal'.
18353
18354         * gccspec.c (lang_specific_driver): Include gcc.h.
18355
18356 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
18357
18358         * arm.c (note_invalid_constants): Use recog_data.operand_type
18359         for recog_op_type.
18360
18361 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18362
18363         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
18364         Declare.
18365
18366         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
18367         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
18368         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
18369         reload_secondary_in_reload, reload_secondary_out_reload,
18370         reload_secondary_in_icode, reload_secondary_out_icode,
18371         reload_reg_rtx, reload_when_needed): Delete declarations.
18372         (struct reload): New structure.
18373         (rld): Declare new array.
18374         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
18375         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
18376         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
18377         reload_secondary_in_reload, reload_secondary_out_reload,
18378         reload_secondary_in_icode, reload_secondary_out_icode,
18379         reload_reg_rtx, reload_when_needed): Delete definitions.
18380         (rld): New array.
18381         (whole file): Replace uses of the deleted arrays with uses of rld.
18382         * reload1.c (whole file): Replace uses of the deleted arrays with
18383         uses of rld.
18384         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
18385         explicit loops, not with bcopy.
18386
18387 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
18388
18389         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
18390         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
18391         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
18392         insn_name): Delete and consolidate into new structures.
18393         (insn_operand_predicate_fn): New.
18394         (insn_output_fn): New.
18395         (insn_gen_fn): New.
18396         (struct insn_operand_data): New.
18397         (struct insn_data): New.
18398         (insn_data): New.
18399         (OUT_FCN): Update for insn_data change.
18400         * builtins.c (expand_builtin_strlen): Likewise.
18401         (expand_builtin_memcmp): Likewise.
18402         * combine.c (make_extraction, simplify_comparison): Likewise.
18403         * cse.c (canon_reg, cse_insn): Likewise.
18404         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
18405         * expmed.c (store_bit_field, extract_bit_field): Likewise.
18406         (emit_store_flag): Likewise.
18407         * expr.c (convert_move, emit_block_move): Likewise.
18408         (clear_storage, emit_push_insn, expand_increment): Likewise.
18409         (do_store_flag): Likewise.
18410         * expr.h (GEN_FCN): Likewise.
18411         (insn_gen_function): Die.
18412         * final.c (final_scan_insn): Update for insn_data change.
18413         (output_asm_name): Likewise.
18414         * function.c (fixup_var_refs_1): Likewise.
18415         * loop.c (check_dbra_loop): Likewise.
18416         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
18417         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
18418         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
18419         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
18420         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
18421         * regmove.c (gen_add3_insn): Likewise.
18422         * reload.c (push_secondary_reload, combine_reloads): Likewise.
18423         (find_reloads, find_reloads_address_1): Likewise.
18424         (debug_reload_to_stream): Likewise.
18425         * reload1.c (emit_reload_insns, gen_reload): Likewise.
18426         * stmt.c (expand_end_case): Likewise.
18427         * toplev.c (compile_file): Likewise.
18428
18429         * c4x/c4x.c (c4x_process_after_reload): Likewise.
18430         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
18431
18432         * print-rtl.c (insn_name_ptr): Remove declaration.
18433         (get_insn_name): Declare.
18434         (print_rtx): Use it.
18435         * genoutput.c (insn_name_ptr): Remove.
18436         (next_operand_number): New.
18437         (struct operand_data): New.
18438         (null_operand, odata, odata_end): New.
18439         (struct data): Use struct operand_data.
18440         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
18441         (get_insn_name): Renamed from name_for_index.
18442         (output_prologue): Define NO_MD_PROTOTYPES.
18443         (output_predicate_decls): Break out from output_epilogue.
18444         Iterate over the operands list.
18445         (output_operand_data): Break out from output_epilogue.  Emit
18446         just the operands list.
18447         (output_insn_data): Break out from output_epilogue.  Emit just
18448         the insn data.
18449         (output_epilogue): Remove.
18450         (output_get_insn_name): New.
18451         (constraints, op_n_alternatives, predicates, address_p): Die.
18452         (modes, strict_low, seen): Die.
18453         (scan_operands): Take new param `d' instead of writing to
18454         seven global variables.
18455         (compare_operands): New.
18456         (place_operands): New.
18457         (validate_insn_alternatives): Update for struct data change.
18458         (gen_insn): Don't zero or copy 7 global arrays.  Update for
18459         scan_operands; call place_operands.
18460         (gen_peephole, gen_expand, gen_split): Likewise.
18461         (main): Update for new output routines.
18462
18463         * genattr.c (insn_name_ptr): Remove.
18464         (get_insn_name): New function.
18465         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
18466         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
18467         * genrecog.c: Likewise.
18468
18469         * alpha.md (adddi3): Make `pattern' array static.
18470
18471 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18472
18473         * config/c4x/c4x.h (c4x_rpts_cycles_string,
18474         c4x_cpu_version_string): Constify char *.
18475         * config/c4x/c4x.c (c4x_rpts_cycles_string,
18476         c4x_cpu_version_string): Likewise.
18477
18478 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
18479
18480         * tree.c (save_tree_status): Revert 10 Sep change.
18481         (restore_tree_status): Likewise.  Call obstack_free with NULL
18482         before freeing the obstack proper.
18483
18484 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
18485
18486         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
18487
18488         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
18489         surrounding context.
18490
18491 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
18492
18493         * tree.c (type_hash_canon): Put all types in the hash-table, when
18494         GC'ing.
18495
18496 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
18497
18498         * recog.h (struct recog_data, recog_data): New.
18499         (recog_foo variables): Kill.
18500         * recog.c (recog_operand, recog_operand_loc): Kill.
18501         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
18502         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
18503         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
18504         (recog_data): Define.
18505         (extract_insn): Update all recog_foo references to use recog_data.
18506         (preprocess_constraints, constrain_operands): Likewise.
18507         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
18508         * genattrtab.c (main): Likewise.
18509         * genextract.c (main): Likewise.
18510         * genoutput.c: Likewise.
18511         * genrecog.c (write_subroutine, main): Likewise.
18512         * local-alloc.c (block_alloc): Likewise.
18513         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
18514         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
18515         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
18516         * reload.c (find_reloads, find_reloads_toplev): Likewise.
18517         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
18518         (reload_cse_simplify_operands): Likewise.
18519
18520         * arc/arc.c (arc_final_prescan_insn): Likewise.
18521         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
18522         * h8300/h8300.c (notice_update_cc): Likewise.
18523         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
18524         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
18525         * mn10200/mn10200.c (notice_update_cc): Likewise.
18526         * mn10300/mn10300.c (notice_update_cc): Likewise.
18527         * romp/romp.c (update_cc): Likewise.
18528         * sparc/sparc.c (check_pic): Likewise.
18529         * v850/v850.c (notice_update_cc): Likewise.
18530
18531         * genemit.c (main): Don't declare recog_operand.
18532
18533 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
18534
18535         * ggc.h (rtvec_def): Forward declare.
18536         (tree_node): Likewise.
18537         (ggc_root): Define.
18538         (roots): Declare.
18539         (ggc_set_mark_rtx): Add prototype.
18540         (ggc_set_mark_rtvec): Likewise.
18541         (ggc_set_mark_tree): Likewise.
18542         * ggc-simple.c (ggc_root): Don't define.
18543         (roots): Don't declare.
18544         (ggc_mark_rtx): Remove.
18545         (ggc_mark_rtvec): Likewise.
18546         (ggc_mark_tree): Likewise.
18547         (ggc_mark_varray): Likewise.
18548         (ggc_mark_tree_hash_table_entry): Likewise.
18549         (ggc_mark_tree_hash_table): Likewise.
18550         (ggc_set_mart_rtx): New function.
18551         (ggc_set_mark_rtvec): Likewise.
18552         (ggc_set_mark_tree): Likewise.
18553         (ggc_add_root): Remove.
18554         (ggc_add_rtx_root): Likewise.
18555         (ggc_remove_tree_root): Likewise.
18556         (ggc_add_string_root): Likewise.
18557         (ggc_add_tree_varray_root): Likewise.
18558         (ggc_add_tree_hash_table_root): Likewise.
18559         (ggc_del_root): Likewise.
18560         (ggc_mark_rtx_ptr): Likewise.
18561         (ggc_mark_tree_ptr): Likewise.
18562         (ggc_mark_string_ptr): Likewise.
18563         (ggc_mark_tree_varray_ptr): Likewise.
18564         (ggc_mark_tree_hash_table_ptr): Likewise.
18565         * ggc-common.c: New file.
18566         * Makefile.in (OBJS): Add ggc-common.o.
18567         (ggc-common.o): List dependencies.
18568
18569 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
18570
18571         * cppalloc.c (xstrdup): Use memcpy.
18572         * cpperror.c (cpp_print_containing_files): Don't use
18573         cpp_notice.
18574         * cpplib.c (conditional_skip): Set temp->lineno.
18575         (do_endif): Make error message less obscure.
18576         (if_directive_name): New function.
18577         (cpp_get_token [case EOF]): Unwind the if stack and generate
18578         error messages for each unterminated conditional in this file.
18579         (parse_string):  Do not behave differently if -traditional.
18580
18581 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
18582
18583         * builtins.c (expand_builtin_va_arg): Cope with an array-type
18584         va_list decomposing to pointer-type.
18585         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
18586         (rs6000_va_arg): Likewise.
18587
18588 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
18589
18590         * except.c (start_dynamic_handler): Compute size using
18591         STACK_SAVEAREA_MODE.
18592
18593 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18594
18595         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
18596         include directory headers.  Don't define strrchr.  Don't provide
18597         my_* replacement functions.  Prefer PTR over `pointer_type'.
18598         Don't prototype system functions.  Don't redefine getopt.
18599
18600         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
18601         safe_read, safe_write, save_pointers, restore_pointers,
18602         is_id_char, in_system_include_dir, directory_specified_p,
18603         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
18604         find_corresponding_lparen, referenced_file_is_newer,
18605         save_def_or_dec, munge_compile_params, gen_aux_info_file,
18606         process_aux_info_file, identify_lineno, check_source,
18607         seek_to_line, forward_to_next_token_char, output_bytes,
18608         output_string, output_up_to, other_variable_style_function,
18609         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
18610         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
18611         find_static_definition, connect_defs_and_decs, add_local_decl,
18612         add_global_decls, needs_to_be_converted, visit_each_hash_node,
18613         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
18614         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
18615         scan_for_missed_items, edit_file, string_list_cons): Add static
18616         prototypes.
18617         (standard_exec_prefix, target_machine, target_version,
18618         default_syscalls_dir, string_list, string_list_cons, find_file,
18619         do_cleaning): Constify a char*.
18620         (safe_read, safe_write): Use PTR, not a char*.
18621         (is_id_char): Take an int, not a char.
18622         (main): Add prototype.  Call return, not exit.
18623
18624 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
18625
18626         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
18627         when comparing types.
18628
18629 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
18630
18631         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
18632         (strength_reduce): Release the varrays from the no-bivs early exit.
18633
18634         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
18635         the loop over the registers.
18636
18637         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
18638         for a new obstack.
18639         (restore_tree_status): Check that instead when freeing the obstack.
18640
18641 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
18642
18643         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
18644         as pointers.
18645
18646 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18647
18648         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
18649         operand size modifiers.
18650
18651 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18652
18653         * c-common.c (c_common_nodes_and_builtins): Don't build
18654         va_list_type_node.
18655         * c-common.h (enum c_tree_index and related accesor macros): Remove
18656         everything now declared in tree.h.
18657         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
18658         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
18659         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
18660         (error_mark_node, void_type_node, char_type_node, integer_type_node,
18661         unsigned_type_node, ptr_type_node, va_list_type_node,
18662         integer_zero_node, null_pointer_node, integer_one_node): Delete.
18663         (init_decl_processing): Call build_common_tree_nodes and
18664         build_common_tree_nodes_2 instead of building their nodes here.
18665         Don't add roots for these nodes.
18666         * stor-layout.c (size_zero_node, size_one_node): Delete.
18667         (set_sizetype): Make a new node for bitsizetype each time.
18668         * tree.c (global_trees): New variable.
18669         (init_obstacks): Add a gc root for it.
18670         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
18671         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
18672         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
18673         (build_common_tree_nodes): New function.
18674         (fix_sizetype): New function.
18675         (build_common_tree_nodes_2): New function.
18676         * tree.h (enum tree_index): New.
18677         (global_trees): Declare.
18678         Add accessor macros for all nodes now moved to global_trees.
18679         Delete their declarations.
18680
18681 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
18682
18683         * c-decl.c (finish_function): When processing a nested function,
18684         push and pop GC context around rest_of_compilation.
18685
18686 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
18687
18688         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
18689         Default ix86_arch to PROCESSOR_I386.
18690         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
18691         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
18692         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
18693         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
18694         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
18695         (EXTRA_SPECS): Remove deleted specs.
18696
18697 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
18698
18699         * function.c (assign_stack_local_1): Allocate from
18700         function->x_frame_offset, not frame_offset.
18701
18702 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
18703
18704         * ggc.h (lang_cleanup_tree): Remove.
18705         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
18706         * ggc-callbacks.c (lang_cleanup_tree): Remove.
18707
18708         * c-decl.c (finish_struct): Use ggc_alloc to allocate
18709         TYPE_LANG_SPECIFIC when garbage collecting.
18710         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
18711         (lang_cleanup_tree): Remove.
18712
18713 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
18714
18715         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
18716         * crtstuff.c: Not here.
18717         * dwarf2out.c: Or here.
18718         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
18719         info.
18720
18721 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
18722
18723         * function.h (free_after_compilation): Remove decl parameter.
18724         (free_varasm_status0: Likewise.
18725         (free_emit_status): Likewise.
18726         (free_stmt_status): Likewise.
18727         (free_after_compilation): Likewise.
18728         (init_lang_status): New variable.
18729         (free_lang_status): Likewise.
18730         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
18731         * function.c (init_lang_status): New variable.
18732         (free_lang_status): Likewise.
18733         (push_function_context_to): Don't set function::decl here.
18734         (free_after_copmilation): Make decl parameter implicit.  Call
18735         free_lang_status if defined.
18736         (prepare_function_start): Call init_lang_status if defined.
18737         (init_function_start): Set function::decl here.
18738         * profile.c (output_func_start_profiler): Don't call pushdecl
18739         until we've actually started the function.
18740         * stmt.c (free_stmt_status): Make decl parameter implicit.
18741         * toplev.c (rest_of_compilation): Don't pass decl to
18742         free_after_compilation.
18743         * varasm.c (free_varasm_status): Likewise.
18744
18745 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18746
18747         * except.c (call_get_eh_context): Add root when allocating static
18748         tree variable.
18749
18750 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
18751
18752         * arm.c: Include "ggc.h".
18753         (arm_add_gc_roots): New function.
18754         (arm_override_options): Call it.
18755         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
18756
18757         * arm.md (define_asm_attributes): Add a pool_range attribute.
18758
18759 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
18760
18761         * extend.texi (Volatiles): New node.
18762
18763 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
18764
18765         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
18766         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
18767         (struct ggc_any): Replace `mark' with `magic_mark'.
18768         (ggc_alloc_string): Use memcpy, not bcopy.
18769         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
18770         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
18771         (ggc_free_any): New.
18772         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
18773         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
18774         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
18775         Use IS_MARKED. Use ggc_free_any.
18776
18777 1999-09-09  Scott Bambrough <scottb@netwinder.org>
18778
18779         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
18780
18781 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
18782
18783         * toplev.c (main): Always init_ggc.
18784
18785 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
18786
18787         * except.c (find_all_handler_type_matches): Free the list if
18788         we found no matches.
18789
18790         * combine.c (SUBST): Break out to a real function do_SUBST.
18791         (SUBST_INT): Likewise.
18792         * gcse.c (free_pre_mem): Free `temp_bitmap'.
18793         (pre_insert): Free `inserted'.
18794         * loop.c (basic_induction_var): Always set `location'.
18795
18796         * function.c (expand_function_end): Add initial_trampoline as a root.
18797         * rtl.h (init_varasm_once): Declare.
18798         * toplev.c (compile_file): Call it.
18799         * ggc-simple.c (ggc_mark_string_ptr): New.
18800         (ggc_add_string_root): New.
18801         (ggc_collect): Disable collection avoidance temporarily.
18802         * ggc.h (ggc_add_string_root): Declare.
18803         * except.c (create_rethrow_ref): Use ggc_alloc_string.
18804         * optabs.c (init_libfuncs): Likewise.
18805         * varasm.c (named_section): Use ggc_alloc_string.
18806         (make_function_rtl): Likewise.
18807         (make_decl_rtl): Likewise.
18808         (assemble_static_space): Likewise.
18809         (assemble_trampoline_template): Likewise.
18810         (output_constant_def): Likewise.
18811         (force_const_mem): Likewise.
18812         (mark_const_hash_entry): New.
18813         (mark_pool_sym_hash_table): New.
18814         (mark_varasm_state): Use it.
18815         (init_varasm_once): New.
18816
18817         * expr.h (init_one_libfunc): Declare.
18818         * optabs.c (init_one_libfunc): New.
18819         (init_optabs): Use it.
18820         * config/gofast.h: Likewise.
18821         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
18822         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
18823
18824 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
18825
18826         * Makefile.in (cppexp.o): Depend on cpphash.h.
18827         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
18828         Include cpphash.h.
18829         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
18830         * cpplib.c (do_define): Generalise to handle poisoned definitions,
18831         redefining poisoned identifiers, etc.
18832         (do_undef): Don't allow poisoned identifiers to be undefined.
18833         (do_pragma): Add #pragma poison.
18834         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
18835
18836         * cccp.c: Add T_POISON node type.
18837         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
18838         poisoned xxx.
18839         (do_define): Generalise to handle poisoned definitions,
18840         redefining poisoned identifiers, etc.
18841         (do_undef): Don't allow poisoned identifiers to be undefined.
18842         (do_pragma): Add #pragma poison.
18843         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
18844
18845         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
18846         * c-pragma.h: Add ps_poison state.  We now always have generic
18847         pragmas.
18848
18849 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
18850
18851         * ggc.h (ggc_alloc): New function.
18852         (ggc_mark): Likewise.
18853         * ggc-simple.c (ggc_any): New structure.
18854         (ggc_status): Add anys.
18855         (n_anys_collected): New variable.
18856         (ggc_alloc): Define.
18857         (ggc_mark): Likewise.
18858         (ggc_collect): Collect the anys.
18859
18860 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18861
18862         * c-decl.c (mark_binding_level): Make static to match prototype.
18863
18864 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
18865
18866         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
18867
18868 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
18869
18870         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
18871         will use into account.  Expand the max width to 5.
18872         * rtl.c: Likewise.
18873
18874 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
18875
18876         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
18877         for the rtx length.
18878
18879 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
18880
18881         * alpha.md (call value patterns): Remove the result predicates.
18882
18883 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
18884
18885         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
18886         last change.
18887
18888 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18889
18890         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
18891         changed from extern char *, to extern PTR.  Also fix typo in
18892         NEED_DECLARATION_REALLOC test.
18893
18894         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
18895
18896 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18897
18898         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
18899         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
18900         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
18901         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
18902
18903         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
18904
18905         * cccp.c (pcfinclude): Likewise.
18906
18907         * global.c (allocno_compare): Likewise.
18908
18909         * haifa-sched.c (rank_for_schedule): Likewise.
18910
18911         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
18912
18913         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
18914
18915         * stupid.c (stupid_reg_compare): Likewise.
18916
18917         * tree.c (_obstack_allocated_p): Likewise.
18918
18919         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
18920
18921 1999-09-08  Bruce Korb  autogen@linuxbox.com
18922
18923         * Makefile.in: Give the hapless gperf user a hint about
18924         why "gperf -F" fails.
18925
18926 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
18927
18928         * lists.c: Include ggc.h.
18929         (zap_lists): New.
18930         (init_EXPR_INSN_LIST_cache): Install it.
18931
18932         * ggc-simple.c (init_ggc): Absorb the old init.
18933         (ggc_push_context): Use xcalloc.
18934         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
18935         (ggc_collect): Add [rvts] tags to the collection stats.
18936
18937 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
18938
18939         * cccp.c (main): Fix handling of -include and -imacros options.
18940
18941 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
18942
18943         * cpplib.c (cpp_push_buffer): Fix order of arguments.
18944
18945 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
18946
18947         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
18948         genrtl.c.
18949
18950 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
18951
18952         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
18953         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
18954         and SET_DEST. Update comment.
18955
18956 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18957
18958         * config/c4x/c4x.c: Include ggc.h.
18959         (c4x_add_gc_roots): New function.
18960         (c4x_override_options): Call c4x_add_gc_roots.
18961
18962 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
18963
18964         * defaults.h (TARGET_ESC): Move ...
18965         * system.h: ... here, where Linas had it in the first place.  Silly me.
18966
18967 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
18968
18969         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
18970         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
18971         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
18972         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
18973         * defaults.h (TARGET_ESC): Add default.
18974
18975 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
18976
18977         * configure.in: add i370-*-openedition, i370-*-mvs and
18978         i370-*-linux targets
18979
18980 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
18981
18982         * dsp16xxx.c: Include ggc.h
18983         (override_options): Mark GC roots.
18984         * mn10200.c: Include ggc.h.
18985         (asm_file_start): Mark GC roots.
18986         * tahoe.c: Include ggc.h.
18987         (extensible_operand): Mark GC roots.
18988
18989 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
18990
18991         * README: Add section discussing status of ELF ABI.
18992         * i370.c: Fix misc spelling mistakes.
18993         (i370_label_scan): Updated notes, exception handling.
18994         (i370_function_prolog): Simplify ELF stack handling.
18995         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
18996         (STACK_GROWS_DOWNWARD): ELF stack grows down.
18997         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
18998         * i370.md: (movdi): Add notes.
18999         (floatsidf2): Use stack not rtca for scratch float area.
19000         (iorsi3): Correct operand constraints.
19001         * x-oe: Restore TAROUTOPTS which are used by pax.
19002
19003 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
19004
19005         * rs6000.c: Include ggc.h.
19006         (rs6000_add_gc_roots): New function.
19007         (override_options): Call it.
19008
19009 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
19010
19011         * alpha.h (alpha_compare): New.
19012         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
19013         * alpha.c: Likewise for the definitions.
19014         (alpha_emit_conditional_branch): Update for alpha_compare.
19015         (alpha_emit_conditional_move): Likewise.
19016         * alpha.md (cmpdf, cmpdi): Likewise.
19017         (setcc patterns): Likewise.  Zero alpha_compare after use.
19018         (sne): Optimize (x != 0) into (0U < x).
19019
19020 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
19021
19022         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
19023         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
19024         (INIT_EXPANDERS): Remove.
19025         * alpha.c: Include ggc.h.
19026         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
19027         (alpha_init_machine_status, alpha_mark_machine_status): New.
19028         (override_options): Install them.
19029         (struct machine_function): Moved to alpha.h.
19030         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
19031         (alpha_init_expanders): Remove.
19032         (alpha_return_addr): Adjust to use current_function->machine.
19033         (alpha_ra_ever_killed): Likewise.
19034         (alpha_expand_epilogue): Likewise.
19035         * alpha.md (eh_epilogue): Likewise.
19036
19037 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
19038                           Melissa O'Neill  <oneill@cs.sfu.ca>
19039                           Geoffrey Keating  <geoffk@cygnus.com>
19040
19041         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
19042         call-used registers (call-saved registers must still be contiguous
19043         and end with r31, of course).
19044
19045 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
19046
19047         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
19048         (self_promoting_type_p): Delete.
19049         (self_promoting_args_p): Move ...
19050         * c-common.c: ... here.
19051         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
19052         (simple_type_promotes_to): New.
19053         * builtins.c (lang_type_promotes_to): New.
19054         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
19055         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
19056         * c-common.h: ... here.
19057         (self_promoting_args_p, simple_type_promotes_to): Declare.
19058         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
19059         (grokdeclarator): Likewise.
19060         * tree.h (lang_type_promotes_to): Declare.
19061
19062 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
19063
19064         Add some machine-dependent GC roots.
19065         * sparc.c: Include ggc.h.
19066         (sparc_add_gc_roots): New function.
19067         (mark_ultrasparc_pipeline_state): Likewise.
19068         (override_options): Call sparc_add_gc_roots.
19069         * pa.c: Include ggc.h.
19070         (pa_add_gc_roots): New function.
19071         (mark_deferred_plabels): Likewise.
19072         (override_options): Call pa_add_gc_roots.
19073         * mips.c: Include ggc.h.
19074         (mips_add_gc_roots): New function.
19075         (override_options): Use it.
19076
19077 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19078
19079         * cpperror.c (cpp_file_line_for_message): Constify a char*.
19080
19081         * cppexp.c (parse_number, parse_charconst, cpp_lex,
19082         cpp_parse_expr): Add static prototypes.
19083         (parse_charconst): Don't cast away const-ness.
19084         (token): Constify a char*.
19085
19086         * cppfiles.c (file_name_list, include_hash, find_include_file,
19087         finclude, initialize_input_buffer): Constify a char*.
19088         (file_cleanup, find_position): Add static prototypes.
19089
19090         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
19091         collect_expansion): Add static prototypes.
19092         (cpp_install, create_definition, monthnames): Constify a char*.
19093
19094         * cpphash.h (cpp_install): Likewise.
19095
19096         * cppinit.c (known_suffixes, default_include,
19097         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
19098         (base_name, dump_special_to_buffer, initialize_dependency_output):
19099         Add static prototypes.
19100
19101         * cpplib.c (my_strerror): Constify a char*.
19102         (null_underflow, null_cleanup, skip_comment, copy_comment,
19103         copy_rest_of_line, handle_directive, pass_thru_directive,
19104         get_directive_token, read_line_number, cpp_print_file_and_line,
19105         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
19106         v_cpp_warning_with_line, detect_if_not_defined,
19107         consider_directive_while_skipping): Add static prototypes.
19108         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
19109         cpp_pedwarn_with_file_and_line): Constify a char*.
19110
19111         * cpplib.h (cpp_options, include_hash, progname, definition,
19112         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
19113         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
19114         find_include_file, deps_output, include_hash): Constify a char*.
19115
19116         * cppmain.c (progname): Constify.
19117         (main): Add prototype.  Use return, not exit.
19118
19119         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
19120         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
19121         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
19122         check_protection): Add static prototype.
19123         (xfree): Remove.
19124         (progname, recognized_macrom, recognized_extern): Constify a char*.
19125         (main): Add prototype.
19126
19127         * gen-protos.c (progname): Constify a char*.
19128
19129 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
19130
19131         * emit-rtl.c (free_emit_status): Take decl as a parameter.
19132         (init_emit_once): Add more GC roots.
19133         * except.c (mark_func_eh_entry): New function.
19134         (mark_eh_node): Mark false_label and rethrow_label.
19135         (init_eh): Add more GC roots.
19136         * function.c (free_after_compilation): Take decl as a paramter.
19137         Call free_stmt_status.
19138         (mark_function_state): Don't assume x_parm_reg_stack_loc is
19139         non-NULL.
19140         * function.h (free_after_compilation): Change prototype.
19141         (free_varasm_status): Likewise.
19142         (free_emit_status): Likewise.
19143         (free_stmt_status): New function.
19144         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
19145         Remove, replacing with ...
19146         (ggc_status): New structure.
19147         (ggc_chain): New variable.
19148         (init_gcc): Define.
19149         (ggc_push_context): New function.
19150         (ggc_pop_context): Likewise.
19151         (ggc_alloc_rtx): Adjust for use of ggc_chain.
19152         (ggc_alloc_rtvec): Likewise.
19153         (ggc_alloc_tree): Likewise.
19154         (ggc_alloc_string): Likewise.
19155         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
19156         (ggc_mark_tree): Give language-dependent code a chance to mark
19157         `x' nodes.
19158         (ggc_mark_tree_varray): Handle empty arrays.
19159         (ggc_collect): Adjust for use of ggc_chain.  Clear
19160         bytes_alloced_since_last_gc.
19161         * ggc.h (ggc_pop_context): New function.
19162         (ggc_push_context): Likewise.
19163         * print-tree.c (print_node): Don't print obstacks when GC'ing.
19164         * stmt.c (free_stmt_status): New function.
19165         (init_stmt_for_function): Clear last_expr_value.
19166         * toplev.c (rest_of_compilation): Always call free_after_compilation.
19167         Conditionalize call to ggc_collect.
19168         (main): Call init_ggc.
19169         * tree.c (push_obstacks): Do the push, even when GC'ing.
19170         (push_obstacks_nochange): Likewise.
19171         (pop_obstacks): Liekwise.
19172         * varasm.c (free_varasm_status): Take decl as a parameter.
19173
19174 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
19175
19176         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
19177         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
19178         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
19179         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
19180
19181 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
19182
19183         * pa/x-pa-mpeix: New file for the MPE port.
19184
19185         * pa/quadlib.asm: New file for long double support.
19186
19187         * configure.in: Add hppa1.0-*-mpeix for MPE port.
19188         * configure: Rebuilt.
19189
19190 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
19191
19192         * final.c (shorten_branches): Fix last change.
19193
19194 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
19195
19196         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
19197
19198 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
19199
19200         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
19201         details.
19202
19203 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19204
19205         * c-aux-info.c (concat): Don't define.
19206
19207         * cccp.c (my_strerror): Likewise.  All callers changed to use
19208         xstrerror instead.
19209         (do_include): Call xstrdup, not xmalloc/strcpy.
19210         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
19211         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
19212
19213         * collect2.c (my_strsignal): Likewise.  All callers changed to use
19214         strsignal instead.
19215         (locatelib): Call xstrdup, not xmalloc/strcpy.
19216
19217         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
19218
19219         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
19220
19221         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
19222
19223         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
19224
19225         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
19226
19227         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
19228
19229         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
19230         malloc/realloc.
19231         (find_all_handler_type_matches): Likewise.  Don't check return
19232         value.
19233         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
19234         xmalloc, not malloc.
19235         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
19236
19237         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
19238         (init_spec): Call xcalloc, not xmalloc/bzero.
19239         (set_spec): Call xstrdup, not save_string.
19240         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
19241         (find_a_file): Call xstrdup, not xmalloc/strcpy.
19242         (process_command): Call xstrdup, not save_string.
19243         (main): Call xcalloc, not xmalloc/bzero.
19244
19245         * gcov.c (xmalloc): Don't define.
19246         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
19247         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
19248         (output_data): Call xcalloc, not xmalloc/bzero.
19249
19250         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
19251
19252         * mips-tdump.c (xmalloc): Don't define.
19253         (print_symbol): Call xmalloc, not malloc.
19254         (read_tfile): Call xcalloc, not calloc.
19255
19256         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
19257         Don't define.  All callers of xfree/my_strsignal changed to use
19258         free/strsignal instead.
19259         (allocate_cluster): Call xcalloc, not calloc.
19260
19261         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
19262         Fix memory leak, free allocated memory.
19263
19264         * prefix.c (translate_name): Call xstrdup, not save_string.
19265         (update_path): Likewise.
19266
19267         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
19268
19269         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
19270         Don't define.  Callers of xfree/savestring2 changed to use
19271         free/concat instead.
19272
19273         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
19274         (init_elim_table): Likewise.
19275
19276         * resource.c (init_resource_info): Likewise.
19277
19278         * stupid.c (stupid_life_analysis): Likewise.
19279
19280         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
19281         (open_dump_file): Call concat, not xmalloc/strcpy/...
19282         (clean_dump_file): Likewise.
19283         (compile_file): Call xstrdup, not xmalloc/strcpy.
19284
19285 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
19286
19287         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
19288         * v850.c (v850_va_arg): New.
19289
19290 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19291
19292         * haifa-sched.c: Tidy comments.
19293
19294 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19295
19296         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
19297         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
19298         $(out_object_file)): Depend on ggc.h.
19299         * c-common.c: Include "ggc.h".
19300         (combine_strings): If doing GC, use ggc_alloc_string.
19301         * c-decl.c: Include "ggc.h".
19302         (ggc_p): Define with value 0.
19303         (mark_binding_level): New function.
19304         (init_decl_processing): Add GC roots.
19305         (mark_c_function_context): New function.
19306         (lang_mark_false_label_stack): New function.
19307         (lang_mark_tree): New function.
19308         (lang_cleanup_tree): New function.
19309         * c-lang.c: Include "ggc.h".
19310         (lang_init): Call c_parse_init.
19311         * c-lex.c: Include "ggc.h".
19312         (check_linenum): If doing GC, don't copy filenames to permanent
19313         obstack.
19314         * c-parse.in: Include "ggc.h".
19315         (c_parse_init): New function.
19316         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
19317         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
19318
19319         * except.c (mark_eh_state): Mark more state.
19320         * function.c (mark_function_state): Likewise.
19321         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
19322         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
19323         * toplev.c (mark_file_stack): New function.
19324         (compile_file): If doing GC, use ggc_alloc_string on input filename.
19325         (main): Add root for input_file_stack.
19326
19327         * i386.c: Include "ggc.h".
19328         (ix86_mark_machine_status): New function.
19329         (override_options): Set mark_machine_status.
19330
19331 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19332
19333         * tree.c (copy_node): Copy node contents also if doing GC.
19334
19335 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
19336
19337         * collect2.c (scan_libraries): Fix double-thinko :-).
19338
19339 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
19340
19341         * collect2.c (scan_libraries): Fix thinko.
19342
19343         * cse.c (delete_trivially_dead_insns): Do not skip the last
19344         insn if it is a real insn.
19345
19346 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
19347
19348         * Makefile.in (ggc-simple.o): Depend on hash.h.
19349         * ggc.h (ggc_add_tree_hash_table_root): Declare.
19350         (ggc_mark_tree_varray): Likewise.
19351         (ggc_mark_tree_hash_table): Likewise.
19352         * ggc-simple.c: Include hash.h.
19353         (ggc_mark_tree_hash_table_ptr): New function.
19354         (ggc_mark_tree_hash_table_entry): Likewise.
19355         (ggc_mark_tree_hash_table): Likewise.
19356         (ggc_add_tree_hash_table_root): Likewise.
19357         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
19358         rtx, when defining fields.
19359
19360 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
19361
19362         * profile.c (output_func_start_profiler): Remove apparently
19363         nonsensical call to start_sequence.
19364
19365 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
19366
19367         * clipper/clipper.c (clipper_va_start): Fix typos.
19368
19369         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
19370         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
19371         (spur_va_arg): New stub.
19372
19373         * configure.in: Comment out pyramid.
19374
19375 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
19376
19377         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
19378         don't conflict with the bits that win32, cygwin, and dgux
19379         defines.
19380
19381 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
19382                           Bernd Schmidt <bernds@cygnus.co.uk>
19383
19384         * integrate.c (function_cannot_inline_p): Do not inline
19385         functions with forced labels.
19386
19387 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
19388                           Bernd Schmidt <bernds@cygnus.co.uk>
19389                           Mark Mitchell  <mark@codesourcery.com>
19390
19391         * Makefile.in (ggc-simple.o): Depend on varray.h.
19392         (rtl.o): Depend on ggc.h.
19393         (genattrtab.o): Depend on ggc.h.
19394         (print-tree.o): Likewise.
19395         (fold-const.o): Likewise.
19396         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
19397         (make_insn_raw): Don't cache insns when GC'ing.
19398         (emit_insn_before): Likewise.
19399         (emit_insn_after): Likewise.
19400         (emit_insn): Likewise.
19401         (start_sequence): Use xmalloc to allocate the sequence_stack.
19402         (end_sequence): Add free to free it.
19403         (gen_sequence): Don't cache insns when GC'ing.
19404         (clear_emit_caches): Don't use sequence_element_free_list.
19405         (init_emit): Use xcalloc, not xmalloc+bzero.
19406         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
19407         * function.c (pop_function_context_from): Use free to free the
19408         fixup_var_refs_queue.
19409         (put_reg_into_stack): Allocate it with xmalloc.
19410         * genattrtab.c: Include ggc.h.
19411         (operate_exp): Don't use obstack_free when GC'ing.
19412         (simplify_cond): Likewise.
19413         (simplify_text_exp): Likewise.
19414         (optimize_attrs): Likewise.
19415         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
19416         GC'ing.
19417         (gencode): Generate a #include for ggc.h.
19418         * ggc-callbacks.c (ggc_p): Define it to zero.
19419         * ggc-none.c (ggc_p): Likewise.
19420         * ggc-simple.c: Include varray.h.
19421         (ggc_mark_tree_varray): New function.
19422         (ggc_add_tree_varray_root): Likewise.
19423         (ggc_mark_tree_varray_ptr): Likewise.
19424         * ggc.h (ggc_p): Declare.
19425         (varray_head_tag): Likewise.
19426         (ggc_add_tree_varray_root): Declare.
19427         * print-tree.c (print_node): Don't check for TREE_PERMANENT
19428         inconsistencies when GC'ing.
19429         * rtl.c: Include ggc.h.
19430         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
19431         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
19432         (rtx_free): Don't call obstack_free when GC'ing.
19433         * toplev.c (rest_of_compilation): Call ggc_collect after every
19434         pass, if GC'ing.
19435         * tree.c (push_obstacks): Do nothing, if GC'ing.
19436         (pop_obstacks_nochange): Likewise.
19437         (pop_obstacks): Likewise.
19438         (make_node): Use ggc_alloc_tree when GC'ing.
19439         (copy_node): Likewise.
19440         (get_identifier): Use ggc_alloc_string when GC'ing.
19441         (build_string): Likewise.
19442         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
19443         (tree_cons): Likewise.
19444         (build1): Likewise.
19445         (type_hash_canon): Don't call obstack_free when GC'ing.
19446
19447 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
19448
19449         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
19450         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
19451
19452 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
19453                           Bernd Schmidt <bernds@cygnus.co.uk>
19454                           Mark Mitchell  <mark@codesourcery.com>
19455
19456         * Makefile.in (stor-layout.o): Depend on ggc.h.
19457         (expr.o): Depend on ggc.h.
19458         (profile.o): Depend on ggc.h.
19459         (stor-layout.o): Depend on ggc.h.
19460         * emit-rtl.c (init_emit_once): Add gc roots.
19461         * expr.c: Include ggc.h.
19462         (emit_block_move): Add gc roots.
19463         (clear_storage): Likewise.
19464         * expr.h (init_stor_layout_once): New function.
19465         * profile.c: Include ggc.h.
19466         (init_arc_profiler): profiler_label is a root.
19467         * scan.c (make_sstring_space): Trust xrealloc to function
19468         correctly with first parameter NULL.
19469         * stor-layout.c: Include ggc.h.
19470         (set_sizetype): Add gc root.
19471         (init_stor_layout_once): New function.
19472         * toplev.c (compile_file): Call it.
19473
19474 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
19475                           Bernd Schmidt <bernds@cygnus.co.uk>
19476                           Mark Mitchell  <mark@codesourcery.com>
19477
19478         * Makefile.in (tree.o): Depend on ggc.h.
19479         (varasm.o): Likewise.
19480         (function.o): Likewise.
19481         (stmt.o): Likewise.
19482         (except.o): Likewise.
19483         (optabs.o): Likewise.
19484         (emit-rtl.o): Likewise.
19485         * emit-rtl.c: Include ggc.h.
19486         (sequence_element_free_list): Remove, and all references.
19487         (mark_sequence): New functions.
19488         (mark_emit_state): New function.
19489         * except.c: Include ggc.h.
19490         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
19491         (mark_tree_label_node): New functions.
19492         (mark_eh_state): New function.
19493         * function.c: Include ggc.h.
19494         (mark_temp_slot, mark_function_chain): New functions.
19495         (mark_function_state): New function.
19496         (init_function_once): New function.
19497         * function.h (init_function_once): New function.
19498         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
19499         * ggc.h (label_node): Declare.
19500         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
19501         (lang_mark_false_label_stack): New function.
19502         (mark_temp_slot): Remove declaration.
19503         (mark_function_chain): Likewise.
19504         (mark_eh_state): Adjust prototype.
19505         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
19506         Likewise.
19507         * optabs.c: Include ggc.h.
19508         (mark_optab): New function.
19509         (init_optabs): Add gc roots.
19510         * stmt.c: Include ggc.h.
19511         (mark_cond_nesting, mark_loop_nesting): New functions.
19512         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
19513         (mark_stmt_state): New function.
19514         * toplev.c (compile_file): Call init_function_once.
19515         * tree.c: Include ggc.h.
19516         (type_hash): Move declaration earlier in file.
19517         (TYPE_HASH_SIZE, type_hash_table): Likewise.
19518         (init_obstacks): Add gc roots.
19519         (mark_type_hash): New function.
19520         * varasm.c: Include ggc.h.
19521         (mark_pool_constant): New function.
19522         (mark_varasm_state): New function.
19523
19524 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19525
19526         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
19527
19528 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
19529
19530         * c-decl.c (struct language_function): Renamed from struct c_function.
19531         Delete elt NEXT.
19532         (c_function_chain): Delete.
19533         (push_c_function_context): New arg F.  Don't warn about nested
19534         functions here.  Fill LANGUAGE elt of F.  Delete code to update
19535         c_function_chain.  Don't call push_function_context.
19536         (pop_c_function_context): New arg F.  Restore from there instead of
19537         from c_function_chain.  Don't call pop_function_context.  Clear out
19538         LANGUAGE field of F when done.
19539         * c-lang.c: Include "function.h"
19540         (lang_init): Initialize save_lang_status and restore_lang_status.
19541         * c-parse.in (nested_function, nested_function_notype): Warn about
19542         nested functions.  Call push_function_context/pop_function_context
19543         instead of the _c_ variants.
19544         * c-tree.h (push_c_function_context, pop_c_function_context): Update
19545         prototype.
19546         * Makefile.in (c-lang.o): Update dependencies.
19547
19548         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
19549         regno_pointer_flag, regno_pointer_align.
19550         (gen_reg_rtx): Use xrealloc to enlarge them.
19551         (free_emit_status): New function.
19552         * function.c (mark_machine_status, mark_lang_status): New variables.
19553         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
19554         in some bits from assign_stack_local.  All callers changed to use new
19555         name.
19556         (assign_stack_local): Just call assign_stack_local_1.
19557         (free_after_compilation): New function.
19558         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
19559         (trampoline_address): Likewise.
19560         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
19561         (prepare_function_start): Explicitly clear some more variables.
19562         * function.h (struct function): New elt can_garbage_collect.
19563         (mark_machine_status, mark_lang_status): Declare variables.
19564         (free_after_compilation, free_emit_status, free_varasm_status,
19565         init_varasm_status): Declare functions.
19566         * toplev.c (rest_of_compilation): Call free_after_compilation when
19567         done with the current function.
19568         * varasm.c (free_varasm_status): New function.
19569
19570 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
19571
19572         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
19573         (EXPAND_BUILTIN_VA_ARG): Define.
19574         * sparc.c (sparc_va_start): New.
19575         (sparc_va_arg): New.
19576
19577 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19578
19579         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
19580
19581 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19582
19583         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
19584
19585 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
19586
19587         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
19588         (OBJS): Add $(GGC).
19589         (ggc-callbacks.o): New target.
19590         * ggc-callbacks.c: New file.
19591
19592 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19593
19594         * expr.h: Collapse individual optab and libfunc vars to arrays.
19595         (optab_index, libfunc_index): New enumerations.
19596         (optab_table, libfunc_table): New arrays.
19597         Add accessor macros for both.
19598
19599         * optabs.c (optab_table, libfunc_table): New.
19600         Delete declarations for individual optab and libfunc vars.
19601
19602 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
19603
19604         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
19605
19606 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
19607
19608         * Makefile.in (GGC, GGC_LIB): New.
19609         (HOST_RTL): Include ggc-none.o.
19610         (ggc-simple.o): New target.
19611         (ggc-none.o): Likewise.
19612         * tree.h (tree_common): Add gc_mark.
19613         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
19614         (struct rtvec_def): Add gc_mark.
19615         * emit-rtl.c (global_rtl): Update static initializers to contain
19616         enough initializers.
19617         * ggc.h, ggc-none.c, ggc-simple.c: New files.
19618         * toplev.c (gc_time): New variable.
19619         (all_time): New variable.
19620         (compile_file): Print gc time.
19621         (print_time): Calculate percentage of the whole.
19622
19623 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19624
19625         Change obstack memory management and varasm constant pool handling so
19626         that nested functions are treated like any other functions.
19627         * function.c (init_machine_status): New variable.
19628         (push_function_context_to): Set contains_functions for the outer
19629         function.  Don't call save_varasm_status.
19630         (pop_function_context_from): Don't call restore_varasm_status.  Don't
19631         set current_function_contains_functions.
19632         (prepare_function_start): Call init_varasm_status rather than
19633         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
19634         is non-null.
19635         * function.h (struct function) Add field varasm.  Delete fields
19636         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
19637         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
19638         (init_machine_status): Declare.
19639         (save_varasm_status, restore_varasm_status): Delete declarations.
19640         (save_tree_status, restore_tree_status): Delete last argument.
19641         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
19642         code.  All callers changed.
19643         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
19644         save_constants_in_decl_trees, restore_constants, save_constants,
19645         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
19646         functions.
19647         (inlining): New variable.
19648         (reg_map, label_map, insn_map, orig_asm_operands_vector,
19649         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
19650         variables.
19651         (save_for_inline_nocopy): Don't save constants.
19652         Don't set inl_emit field in current_function.
19653         (expand_inline_function): Use emit field, not inl_emit, of the inlined
19654         function.  Set new variable inlining before
19655         calling copy_rtx_and_substitute.
19656         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
19657         constant pool references if inlining is nonzero.
19658         Delete ADDRESS and (most of the) CONST cases.
19659         (output_inline_function): Save and restore current_function/
19660         current_function_decl.  Delete restore_constants code.  Don't call
19661         init_const_rtx_hash_table.
19662         * output.h (init_const_rtx_hash_table): Don't declare.
19663         * rtl.h (struct function): Declare.
19664         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
19665         * toplev.c (rest_of_compilation): Don't treat nested functions or
19666         functions containing them specially.  Delete all code to deal with
19667         save_for_inline_copying.
19668         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
19669         inline_obstacks): Delete variables.
19670         (save_tree_status): Lose arg CONTEXT.  All callers changed.
19671         Simply allocate a new function_maybepermanent_obstack for the new
19672         function, delete all the special cases.
19673         Don't save inline_obstacks.
19674         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
19675         Delete special handling for function_maybepermanent_obstack; simply
19676         free it if empty.
19677         Don't restore inline_obstacks.
19678         (permanent_allocation):  Delete code that frees inline_obstacks.
19679         (print_inline_obstack_statistics): Delete function.
19680         (dump_tree_statistics): Don't call it.
19681         * varasm.c (struct varasm_status): New.
19682         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
19683         last_pool, pool_offset, const_double_chain): Delete global
19684         variables, replace with accessor macros.
19685         (immed_double_const): Don't walk const_double_chain outside a
19686         function, but don't treat nested functions specially anymore.
19687         (immed_real_const_1): Likewise.
19688         (clear_const_double_mem): Don't treat nested functions specially.
19689         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
19690         (save_varasm_status, restore_varasm_status): Delete functions.
19691         (init_varasm_status): New function.
19692         (force_const_mem): Don't treat nested functions specially.
19693         (find_pool_constant): Accept new arg F, search for constants in
19694         that function's pool rather than the current one.  All callers
19695         changed.
19696         (get_pool_constant_for_function, get_pool_mode_for_function): New
19697         functions.
19698
19699         * i386.c (init_386_machine_status): New function, mostly from
19700         clear_386_stack_locals.
19701         (struct machine_functions): Rename element names to avoid name
19702         clashes.
19703         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
19704         macros, replacing global variables.
19705         (clear_386_stack_locals, save_386_machine_status,
19706         restore_386_machine_status): Delete functions.
19707         (override_options): Initialize init_machine_status.
19708         * i386.h (INIT_EXPANDERS): Delete macro.
19709         (save_386_machine_status, restore_386_machine_status,
19710         clear_386_stack_locals): Delete declarations.
19711
19712 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19713
19714         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
19715         (doloop_begin):  Simplify pattern and use emit_jump_insn.
19716         (doloop_end): Simplify pattern, switch operand order,
19717         and use emit_jump_insn.
19718
19719 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
19720
19721         * function.h (struct function): Add new element LANGUAGE.
19722         (save_lang_status): Declare new variable.
19723         (restore_lang_status): Likewise.
19724         * function.c (save_lang_status): Define.
19725         (restore_lang_status): Likewise.
19726         (push_function_context_to): Call language-specific save function.
19727         (pop_function_context_from): Call language-specific restore function.
19728
19729 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
19730
19731         * i386.md (movsf_1): Check REG_P before use of REGNO.
19732         (movdf_1): Likewise.
19733         (movxf_1): Likewise.
19734         (extendsfdf2): Likewise.
19735         (extendsfxf2): Likewise.
19736         (extenddfxf2): Likewise.
19737
19738 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19739
19740         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
19741         constants into memory.
19742         (c4x_shiftable_constant): New function.
19743         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
19744         (c4x_shiftable_constant): Declare.
19745         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
19746         ashlqi3_noclobber): Add new patterns and associated splitters.
19747
19748 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
19749
19750         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
19751         * dwarf2out.c (dwarf2out_frame_init): Likewise.
19752         * final.c (shorten_branches): Likewise.
19753         * global.c (global_alloc): Likewise.
19754         * haifa-sched.c (build_control_flow): Likewise.
19755         * stmt.c (check_for_full_enumeration_handling): Likewise.
19756         (estimate_case_costs): Likewise.
19757
19758 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
19759
19760         * rtl.h (RTL_CHECKC2): Fix typo in last change.
19761
19762 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
19763
19764         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
19765         (recompute_reg_usage): Likewise.
19766         * rtlanal.c (find_regno_fusage): Likewise.
19767
19768         * rtl.c (rtl_check_failed_code1): New function.
19769         (rtl_check_failed_code2): New.
19770         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
19771         (RTL_CHECKC1, RTL_CHECKC2): New.
19772         (XC*): New accessor macros.
19773         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
19774         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
19775         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
19776         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
19777         (TRAP_*, RANGE_INFO_*): Likewise.
19778
19779 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19780
19781         * Makefile.in (tlink.o): Don't depend on toplev.h.
19782
19783         * collect2.c (c_file, o_file, export_file, import_file, ldout,
19784         output_file, nm_file_name, ldd_file_name, strip_file_name,
19785         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
19786         add_prefix, prefix_from_env, prefix_from_string, do_wait,
19787         fork_execute, maybe_unlink, add_to_list,
19788         extract_init_priority, write_list, dump_list,
19789         dump_prefix_list, write_list_with_asm, write_c_file,
19790         write_c_file_stat, write_c_file_glob, scan_prog_file,
19791         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
19792         ignore_library, extract_string, notice, dump_file, target_machine,
19793         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
19794         read_file, print_load_command): Constify a char*.
19795         (fdopen, error, fatal, fatal_perror): Don't prototype.
19796         (my_strerror): Remove.  All callers use xstrerror instead.
19797         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
19798         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
19799         to xcalloc/strcpy/strcat/...  to one call to concat.
19800         (main, scan_prog_file, scan_libraries): Use an intermediate
19801         `const char **' to build an argv array.
19802         (mapfile, libselect, libcompare, locatelib): Add prototypes.
19803
19804         * collect2.h (collect_execute, collect_wait, dump_file,
19805         file_exists): Constify a char*.
19806         (ldout, c_file_name, temporary_obstack, permanent_obstack,
19807         temporary_firstobj, vflag, debug): Add extern declarations.
19808         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
19809
19810         * tlink.c: Don't include toplev.h.
19811         (vflag, debug, ldout, c_file_name, temporary_obstack,
19812         permanent_obstack, temporary_firstobj): Don't declare.
19813         (tlink_execute, frob_extension, symbol_hash_lookup,
19814         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
19815         recompile_files, read_repo_files, demangle_new_symbols,
19816         scan_linker_output): Constify a char*.
19817         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
19818         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
19819
19820 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
19821
19822         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
19823         (relative) rather than jsr (absolute) subroutine call insns.
19824         * config/m68k/m68k-coff.h: Ditto.
19825
19826 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
19827
19828         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
19829         now rework these too.
19830         (arm_reorg): If an insn can't reach the end of the current pool,
19831         ensure that we emit that pool before the insn.
19832
19833 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
19834
19835         * tlink.c (scan_linker_output): Skip the initial underscore in
19836         a mangled name if appropriate.
19837
19838 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19839
19840         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
19841         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
19842         error_with_ivar, gen_declarator, create_builtin_decl,
19843         my_build_string, generate_descriptor_table, generate_ivars_list,
19844         generate_dispatch_table, check_protocols, TAG_GETCLASS,
19845         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
19846         dump_base_name, lang_decode_option, build_encode_expr,
19847         start_class, finish_class, encode_pointer, really_start_method,
19848         gen_declaration, dump_interface, handle_class_ref, handle_impent):
19849         Constify.
19850         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
19851         Add static prototypes.
19852         (build_objc_string_decl, build_selector_reference_decl,
19853         encode_bitfield, build_class_reference_decl): Remove unused
19854         parameter, all callers changed.
19855         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
19856         (objc_printable_name): Likewise.  Change second parameter to type int.
19857         (init_objc): Use memcpy, not bcopy, to avoid casts.
19858
19859 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
19860
19861         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
19862         reg notes on a deleted insn.
19863         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
19864
19865 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
19866
19867         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
19868
19869 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19870
19871         * stmt.c (expand_asm_operands): Fix index into inout_mode when
19872         reading it.
19873
19874 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
19875
19876         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
19877         * tm.texi (MD_ASM_CLOBBERS): Document it.
19878
19879 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
19880
19881         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
19882         * except.c (expand_rethrow): Remove unused variable.
19883         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
19884         * flow.c (replace_insns): Likewise.
19885         (create_edge_list, verify_edge_list): Likewise.
19886         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
19887
19888         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
19889         is special code to run.
19890         (main): Don't define operands to emit_operand.
19891         * genrecog.c (main): Don't emit an empty peephole2_insn function.
19892
19893         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
19894
19895         * alpha/alpha.h (normal_memory_operand): Declare.
19896         (reg_no_subreg_operand): Declare.
19897         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
19898
19899 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
19900
19901         * c-parse.in (compstmt_primary_start): New, broken out of first
19902         part of compstmt handling in primary.
19903         (primary): Use it.  Add an error clause.
19904         (compstmt_nostart): Renamed from compstmt; remove all
19905         initial invocations of compstmt_start.
19906         (compstmt): New.
19907
19908 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
19909
19910         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
19911         needed.
19912
19913 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
19914
19915         * combine.c (simplify_shift_const): Remove extra semicolon.
19916         * dwarf2out.c (remove_AT): Likewise.
19917         * expmed.c (expand_mult): Likewise.
19918         * gcov.c (create_program_flow_graph): Likewise.
19919         * reorg.c (mostly_true_jump): Likewise.
19920
19921 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
19922
19923         * fold-const.c (fold_range_test): Do not try to fold the range
19924         test if the rhs or lhs has side effects.
19925
19926         * combine.c (simplify_rtx): Recognize another case of a synthesized
19927         sign extension.
19928
19929         * varasm.c (mark_constant_pool): When marking indirect references,
19930         only look at SYMBOL_REFs.
19931
19932         * except.c (expand_fixup_region_end): Do not peek at
19933         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
19934
19935 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
19936
19937         * flags.h: New variables align_loops, align_loops_log,
19938         align_jumps, align_jumps_log, align_labels, align_labels_log,
19939         align_functions, align_functions_log.
19940         * toplev.c: Define them.
19941         (f_options): Handle -falign-* when they have no argument.
19942         (main): Add logic to set variables for -falign-functions,
19943         -falign-jumps, -falign-labels, -falign-loops.
19944         Make it -fsched-verbose=<n> and -finline-limit=<n>.
19945         (display_help): Change help to match options.
19946         * final.c (LABEL_ALIGN): Default to align_labels_log.
19947         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
19948         (LOOP_ALIGN): Default to align_loops_log.
19949         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
19950         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
19951         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
19952         * varasm.c (assemble_start_function): Handle align_functions.
19953
19954         * config/sparc/sparc.h: Don't declare sparc_align_*.
19955         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
19956         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
19957         sparc.c.
19958         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
19959         it's a promise.
19960         * config/sparc/sparc.c: Delete sparc_align_loops,
19961         sparc_align_jumps, sparc_align_funcs and the corresponding string
19962         variables.
19963         (sparc_override_options): Default align_functions on ultrasparc.
19964         Delete -malign-* handling.
19965
19966         * config/mips/mips.c (override_options):  On 64-bit targets,
19967         try to align code to 64-bit boundaries.
19968         (print_operand): New substitution, %~,
19969         which aligns labels to align_labels_log.
19970         * config/mips/mips.md (div_trap_normal): Use %~.
19971         (div_trap_mips16): Likewise.
19972         (abssi): Likewise.
19973         (absdi2): Likewise.
19974         (ffssi2): Likewise.
19975         (ffsdi2): Likewise.
19976         (ashldi3_internal): Likewise.
19977         (ashrdi3_internal): Likewise.
19978         (lshrdi3_internal): Likewise.
19979         (casesi_internal): Likewise.
19980
19981 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
19982
19983         Merge new ia32 backend from the branch!
19984
19985         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
19986         See ChangeLog.P2 on new_ia32_branch for details.
19987
19988         * rtl.h (stack_regs_mentioned_p): Delete prototype.
19989         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
19990         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
19991         * i386/gas.h (ASM_FILE_START): Define.
19992         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
19993         for name change of ix86_valid_decl_attribute_p.
19994         (i386_pe_valid_type_attribute_p): Similarly.
19995
19996 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
19997
19998         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
19999         to step through CC modes.
20000
20001 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20002
20003         * regmove.c (fixup_match_1): Don't move INSN in front of P if
20004         it would end up in the shadow of a live flags regsiter.
20005
20006 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20007
20008         * reload1.c: Fix many indentation problems.
20009         * reload.c: Likewise.
20010
20011 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
20012
20013         * alias.c (non_local_reference_p): Constify fmt.
20014
20015 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
20016
20017         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
20018
20019 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
20020
20021         * cse.c (delete_trivially_dead_insns): Do not delete stores to
20022         the internal_arg_pointer.
20023
20024 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
20025
20026         Merge peephole2 from new_ia32_branch:
20027         * Makefile.in (STAGESTUFF): Add *.peephole2.
20028         (mostlyclean): Likewise.
20029         (recog.o): Depend on resource.h.
20030
20031         * final.c (peephole): Conditionalize decl on HAVE_peephole.
20032         (final_scan_insn): Likewise for the invocation of peephole.
20033         * genconfig.c (main): Look for peephole and peephole2 patterns.
20034         Emit HAVE_peephole* accordingly.
20035         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
20036         * flags.h (flag_peephole2): Declare.
20037         * toplev.c: New pass peephole2.  New flag -fpeephole2.
20038
20039         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
20040         * gencodes.c (main): Likewise.
20041         * genextract.c (main): Likewise.
20042         * genoutput.c (main): Likewise.
20043         * genemit.c (max_operand_1): Look for the max scratch operand.
20044         (gen_rtx_scratch): New.
20045         (gen_exp): Use it, and pass on new arg subroutine_type.
20046         (gen_expand): Take max scratch into account.
20047         (gen_split): Emit peephole2 functions.
20048         (output_peephole2_scratch): New.
20049         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
20050         * genrecog.c (routine_type): Add PEEPHOLE2.
20051         (IS_SPLIT): New.
20052         (make_insn_sequence): Match outer parallel for peep2.  Discard
20053         top level scratches and dups.
20054         (add_to_sequence): New args insn_type and top.  Update all callers.
20055         Handle toplevel peep2 matching insns.
20056         (write_subroutine): Handle peep2.
20057         (write_tree_1): Likewise.
20058         (write_tree): Likewise.
20059         (main): Likewise.
20060         (change_state): New arg afterward.  Update all callers.
20061         Handle matching separate insns.
20062         * recog.c (recog_next_insn): New.
20063         (peephole2_optimize): New.
20064         * rtl.def (DEFINE_PEEPHOLE2): New.
20065         * resource.c (find_free_register): New argument last_insn.  Use it
20066         to find a register available through the entire span.
20067         * resource.h (find_free_register): Update prototype.
20068
20069 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
20070
20071         * i386.c (output_strlen_unroll): Don't write xops[7]
20072         label if it wasn't set.
20073
20074 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
20075
20076         * cpplib.c (struct directive): Const-ify name pointer and
20077         function pointer prototype.
20078         (validate_else, do_define, do_line, do_include, do_undef,
20079         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
20080         do_elif, do_endif, do_sccs, do_assert, do_unassert,
20081         do_warning): Const-ify second arg.
20082         (directive_table): Mark const.  Reorder entries by frequency
20083         of usage, record statistics.
20084
20085 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
20086
20087         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
20088         bounds- check RTL accesses if --enable-checking.
20089         (RTVEC_ELT): Bounds check if --enable-checking.
20090         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
20091         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
20092         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
20093         GET_NUM_ELEM.
20094         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
20095         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
20096
20097         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
20098         (NOTE_SOURCE_FILE): Use X0STR.
20099         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
20100         MEM_ALIAS_SET): Use X0INT.
20101         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
20102         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
20103         Use X0EXP.
20104         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
20105         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
20106         (rtl_check_failed_bounds, rtl_check_failed_type1,
20107         rtl_check_failed_type2, rtvec_check_failed_bounds): New
20108         functions.
20109         (fancy_abort): Fix comment.
20110
20111         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
20112         (cse_insn): Decrement LABEL_NUSES for jump target before
20113         deleting jump insn.
20114         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
20115         * final.c (alter_subreg): Compute regno before changing x to
20116         REG; set REGNO(x) after changing it.
20117         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
20118         notes containing CONST_INTs.
20119         (delete_eh_regions): Use NOTE_EH_HANDLER.
20120         * function.c (put_reg_into_stack): Make reg a MEM before
20121         initializing it.
20122         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
20123         delete insn.
20124         (gen_mem_addressof): Make reg a MEM before initializing it.
20125         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
20126         X0WINT.
20127         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
20128         deleting an insn, not after.
20129         (block_alloc): Only look at PATTERN(insn) if we have to, and
20130         only if it's format class 'i'.
20131         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
20132         CONST_INT before using its INTVAL.
20133         * print-rtl.c (print_rtx): Use X0STR.
20134         * regmove.c (fixup_match_1): Don't look at PATTERN of
20135         non-class-'i' insn chain elements.
20136         * reload.c (loc_mentioned_in_p): Take address of
20137         in->fld[1].rtx directly.
20138         * reload1.c (reload): Change reg to a MEM before initializing
20139         it.
20140         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
20141         have no names.
20142         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
20143
20144 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
20145
20146         * config/mips/mips.c (machine_dependent_reorg): Force a
20147         barrier to output the local constant pool if a barrier hasn't
20148         been found at a natural point in the instruction stream.
20149
20150 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20151
20152         * c-parse.in (language_string): Constify.
20153
20154         * dwarf2out.c (language_string): Remove declaration.
20155
20156         * dwarfout.c (language_string): Likewise.
20157
20158         * toplev.c (language_string, init_parse, finish_parse): Likewise.
20159
20160         * tree.h (language_string, init_parse, finish_parse): Declare.
20161
20162         * i386/sun386.h (language_string): Remove declaration.
20163
20164         * mips.h (language_string): Likewise.
20165
20166         * nextstep.h (language_string): Likewise.
20167
20168         * nextstep21.h (language_string): Likewise.
20169
20170         * rs6000.c (language_string): Likewise.
20171
20172 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20173
20174         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
20175         (getpwd.o): Remove target.
20176
20177         * getpwd.c: Delete file.  Its in libiberty now.
20178
20179         * dbxout.c (getpwd): Don't prototype.
20180         * dwarf2out.c (getpwd): Likewise
20181         * dwarfout.c (getpwd): Likewise
20182         * final.c (getpwd): Likewise.
20183         * protoize.c (getpwd): Likewise.
20184
20185 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20186
20187         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
20188
20189 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
20190
20191         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
20192         mark_set_resources.
20193
20194 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
20195
20196         * fixinc/Makefile.in (subdir): New.
20197         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
20198         (Makefile): New.
20199
20200 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
20201
20202         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
20203         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
20204         be shared.
20205
20206         * invoke.texi: Fix typo.
20207
20208         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
20209         changed.  Handle autoincrement addressing modes.
20210
20211         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
20212         just like we would the virtual incoming args register when
20213         integrating.
20214
20215 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
20216
20217         * rs6000.h (ASM_FILE_START): Specify complete filename, including
20218         path, in .file directive.
20219
20220 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
20221
20222         * gcc.texi (External Bugs): Remove obsolete note about Perl on
20223         SunOS.
20224
20225 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
20226
20227         * stdbool.h: Make the typedef name _Bool, with bool a #defined
20228         alias.
20229
20230 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20231
20232         * tree.c (tree_code_name): Constify a char*.
20233
20234         * tree.h (tree_code_name, decl_printable_name): Likewise.
20235
20236         * function.h (struct function): Likewise.
20237
20238         * toplev.c (decl_name, decl_printable_name): Likewise.
20239
20240         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
20241
20242         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
20243         (init_objc): Remove function pointer cast.
20244
20245 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
20246
20247         * pa.md (interspace_jump): New pattern.
20248         (builtin_longjmp): New expander.
20249
20250 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
20251
20252         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
20253         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
20254         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
20255
20256 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
20257
20258         * jump.c (delete_prior_computation): Also check calls
20259         to constant functions.  Don't bother checking for a
20260         REG_UNUSED note before adding it.
20261         (delete_computation): Handle multi-word hard registers
20262         when synthesizing missing REG_DEAD notes for a register
20263         which is both set and used by an insn.
20264
20265 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20266
20267         * loop.c (this_loop_info): New variable.
20268         (loop_has_call, loop_has_volatile, loop_has_tablejump,
20269         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
20270         All uses updated.
20271         (prescan_loop, strength_reduce): New argument loop_info.  All callers
20272         updated.
20273         (scan_loop): New variable loop_info, initialise to address of
20274         this_loop_info.
20275         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
20276         Delete variable loop_has_multiple_exit targets and replace with
20277         field in this_loop_info.
20278         (find_and_verify_loops): Rename this_loop to this_loop_num.
20279         (strength_reduce): Delete loop_iteration_info.  Replace variable
20280         loop_info with function argument of same name.
20281         (insert_bct): Rework test for loop being completely unrolled.
20282
20283         * loop.h (struct loop_info): New fields num, loops_enclosed,
20284         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
20285         has_indirect_jump, and cont.  Redefine use of unroll_number.
20286         (loop_unroll_number): Delete.
20287
20288         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
20289         field of loop_info.
20290         (loop_iterations): Delete variable vtop and instead use
20291         loop_info->vtop computed in prescan_loop.
20292
20293 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
20294
20295         * fix-header.c (main): Do not pass a null pointer to strcmp.
20296
20297 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
20298
20299         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
20300         filenames.
20301         * configure: Rebuilt.
20302
20303 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
20304
20305         * jump.c (jump_optimize_1): Do not delete assignments to
20306         internal_arg_pointer.
20307         * cse.c (delete_trivially_dead_insns): Always consider a set of
20308         the internal_arg_pointer live.
20309
20310 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
20311
20312         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
20313         (update_life_info) [REG_WAS_0]: Search the original insns rather
20314         than the new insns for the note.  Fix typos finding note_dest.
20315         If no dest found, discard the note rather than abort.
20316         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
20317         (replace_insns): Remove the old insn list after update_life_info
20318         not before.
20319
20320 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
20321
20322         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
20323         sched_analyze_insn.
20324         (sched_analyze_1): Let add_dependence care for not adding dups.
20325         (sched_analyze_2): Likewise.
20326         (add_branch_dependences): Likewise.
20327
20328 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
20329
20330         * i386/winnt.c (export_list): New type.
20331         (exports_head): Rename to
20332         (export_head):  this.
20333         (i386_pe_record_exported_symbol): Add is_data flag.
20334         (i386_pe_asm_file_end): Emit directive for exported variables.
20335         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
20336         prototype.
20337         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
20338         (ASM_DECLARE_OBJECT_NAME): Likewise.
20339         (ASM_DECLARE_FUNCTION_NAME): Likewise.
20340         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20341
20342 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
20343
20344         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
20345
20346         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
20347         operand.
20348
20349 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
20350
20351         * config/openbsd.h: Define SET_ASM_OP.
20352         * tm.texi: cross-reference SET_ASM_OP in the index.
20353
20354 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
20355
20356         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
20357         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
20358         and class_narrowest_mode at compile time.  Kill init_rtl.
20359         Mark rtx_length, mode_class, mode_size, mode_unit_size,
20360         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
20361         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
20362         EXTRA_CC_NAMES.
20363         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
20364         format.
20365         * rtl.h: Declare rtx_length and rtx_format as const.
20366         * machmode.def: Define CC().  Use CC() to define CCmode.  If
20367         EXTRA_CC_MODES is defined, expand it here.
20368         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
20369         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
20370         const.  Kill all references to EXTRA_CC_MODES.
20371
20372         * toplev.c: Don't prototype or call init_rtl.
20373         * optabs.c: Don't call init_mov_optab.
20374         * genemit.c: Don't generate init_mov_optab.  Don't call
20375         init_rtl.
20376         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
20377         here.
20378         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
20379         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
20380         genrecog.c: Don't call init_rtl.
20381
20382         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
20383         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
20384         definition of EXTRA_CC_MODES.
20385
20386         * md.texi: Kill ref to EXTRA_CC_NAMES.
20387         * tm.texi: Document new way to define EXTRA_CC_MODES.
20388
20389         * genrecog.c: Do not look up the name of a define_split.
20390         (Unrelated bugfix.)
20391
20392 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
20393
20394         * config/v850/v850.md: Fix typo introduced by previous delta.
20395
20396 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20397
20398         * gcc.c (fatal): Make definition static to match prototype.
20399
20400 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20401
20402         * combine.c (get_last_value): Don't look for earlier sets if the last
20403         known set is somewhere in between the insns being combined.
20404
20405 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
20406
20407         * configure.in: Don't use shell ! to negate exit codes
20408         * configure: Regenerate
20409
20410 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
20411
20412         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
20413         the fact that ALIGN is measured in bits, not bytes.
20414
20415 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
20416
20417         * errors.c: New file; defines functions error, warning, and
20418         fatal, variables have_error and progname.
20419         * errors.h: New file; prototypes and decls for stuff in errors.c.
20420
20421         * Makefile: Add rules to build errors.o and
20422         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
20423         genopinit, genrecog, genextract, genpeep, genattr, and
20424         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
20425         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
20426         genpeep.o, genattr.o, and genoutput.o.
20427
20428         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
20429         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
20430         define or prototype fatal.  Set progname at beginning of main.
20431         * genoutput.c:  Likewise, and don't define or prototype error
20432         either.
20433
20434         * c-typeck.c (c_expand_start_case): Return immediately if exp
20435         is an ERROR_MARK.
20436         * fold-const.c (operand_equal_p): Return immediately if arg1
20437         or arg0 are ERROR_MARKs.
20438         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
20439         fields of type ERROR_MARK when calculating if the record can
20440         go in a register.
20441
20442 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
20443         with much help from Jeffrey A Law and Richard Henderson
20444
20445         * i386.md: In the 6 insns which call output_fix_trunc,
20446         earlyclobber operands[0].
20447
20448 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
20449
20450         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
20451         creating new registers.
20452
20453 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
20454
20455         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
20456         i386_reg_alloc_order, i386_regparm_string,
20457         i386_align_loops_string, i386_align_jumps_string,
20458         i386_align_funcs_string, i386_preferred_stack_boundary_string,
20459         and i386_branch_cost_string as type "const char *".
20460         * i386.c: Define all above strings as type "const char *".
20461
20462 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
20463
20464         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
20465         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
20466
20467 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
20468
20469         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
20470         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
20471
20472 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
20473
20474         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
20475         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
20476         (dwarf2out_line, dwarf2out_finish): Likewise.
20477         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
20478
20479 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20480
20481         * tree.c (lang_unsave_expr_now) : Correct return type.
20482         * tree.h (lang_unsave_expr_now) : Same.
20483
20484 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
20485
20486         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
20487         instead of duplicating code.
20488
20489 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20490
20491         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
20492
20493 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
20494
20495         * tree.h: fancy_abort always takes three args.
20496         * resource.c: Move include of system.h before toplev.h.
20497
20498 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
20499
20500         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
20501         as SYMBOL_REFs.
20502
20503 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
20504
20505         * system.h: Don't redefine abort or trim_filename.
20506         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
20507         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
20508         whether or not __FUNCTION__ is available.
20509         * tree.h: Duplicate rtl.h's definition of abort, for files
20510         that don't include rtl.h.  Delete all code to perform type
20511         checking with a compiler other than GCC.
20512         * varray.h: Delete all code to perform type checking with a
20513         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
20514         its arguments exactly once, using a statement expression.
20515         Adjust the VARRAY_<type> accessor macros to match.
20516         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
20517         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
20518         caller's location.  Define fatal_insn and fatal_insn_not_found
20519         as macros that use _fatal_insn and _fatal_insn_not_found.
20520         (fancy_abort, trim_filename): Kill prototypes.
20521
20522         * rtl.c (trim_filename): Move here from toplev.c.
20523         (fancy_abort): New function.
20524         (DIR_SEPARATOR): Provide default definition.
20525         * tree.c (tree_check_failed, tree_class_check_failed): Go
20526         through fancy_abort.
20527         (tree_check, tree_class_check, cst_or_constructor_check,
20528         expr_check): Delete.
20529         * varray.c (varray_check_failed): New function.
20530         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
20531         _fatal_insn and _fatal_insn_not_found.  Go through
20532         fancy_abort.
20533         (trim_filename, fancy_abort): Delete.
20534
20535         * builtins.c (expand_builtin_args_info): Report ICE with abort.
20536         * except.c (start_catch_handler): Report ICE with error/abort
20537         combo.
20538         * final.c (output_operand_lossage): Likewise.
20539         * flow.c (verify_flow_info): Likewise.
20540
20541         * gcc.c: Prototype fatal.
20542         * gengenrtl.c: Undef abort after including rtl.h not system.h.
20543         * genattr.c, genattrtab.c, genemit.c, genextract.c,
20544         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
20545         Don't define fancy_abort.
20546
20547 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
20548
20549         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
20550         canonization.
20551
20552 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
20553
20554         * m88k.h (VERSION_INFO2): Kill.
20555         (VERSION_STRING): Kill.
20556         (TM_RCS_ID): Kill.
20557         (VERSION_INFO1): Tidy.
20558         (TARGET_VERSION): Update.
20559         * m88k/dgux.h (VERSION_INFO2): Kill.
20560         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
20561         * m88k/luna.h (VERSION_INFO1): Tidy.
20562         * m88k/sysv4.h (VERSION_INFO1): Likewise.
20563         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
20564         (output_file_start): Adjust for death of VERSION_STRING.
20565
20566 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
20567
20568         * cpplib.c (detect_if_not_defined): New function.
20569         (do_if): Use it to detect potential once-only headers.
20570
20571 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
20572
20573         * c-common.c (combine_strings): Always set TREE_CONSTANT.
20574
20575 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20576
20577         * combine.c (nonzero_bits) : Allow single-ly set registers to be
20578         anywere in the function only if they are pseudos and set before
20579         being used (not live at the start of the function).
20580         (num_sign_bit_copies) : Same.
20581         (get_last_value_validate) : Same.
20582         (get_last_value) : Same.
20583
20584 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
20585
20586         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
20587         where N and M are constant and N is an integer multiple of M.
20588
20589 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20590
20591         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
20592         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
20593         sbitmap_union_of_preds): Add prototypes.
20594         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
20595         the intersection of successors with the new flow graph structures.
20596         (sbitmap_intersection_of_preds): New function to compute the
20597         intersection of predecessors with the new flow graph structures.
20598         (sbitmap_union_of_succs): New function to compute the union of
20599         successors with the new flow graph structures.
20600         (sbitmap_union_of_preds): New function to compute the union of
20601         predecessors with the new flow graph structures.
20602         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
20603         (expr_reaches_here_p): Use edge and basic_block structures instead
20604         of s_preds and s_succs.
20605         (compute_cprop_avinout): Use new sbitmap routines.
20606         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
20607         of s_preds and s_succs.
20608         * flow.c (compute_flow_dominators): Compute dominators using
20609         edges and basic blocks instead of s_preds and s_succs.
20610
20611 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20612
20613         * lists.c (unused_insn_list, unused_expr_list): New file for
20614         maintaining various types of lists. New statics for maintaining a
20615         cache of available INSN_LIST and EXPR_LIST nodes.
20616         (free_list): Static function for freeing a list of INSN/EXPR nodes.
20617         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
20618         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
20619         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
20620         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
20621         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
20622         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
20623         (free_INSN_LIST_node): Free an individual INSN_LIST node.
20624         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
20625         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
20626         (remove_dependence, free_pending_lists): Use new global routines.
20627         (flush_pending_lists, sched_analyze_insn): Use new global routines.
20628         (sched_analyze, compute_block_backward_dependences): Use new routines.
20629         (sched_analyze_1, sched_analyze_2): Use new routines.
20630         (schedule_insns): Use new global routines.
20631         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
20632         prototypes.
20633         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
20634         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
20635         prototypes.
20636         * toplev.c (rest_of_compilation): Initialize node cache.
20637         * Makefile.in (OBJS): Add lists.o to list of object files.
20638         (lists.o): Add dependancies.
20639
20640 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
20641
20642         * config/v850/v850.md: Fix compile time warning messages.
20643         * config/v850/v850.c: Fix compile time warning messages.
20644         * config/v850/v850.h: Fix compile time warning messages.
20645
20646 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20647
20648         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
20649         Remove unused prototype for `init_lengths'.
20650
20651 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20652
20653         * calls.c (emit_call_1): Mark parameter `stack_size' with
20654         ATTRIBUTE_UNUSED.
20655         (expand_call): Initialize variable `insn'.
20656         (emit_library_call): Likewise for variable `high_to_save'.
20657         (emit_library_call_value): Likewise.
20658         (store_one_arg): Likewise for variables `lower_bound' and
20659         `upper_bound'.
20660
20661         * combine.c (try_combine): Likewise for variables `i2_code_number'
20662         and `other_code_number'.
20663         (find_split_point): Likewise for variables `pos', `unsignedp' and
20664         `inner'.
20665         (simplify_if_then_else): Likewise for variables `op' and `c1'.
20666         (simplify_and_const_int): Remove unused variable `width'.
20667         (merge_outer_ops): Likewise.
20668
20669         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
20670         HOST_WIDE_INT' when comparing against one.
20671         (simplify_relational_operation): Likewise.
20672         (cse_insn): Initialize variables `src_eqv_volatile',
20673         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
20674
20675         * final.c (init_final): Constify parameter `filename'.
20676         (final_start_function): Mark parameter `optimize' with
20677         ATTRIBUTE_UNUSED.
20678         (profile_function): Likewise for parameters `first' and `optimize'.
20679         (output_source_line): Likewise for parameter `file'.
20680
20681         * integrate.c (subst_constants): Cast a value to `size_t' when
20682         comparing against one.
20683         (mark_stores): Initialize variable `mode'.  Cast a value to
20684         `size_t' when comparing against one.
20685
20686         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
20687
20688         * loop.c (move_movables): Initialize variable `first'.
20689         (strength_reduce): Likewise for variable `increment'.
20690         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
20691         value to `size_t' when comparing against one.
20692         (load_mems): Initialize variable `end_label'.
20693
20694         * output.h (init_final): Constify parameter.
20695
20696         * reload.c (decompose): Initialize variable `base'.
20697
20698         * reload1.c (reload): Likewise for variable `is_scalar'.
20699         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
20700         (choose_reload_regs): Initialize variable `mode'.
20701         (emit_reload_insns): Likewise for variable `store_insn'.
20702         (reload_cse_noop_set_p): Mark parameter `insn' with
20703         ATTRIBUTE_UNUSED.
20704         (reload_combine): Initialize variable `set'.
20705
20706         * unroll.c (unroll_loop): Likewise for variable `local_label'.
20707         (copy_loop_body): Cast a value to `size_t' when comparing against
20708         one.
20709
20710         * varasm.c (assemble_variable): Initialize variable `size_tree'.
20711         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
20712         (remove_from_pending_weak_list): Mark parameter `name' with
20713         ATTRIBUTE_UNUSED.
20714
20715 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20716
20717         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
20718         gcse dump file.
20719
20720 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
20721
20722         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
20723         (ASM_DECLARE_FUNCTION_NAME): Define.
20724         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
20725         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
20726         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
20727         not already defined.
20728
20729 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20730
20731         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
20732         of n_popped when call/call_value are not defined.
20733
20734 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
20735
20736         * tm.texi: GNU CC -> GCC conversion.
20737         (CC1_SPEC): Indicate it is used for all language front ends.
20738
20739 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
20740
20741         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
20742         NOTE_INSN_EH_REGION_END correctly.
20743
20744 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
20745                           Jeff Law <law@cygnus.com>
20746
20747         * loop.c (strength_reduce): Automatically unroll loops if the
20748         unrolled loop size is smaller than the rolled loop size.
20749
20750         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
20751         and delete comment that code should be rewritten.
20752
20753 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
20754
20755         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
20756         as reachable.
20757
20758         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
20759
20760 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
20761
20762         * fixinc/mkfixinc.sh: Don't fix uwin headers.
20763         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
20764         (LINK_SPEC): Add -u _main when building executables.
20765         (ASM_DECLARE_FUNCTION): Update from Cygwin.
20766         (ASM_FILE_END): Use the default for ix86-pe.
20767         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
20768
20769 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
20770
20771         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
20772         and ASM_CLOSE_PAREN are empty strings.
20773
20774 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
20775                           Geoffrey Keating <geoffk@cygnus.com>
20776
20777         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
20778         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
20779         (unprotoize.o): Ditto.
20780         (test-protoize-simple): Don't define STD_PROTO_DIR.
20781         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
20782         changes to make 'test-protoize-simple' pass.
20783         (STD_PROTO_DIR): Remove define.
20784         (STANDARD_EXEC_PREFIX): Supply default define.
20785         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
20786         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
20787         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
20788         (GET_ENV_PATH_LIST): New macro.
20789         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
20790         (do_processing): Initialize default_syscalls_dir using new
20791         macros.  Use it to initialize syscalls_absolute_filename.
20792
20793 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
20794
20795         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
20796         B into a register before emit_conditional_move.
20797
20798 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
20799
20800         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
20801         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
20802         multiplicand out of (+ (* a b) (* c d)).
20803
20804 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
20805                           Richard Henderson  <rth@cygnus.com>
20806
20807         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
20808         (new_insn_dead_notes): Likewise.
20809         (update_n_sets): Likewise.
20810         (update_flow_info): Move to flow.c, renamed to update_life_info;
20811         extend to handle multiple source insns.
20812         * flow.c: Include resource.h
20813         (unlink_insn_chain): New.
20814         (split_hard_reg_notes): New.
20815         (maybe_add_dead_note): New.
20816         (maybe_add_dead_note_use): New.
20817         (find_insn_with_note): New.
20818         (new_insn_dead_notes): New.
20819         (update_n_sets): New.
20820         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
20821         (maybe_remove_dead_notes): New.
20822         (update_life_info): New.
20823         (prepend_reg_notes): New.
20824         (replace_insns): New.
20825         * output.h (update_life_info): Declare.
20826         * recog.c (split_block_insns): Use update_life_info.
20827         * resource.c (find_free_register): Use reg_alloc_order, don't use
20828         fixed regs, make sure the mode is supported, don't use new regs.
20829         (reg_dead_p): New.
20830         * rtl.h (replace_insns): Declare.
20831
20832 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
20833
20834         * expr.c (expand_expr): Cope with COND_EXPRs with one
20835         non-returning branch.
20836
20837 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
20838
20839         * expr.c (store_expr): Always pass down the target, even when not
20840         doing CSE.
20841
20842 1999-08-24  Nick Clifton  <nickc@cygnus.com>
20843
20844         * configure.in: Define target_cpu_default for v850 targets.
20845         * configure: Regenerate
20846
20847         * config/v850/v850.h (TARGET_CPU_generic): Define.
20848         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
20849         addresses are 4 byte aligned.
20850
20851         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
20852         addresses.
20853
20854 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20855
20856         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
20857         (main): Add prototypes.
20858
20859         * genattrtab.c (substitute_address, write_const_num_delay_slots,
20860         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
20861         (write_attr_get): Emit prototypes along with function definition.
20862         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
20863         (write_complex_function): Emit static prototype along with
20864         function definition.
20865
20866         * genemit.c (gen_split): Emit prototypes along with function
20867         definition.
20868
20869         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
20870         Likewise for predicates and `insn_operand_predicate'.
20871         (process_template): Emit static prototype along with function
20872         definition.
20873
20874         * genrecog.c (make_insn_sequence): Constify a char*.  Add
20875         prototypes for get_split_*().
20876         (write_subroutine): Emit prototypes along with function
20877         definition.
20878
20879 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20880
20881         * gcse.c (find_avail_set): Follow chains of register-register copies.
20882         Use oprs_not_set_p to guarantee that the returned value can be
20883         substituted.
20884         (cprop_insn): Don't verify the return value of find_avail_set with
20885         oprs_not_set_p.
20886
20887         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
20888         (cprop_cc0_jump): New function.
20889         (cprop_insn): Break out new function cprop_jump and use it.
20890         Also use cprop_cc0_jump for machines with CC0.
20891         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
20892
20893         * tree.h (current_function_calls_setjmp,
20894         current_function_calls_longjmp): Delete declarations.
20895         * dsp16xx.c: Include "function.h".
20896         * elxsi.c: Likewise.
20897         * gmicro.c: Likewise.
20898         * h8300.c: Likewise.
20899         * i370.c: Likewise.
20900         * m32r.c: Likewise.
20901         * mn10200.c: Likewise.
20902         * mn10300.c: Likewise.
20903         * ns32k.c: Likewise.
20904         * spur.c: Likewise.
20905         * v850.c: Likewise.
20906
20907         * rtl.h (rtx_equal_function_value_matters): Declare.
20908         * toplev.c (rtx_equal_function_value_matters): Don't declare.
20909         * cse.c: Likewise.
20910         * function.c: Likewise.
20911         * emit-rtl.c: Likewise.
20912
20913 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
20914
20915         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
20916         call.
20917
20918 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
20919
20920         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
20921         exactly.
20922
20923 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
20924
20925         * cpp.texi: Add a node documenting macro varargs (copied
20926         from extend.texi).
20927
20928 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
20929
20930         * cppspec.c: Put a null pointer at the end of the new argv.
20931
20932 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
20933
20934         * configure.in: Remove code to select/de-select the haifa
20935         scheduler.  Every scheduled port gets haifa now.
20936         * configure: Rebuilt.
20937         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
20938         * sched.c Deleted.
20939         * Makefile.in: Corresponding changes.
20940
20941 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20942
20943         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
20944         All callers changed.
20945         (prepare_float_lib_cmp): Likewise.
20946         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
20947         * expr.h (emit_float_lib_cmp): Delete declaration.
20948         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
20949         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
20950         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
20951         specially.
20952         (cmptf): Now conditional on TARGET_HARD_QUAD.
20953
20954 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
20955
20956         * resource.c (mark_target_live_regs): Use
20957         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
20958
20959 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20960
20961         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
20962
20963         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
20964
20965         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
20966
20967 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20968
20969         * rtl.h (rtx_format): Constify a char*.
20970
20971         * rtl.c (rtx_format): Likewise.
20972         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
20973         (init_rtl): Use accessor macro, not `rtx_format'.
20974
20975         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
20976         char*.
20977
20978         * caller-save.c (mark_referenced_regs): Likewise.
20979
20980         * combine.c (subst, make_compound_operation, known_cond,
20981         gen_rtx_combine, update_table_tick, get_last_value_validate,
20982         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
20983
20984         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
20985         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
20986         count_reg_usage): Likewise.
20987
20988         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
20989         Likewise.
20990
20991         * final.c (leaf_renumber_regs_insn): Likewise.
20992
20993         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
20994         dump_edge_info, count_reg_references): Likewise.
20995
20996         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
20997         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
20998         Likewise.
20999
21000         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
21001         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
21002         add_label_notes): Likewise.
21003
21004         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
21005         clear_struct_flag, count_sub_rtxs, count_alternatives,
21006         compares_alternatives_p, contained_in_p, walk_attr_value,
21007         write_expr_attr_cache): Likewise.
21008
21009         * genconfig.c (walk_insn_part): Likewise.
21010
21011         * genemit.c (max_operand_1, gen_exp): Likewise.
21012
21013         * genextract.c (walk_rtx): Likewise.
21014
21015         * genflags.c (num_operands): Likewise.
21016
21017         * genoutput.c (scan_operands): Likewise.
21018
21019         * genpeep.c (match_rtx): Likewise.
21020
21021         * genrecog.c (add_to_sequence): Likewise.
21022
21023         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
21024         Likewise.
21025
21026         * integrate.c (save_constants, copy_for_inline,
21027         copy_rtx_and_substitute, subst_constants, restore_constants):
21028         Likewise.
21029
21030         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
21031         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
21032
21033         * local-alloc.c (contains_replace_regs, memref_referenced_p):
21034         Likewise.
21035
21036         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
21037         add_label_notes, replace_call_address, count_nonfixed_reads,
21038         invariant_p, find_single_use_in_loop, find_mem_givs,
21039         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
21040         Likewise.
21041
21042         * print-rtl.c (reg_names, print_rtx): Likewise.
21043
21044         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
21045
21046         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
21047         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
21048         print_blocks): Likewise.
21049
21050         * regclass.c (fix_register, record_address_regs,
21051         reg_scan_mark_refs): Likewise.
21052
21053         * regmove.c (stable_but_for_p): Likewise.
21054
21055         * reload.c (loc_mentioned_in_p, operands_match_p,
21056         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
21057         copy_replacements, refers_to_regno_for_reload_p,
21058         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
21059         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
21060         Likewise.
21061
21062         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
21063         delete_address_reloads_1, count_occurrences,
21064         reload_cse_mem_conflict_p, reload_combine_note_use,
21065         add_auto_inc_notes): Likewise.
21066
21067         * resource.c (mark_referenced_resources, mark_set_resources):
21068         Likewise.
21069
21070         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
21071         reg_mentioned_p, regs_set_between_p, modified_between_p,
21072         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
21073         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
21074         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
21075         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
21076
21077         * sched.c (sched_analyze_2, attach_deaths): Likewise.
21078
21079         * stupid.c (stupid_mark_refs): Likewise.
21080
21081         * unroll.c (remap_split_bivs): Likewise.
21082
21083         * varasm.c (mark_constants): Likewise.
21084
21085         * a29k/a29k.c (uses_local_reg_p): Likewise.
21086
21087         * alpha/alpha.c (summarize_insn): Likewise.
21088
21089         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
21090         eliminate_lr2ip): Likewise.
21091
21092         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
21093
21094         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
21095         reg_mentioned_in_mem): Likewise.
21096
21097         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
21098         symbolic_reference_mentioned_p): Likewise.
21099
21100         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
21101
21102         * sh/sh.c (regs_used, mark_use): Likewise.
21103
21104         * vax/vax.c (vax_rtx_cost): Likewise.
21105
21106 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21107
21108         * machmode.h (mode_name): Constify a char*.
21109
21110         * rtl.c (mode_name): Likewise.
21111
21112         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
21113
21114         * optabs.c (init_libfuncs): Constify a char*.
21115
21116         * print-tree.c (mode_name): Remove redundant declaration.
21117         (print_node): Use accessor macro, not `mode_name'.
21118
21119         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
21120         not `mode_name'.
21121         (new_spill_reg): Constify a char*.
21122
21123         * tree.c (mode_name): Remove redundant declaration.
21124
21125 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21126
21127         * rtl.c (rtx_name): Constify a char*.
21128
21129         * rtl.h (rtx_name, fix_sched_param): Likewise.
21130
21131         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
21132         (mypr): Use accessor macro, not `rtx_name'.
21133
21134         * genemit.c (print_code): Constify a char*.
21135
21136         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
21137
21138         * genpeep.c (print_code): Constify a char*.
21139
21140         * genrecog.c (print_code): Likewise.
21141
21142         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
21143         end_bb): Add static prototype.
21144         (draw_edge): Constify a char*.
21145         (end_bb): Remove unused parameter.
21146
21147         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
21148         print_block_visualization): Constify a char*.
21149
21150 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
21151
21152         * c-common.c (c_get_alias_set): Update comment.
21153
21154 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
21155
21156         * linux.h (LIB_SPEC): Added.
21157
21158 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21159
21160         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
21161
21162 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
21163
21164         * tree.c (expr_check): Fix typo in last change.
21165
21166 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
21167
21168         * rtl.def (NOTE): Change format to "iuu0n".
21169         (ADDR_DIFF_VEC): Change format to "eEee0".
21170         (ADDRESSOF): Change format to "eit".
21171
21172         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
21173         (RTVEC_ELT): Change to match.
21174         (XVECEXP): Use XVEC and RTVEC_ELT.
21175         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
21176         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
21177         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
21178         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
21179         TRAP_CONDITION, TRAP_CODE): Use XEXP.
21180         (INTVAL): Use XWINT.
21181         (ADDRESSOF_DECL): Use XTREE.
21182         (SET_ADDRESSOF_DECL): Delete.
21183         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
21184         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
21185         ifdefed out since 2.6 at least.
21186         (gen_rtvec_vv): Delete prototype.
21187
21188         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
21189         not rtunion.
21190         (copy_most_rtx): Handle 't' format letter.
21191         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
21192         (gen_rtvec_vv): Delete function.  All callers changed to use
21193         gen_rtvec_v instead.
21194         * print-rtl.c (print_rtx): Move special casing of NOTEs to
21195         the '0' format letter.
21196
21197         * function.c (gen_mem_addressof): Don't use
21198         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
21199         instead.
21200         * integrate.c (copy_rtx_and_substitute): Likewise.
21201         Copy 't' slots with XTREE.
21202         (subst_constants): Treat 't' slots like '[swi]' slots.
21203         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
21204         * jump.c (rtx_equal_for_thread_p): Likewise.
21205         * rtlanal.c (rtx_equal_p): Likewise.
21206         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
21207         only four arguments.
21208         * gengenrtl.c (type_from_format): Provide correct types for
21209         'b' and 't' slots.
21210
21211
21212         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
21213         If a recent gcc is in use (always in stage2 and beyond), use
21214         statement expressions, so we don't make a function call unless
21215         the check fails.  Evaluate arguments exactly once.
21216         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
21217         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
21218         Delete.
21219         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
21220         they evaluate their arguments exactly once, irrespective of
21221         the compiler in use.
21222
21223         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
21224         is used by the currently-enabled check macros.  This is:
21225         (tree_check_failed, tree_class_check_failed): For gcc.
21226         (tree_check, tree_class_check, cst_or_constructor_check,
21227         expr_check): For other compilers.
21228
21229         * gencheck.c: Do not define any *_CHECK1 macros.
21230
21231 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
21232                           Mark Mitchell <mark@codesourcery.com>
21233
21234         * c-common.c (c_get_alias_set): Fix support for poitners and
21235         references.
21236
21237 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
21238
21239         * alias.c: Include tree.h.
21240         (nonlocal_reference_p, mark_constant_function): New functions.
21241         * flow.c (life_analysis): Call mark_constant_function.
21242         * rtl.h (mark_constant_function): Declare it.
21243
21244 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
21245
21246         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
21247         unrecognisable switches.
21248
21249 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21250
21251         * loop.c (recombine_givs): Set ix field after sorting.
21252         (recombine_givs): Remove bogus index / giv lockstep looping.
21253
21254 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21255
21256         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
21257         on CODE.
21258         (emit_store_flag_force): Use do_compare_rtx_and_jump.
21259         (do_cmp_and_jump): Formatting fixes.
21260         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
21261         do_compare_rtx_and_jump instead of compare_from_rtx.
21262         (do_compare_rtx_and_jump): New function; mostly copied from
21263         compare_from_rtx.
21264         (do_jump_for_compare): Delete.
21265         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
21266         MIN_EXPR.
21267         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
21268         of compare/do_jump_for_compare pairs.
21269         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
21270         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
21271         compare_from_rtx/do_jump_for_compare pairs.
21272         (do_jump_by_parts_equality): Likewise.
21273         (do_jump_by_parts_equality_rtx): Likewise.
21274         * expr.h (do_compare_rtx_and_jump): Declare.
21275         * optabs.c (prepare_cmp_insn): New function, contains most of the code
21276         that used to be in emit_cmp_insn.
21277         (cmp_available_p): New function.
21278         (prepare_operand): New function.
21279         (emit_cmp_and_jump_insn_1): New function, contains some code that used
21280         to be in emit_cmp_insn.
21281         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
21282         parameters to be pointers; don't emit final compare but modify some of
21283         the values pointed to by the args so the caller can perform the
21284         correct comparison.
21285         (expand_binop): Call emit_store_flag_force with signed forms of
21286         comparison code.
21287         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
21288         emit_jump_insn pair.
21289         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
21290         emit_cmp_and_jump_insn_1.  Call emit_queue.
21291         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
21292         arg.
21293         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
21294         jump sets cc0 before deleting it.
21295         * integrate.c (expand_inline_function): Likewise.
21296         * unroll.c (unroll_loop): Similar changes in several places.
21297         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
21298         before deleting it.
21299
21300 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21301
21302         * Makefile.in (insn-recog.o): Update dependencies.
21303         * genrecog.c (main): Make generated file include "function.h".
21304
21305 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
21306
21307         * cse.c (cse_insn): Call never_reached_warning when a jump is
21308         changed to be unconditional.
21309         * flags.h: Declare warn_notreached.
21310         * flow.c (delete_block): Call never_reached_warning when
21311         a block is deleted.
21312         * jump.c (delete_barrier_successors): Call never_reached_warning
21313         when we delete everything after a BARRIER.
21314         (never_reached_warning): New function.
21315         * rtl.h: Declare never_reached_warning.
21316         * toplev.c (warn_notreached): New variable.
21317         (lang_independent_options): Set warn_notreached
21318         when -Wunreachable-code.
21319         (compile_file): We need line numbers for -Wunreachable-code.
21320
21321 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
21322
21323         * haifa-sched.c (insn_unit): Fix typo on out of range test.
21324         * sched.c (insn_unit): Likewise.
21325
21326 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
21327
21328         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
21329
21330 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21331
21332         * flow.c (create_edge_list): Use xmalloc, not malloc.
21333
21334 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
21335
21336         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
21337         C-style comments.  Do not lose the character before double slash.
21338
21339 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21340
21341         * basic-block.h (struct edge_list): Stucture to maintain a vector
21342         of edges.
21343         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
21344          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
21345         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
21346         New function prototypes.
21347         * flow.c (create_edge_list): Function to create an edge list.
21348         (free_edge_list): Discards memory used by an edge list.
21349         (print_edge_list): Debug output showing an edge list.
21350         (verify_edge_list): Internal consistency check for an edge list.
21351         (find_edge_index): Function to find an edge index for a pred and succ.
21352
21353 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
21354
21355         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
21356         hashtable.
21357
21358 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
21359
21360         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
21361
21362 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
21363
21364         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
21365
21366 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
21367
21368         * toplev.c (rest_of_compilation): Allow machine dependent
21369         reorganisation pass to place information into the RTL dump
21370         file if it so wishes.
21371
21372 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
21373
21374         * explow.c (hard_function_value): Use VOIDmode instead of
21375         MAX_MACHINE_MODE.
21376         * stmt.c (expand_return): Likewise.
21377         * stor-layout.c (get_best_mode): Likewise.
21378
21379         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
21380         emit call instead of emit_insn call.
21381
21382 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21383
21384         * configure.in: Handle --disable/enable-win32-registry.
21385         * install.texi: Document --disable/enable-win32-registry.
21386         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
21387         (WIN32_REGISTRY_KEY): New macro.
21388         * prefix.c: Use to enable/disable win32-specific code.
21389         (lookup_key): Use versioned key.
21390         * configure: Regenerate.
21391         * config.in: Likewise.
21392
21393 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
21394
21395         * cpplib.c (read_line_number): New fn, split out of...
21396         (do_line): Here.
21397
21398 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21399
21400         tree.c (lang_unsave_expr_now) : New.
21401         (unsave_expr_now): Call lang_unsave_expr_now.
21402         tree.h (lang_unsave_expr_now) : New.
21403
21404 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
21405
21406         * toplev.c (flag_new_exceptions): On by default.
21407
21408 1999-08-13  Michael Meissner  <meissner@cygnus.com>
21409
21410         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
21411
21412 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
21413
21414         * dwarfout.c (fundamental_type_code): Return FT_boolean for
21415         INTEGER_TYPE with precision==1, it's __java_boolean.
21416
21417 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21418
21419         * global.c (prune_preferences): Move some invariants out of the
21420         inner loop.
21421
21422 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
21423
21424         * configure.in (alpha*-dec-osf*): Add osf5.
21425
21426 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
21427
21428         * configure.in: Rework handling of ARM GNU/Linux slightly.
21429         (arm*-*-linux-gnuoldld): New target.
21430         * configure: Regenerate.
21431         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
21432         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
21433         * config/arm/linux-oldld.h: New file.
21434         * config/arm/linux-elf26.h: Don't include linux-elf.h.
21435         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
21436         Don't define.
21437         * config/arm/linux-elf.h (ASM_SPEC): Define.
21438         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
21439         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
21440         for 26-bit APCS and old linker.
21441         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
21442         `arm_elf'.
21443         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
21444         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
21445         don't define `arm' or `arm_elf'.
21446         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
21447         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
21448
21449 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
21450
21451         * rtl.texi: Fix typo.
21452
21453 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
21454
21455         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
21456
21457 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
21458
21459         * extend.texi (C++ Signatures): Remove node.
21460         * invoke.texi: Remove discussion of -fhandle-signatures,
21461         signature, sigof, __signature__, and __sigof__.
21462
21463 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
21464
21465         * Makefile.in (JAVAGC): Removed.
21466
21467 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21468
21469         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
21470
21471 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
21472
21473         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
21474
21475 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
21476
21477         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
21478         a register that is already known to be a pointer.
21479
21480 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
21481
21482         * fixinc/inclhack.tpl: Only install assert.h conditionally.
21483         * fixinc/inclhack.sh: Regenerated.
21484         * fixinc/fixincl.sh: Regenerated.
21485
21486 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
21487
21488         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
21489         Fix documentation of -ansi flag to describe its C++ behavior.
21490         Remove bogus reference to GCC 2.9.
21491
21492 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
21493
21494         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
21495         note if it is non-NULL.
21496
21497 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21498
21499         * except.h (eh_nesting_info): Add new structure defintion.
21500         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
21501         (reachable_handlers, update_rethrow_references): Add function
21502         prototypes.
21503         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
21504         a rethrow symbol instead of an integer exception region number.
21505         * flow.c (Make_edges): Use new exception nesting routines to determine
21506         which handlers are reachable from a CALL or asynchronous insn.
21507         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
21508         goto receivers.
21509         (delete_eh_regions): Update rethrow labels, and don't delete
21510         regions which are the target of a rethrow.
21511         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
21512         avoid overloading the SYMBOL_REF_USED flag.
21513         (rethrow_symbol_map): Use new rethrow_ref field.
21514         (rethrow_used): Use new rethrow_ref field.
21515         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
21516         of an integer.  Fix formatting.
21517         (output_exception_table_entry): Use new rethrow_ref field.
21518         (can_throw): Check for EH_REGION_NOTE before deciding
21519         whether a CALL can throw or not.
21520         (scan_region): Call rethrow_used() instead of accessing data structure.
21521         (update_rethrow_references): New function to make sure only regions
21522         which are still targets of a rethrow are flagged as such.
21523         (process_nestinfo): New static function to initialize a handler
21524         list for a specific region.
21525         (init_eh_nesting_info): New function to allocate and initialize
21526         the list of all EH handlers reachable from all regions.
21527         (reachable_handlers): New function to retrieve the list of handlers
21528         reachable from a specific region and insn.
21529         (free_eh_nesting_info): New function to dispose of a list of
21530         reachable handlers.
21531
21532 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21533
21534         * flow.c (split_edge): Set JUMP_LABEL field.
21535         (commit_one_edge_insertion): Set head correctly for insert_before.
21536         When inserting insns, update insn block numbers if allocated.
21537
21538 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21539
21540         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
21541         retry_incomplete_types): Add static prototype.
21542         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
21543         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
21544         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
21545         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
21546         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
21547         Constify a char*.
21548
21549         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
21550         dwarf2out_start_source_file, dwarf2out_line): Likewise.
21551
21552 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21553
21554         * output.h (assemble_name): Constify a char*.
21555
21556         * varasm.c (UNIQUE_SECTION, assemble_start_function,
21557         assemble_variable, assemble_name): Likewise.
21558
21559         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
21560
21561         * arm/pe.c (arm_pe_unique_section): Likewise.
21562
21563         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
21564
21565         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
21566
21567         * i386/interix.c (i386_pe_unique_section): Likewise.
21568
21569         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
21570
21571         * i386/winnt.c (i386_pe_unique_section): Likewise.
21572
21573         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
21574
21575         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
21576
21577         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
21578
21579         * pa/pa.c (output_call): Likewise.
21580
21581         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
21582
21583         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
21584
21585         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
21586         Likewise.
21587
21588         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
21589         Likewise.
21590
21591         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
21592
21593         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
21594         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
21595
21596         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
21597
21598 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21599
21600         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
21601
21602 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21603
21604         * tree.h (lang_identify): Constify a char*.
21605         (print_error_function): Add extern prototype.  Constify a char*.
21606
21607         * c-lang.c (lang_identify): Constify a char*.
21608
21609         * objc/objc-act.c (lang_identify): Constify a char*.
21610
21611 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21612
21613         * genpeep.c (main): Make generated file include "function.h".
21614         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
21615
21616 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21617
21618         * Makefile.in: Update dependencies.
21619         * alias.c: Include "function.h"
21620         * c-decl.c: Likewise.
21621         * caller-save.c: Likewise.
21622         * calls.c: Likewise.
21623         * combine.c: Likewise.
21624         * cse.c: Likewise.
21625         * explow.c: Likewise.
21626         * final.c: Likewise.
21627         * global.c: Likewise.
21628         * graph.c: Likewise.
21629         * local-alloc.c: Likewise.
21630         * loop.c: Likewise.
21631         * optabs.c: Likewise.
21632         * profile.c: Likewise.
21633         * recog.c: Likewise.
21634         * regclass.c: Likewise.
21635         * regmove.c: Likewise.
21636         * reload.c: Likewise.
21637         * reorg.c: Likewise.
21638         * resource.c: Likewise.
21639         * sched.c: Likewise.
21640         * stupid.c: Likewise.
21641         * config/1750a/1750a.c: Likewise.
21642         * config/a29k/a29k.c: Likewise.
21643         * config/arc/arc.c: Likewise.
21644         * config/arm/arm.c: Likewise.
21645         * config/arm/thumb.c: Likewise.
21646         * config/c4x/c4x.c: Likewise.
21647         * config/clipper/clipper.c: Likewise.
21648         * config/convex/convex.c: Likewise.
21649         * config/fx80/fx80.c: Likewise.
21650         * config/i860/i860.c: Likewise.
21651         * config/m68k/m68k.c: Likewise.
21652         * config/m88k/m88k.c: Likewise.
21653         * config/mips/mips.c: Likewise.
21654         * config/pdp11/pdp11.c: Likewise.
21655         * config/pyr/pyr.c: Likewise.
21656         * config/romp/romp.c: Likewise.
21657         * config/sh/sh.c: Likewise.
21658         * config/tahoe/tahoe.c: Likewise.
21659         * config/vax/vax.c: Likewise.
21660         * config/we32k/we32k.c: Likewise.
21661         * config/sparc/sparc.c: Include "function.h".
21662         (mem_min_alignment): Test current_function rather than
21663         regno_pointer_align.
21664         * config/pa/pa.c: Likewise.
21665         (compute_frame_size): Delete declaration of
21666         current_function_outgoing_args_size.
21667         * config/arc/arc.h (current_function_varargs): Delete declaration.
21668         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
21669         declaration.
21670         * config/i370/i370.h (current_function_outgoing_args_size): Delete
21671         declaration.
21672         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
21673         current_function_uses_pic_offset_table.
21674         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
21675         of current_function_returns_pointer.
21676         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21677         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21678         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21679         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21680         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21681         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
21682         * config/m88k/m88k.c: Include "function.h"
21683         (call_used_regs, current_function_pretend_args_size,
21684         current_function_outgoing_args_size, frame_pointer_needed): Delete
21685         declarations.
21686         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
21687         declaration.
21688         * config/mips/mips.h (current_function_calls_alloca): Delete
21689         declaration.
21690         * config/mn10200/mn10200.h (current_function_needs_context,
21691         rtx_equal_function_value_matters): Delete declarations.
21692         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
21693         flag_pic): Delete declarations.
21694         * config/pa/pa.h (current_function_pretend_args_size,
21695         current_function_decl): Delete declarations.
21696         * config/pa/som.h (current_function_varargs): Delete declaration.
21697         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
21698         declaration.
21699         * config/pyr/pyr.h (current_function_pretend_args_size,
21700         current_function_args_size, current_function_calls_alloca): Delete
21701         declarations.
21702         * config/sh/sh.h (current_function_varargs): Delete declaration.
21703         * config/sparc/sparc.h (current_function_outgoing_args_size,
21704         current_function_calls_alloca, current_function_decl): Delete
21705         declarations.
21706         * config/spur/spur.h (current_function_pretend_args_size,
21707         current_function_calls_alloca): Delete declarations.
21708         * config/v850/v850.c (current_function_outgoing_args_size): Delete
21709         declaration.
21710         * config/vax/vms.h (current_function_name): Delete declaration.
21711         * gcse.c: Include "function.h".
21712         (current_function_name, current_function_calls_setjmp): Delete
21713         declarations.
21714         * haifa-sched.c: Include "function.h".
21715         (forced_labels): Delete declaration.
21716         * jump.c: Likewise.
21717         * reg-stack.c: Likewise.
21718         * reload1.c: Likewise.
21719         * genemit.c (main): Make generated file include function.h.
21720         * genoutput.c (output_prologue): Likewise.
21721
21722         * builtins.c (saveregs_value, apply_args_value): Delete variables.
21723         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
21724         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
21725         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
21726         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
21727         macros for some of them.
21728         (emit_filename, emit_lineno): Delete declarations.
21729         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
21730         regno_pointer_* variables through current_function.
21731         (gen_inline_header_rtx): Delete function.
21732         (save_emit_status): Delete function.
21733         (set_new_last_label_num): New function.
21734         (clear_emit_caches): New function.
21735         (restore_emit_status): Just clear last_labelnum and call
21736         clear_emit_caches.
21737         (get_last_insn_anywhere): Variable sequence_stack is now accessed
21738         through macro seq_stack.
21739         (add_insn_after): Likewise.
21740         (add_insn_before): Likewise.
21741         (remove_insn): Likewise.
21742         (pop_topmost_sequence): Likewise.
21743         (in_sequence_p): Likewise.
21744         (start_sequence_for_rtl_expr): Likewise.
21745         (start_sequence): Likewise, and likewise for
21746         sequence_rtl_expr/seq_rtl_expr.
21747         (push_topmost_sequence): Likewise.
21748         (end_sequence): Likewise.
21749         (init_virtual_regs): Now takes a "struct emit_status *" argument.
21750         All callers changed.  Store into that pointer instead of globals.
21751         (init_emit): Allocate emit elt of current_function.
21752         Changes for sequence_rtl_expr/sequence_stack renaming.
21753         Call clear_emit_caches instead of doing it in-line.
21754         Access regno_pointer_* variables through current_function.
21755         (init_emit_once) Don't clear sequence_stack.
21756
21757         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
21758         Delete variables.
21759         (arg_pointer_save_area): Delete declaration.
21760         (finish_expr_for_function): Renamed from init_queue; no longer static.
21761         (init_expr): Don't call init_queue.
21762         (save_expr_status, restore_expr_status): Delete functions.
21763         (expand_expr): Changes to reflect new layout of struct function.
21764         Don't access current_function_check_memory_usage when current_function
21765         is 0.
21766         * expr.h (forced_labels, save_expr_regs, saveregs_value,
21767         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
21768         current_function_outgoing_args_size, current_function_arg_offset_rtx,
21769         current_function_uses_const_pool, function_call_count,
21770         current_function_uses_pic_offset_table, nonlocal_labels,
21771         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
21772         current_function_check_memory_usage, nonlocal_goto_handler_slots,
21773         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
21774         declarations.
21775         (finish_expr_for_function): Declare.
21776         * flags.h (current_function_has_nonlocal_label,
21777         current_function_has_nonlocal_goto, current_function_is_thunk,
21778         current_function_has_computed_jump): Delete declarations.
21779         * flow.c (forced_labels): Delete declaration.
21780         * function.c (current_function_pops_args,
21781         current_function_returns_struct, current_function_returns_pcc_struct,
21782         current_function_needs_context, current_function_calls_setjmp,
21783         current_function_calls_longjmp, current_function_has_nonlocal_label,
21784         current_function_has_nonlocal_goto, current_function_is_thunk,
21785         current_function_has_computed_jump, current_function_calls_alloca,
21786         current_function_contains_functions, current_function_returns_pointer,
21787         current_function_epilogue_delay_list, current_function_args_size,
21788         current_function_pretend_args_size, current_function_arg_offset_rtx,
21789         current_function_outgoing_args_size, current_function_varargs,
21790         current_function_stdarg, current_function_args_info, cleanup_label,
21791         current_function_name, current_function_uses_const_pool,
21792         current_function_instrument_entry_exit, current_function_return_rtx,
21793         current_function_uses_pic_offset_table, nonlocal_labels,
21794         current_function_internal_arg_pointer, current_function_cannot_inline,
21795         current_function_check_memory_usage, function_call_count,
21796         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
21797         nonlocal_goto_stack_level, return_label, save_expr_regs,
21798         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
21799         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
21800         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
21801         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
21802         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
21803         Delete variables.
21804         (push_function_context_to): Don't save them.  Don't call
21805         save_storage_status, save_emit_status or save_expr_status.
21806         (pop_function_context_from): Don't restore them.  Don't call
21807         restore_storage_status or restore_expr_status.
21808         (get_func_frame_size): New function.
21809         (get_frame_size): Use it.
21810         (assign_outer_stack_local): Reflect some member name changes in struct
21811         function.
21812         (put_reg_into_stack): Likewise.
21813         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
21814         seq_rtl_expr.
21815         (fixup_var_refs): Likewise.
21816         (fix_lexical_addr): Likewise.
21817         (trampoline_address): Likewise.
21818         (prepare_function_start): Clear field inlinable of current_function.
21819         (init_function_for_compilation): New function.
21820         (expand_dummy_function_end): New function.
21821         (expand_function_end): Call finish_expr_for_function.
21822         * function.h (struct emit_status): New; fields moved here from struct
21823         function and from global variables.  Add accessor macros for some of
21824         the fields.
21825         (struct expr_status): Likewise.
21826         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
21827         (struct function): Add fields expr and emit, inlinable, inl_emit,
21828         original_arg_vector, original_decl_initial, inl_last_parm_insn,
21829         inl_max_label_num.  Add many comments.
21830         Add accessor macros for all elts of struct function that no longer
21831         have a global variable.
21832         (cleanup_label, return_label, frame_offset, tail_recursion_label,
21833         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
21834         stack_slot_list): Delete declarations.
21835         (get_func_frame_size): Declare.
21836         (save_expr_status, restore_expr_status, save_emit_status,
21837         save_storage_status, restore_storage_status): Delete declarations.
21838         (init_virtual_regs): Declare.
21839         * output.h (current_function_pops_args,
21840         current_function_returns_struct, current_function_returns_pcc_struct,
21841         current_function_needs_context, current_function_calls_setjmp,
21842         current_function_calls_longjmp, current_function_calls_alloca,
21843         current_function_has_nonlocal_label, current_function_varargs,
21844         current_function_has_computed_jump, current_function_returns_pointer,
21845         current_function_contains_functions, current_function_args_size,
21846         current_function_pretend_args_size, current_function_stdarg,
21847         current_function_outgoing_args_size, current_function_args_info,
21848         current_function_name, current_function_return_rtx,
21849         current_function_epilogue_delay_list,
21850         current_function_uses_const_pool, current_function_cannot_inline):
21851         Delete declarations.
21852         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
21853         regno_reg_rtx): Delete declaration.
21854         (REGNO_POINTER_FLAG): Delete macro.
21855         * stmt.c (expand_goto): Changes to reflect that some fields in struct
21856         function were renamed.
21857         * stor-layout.c (save_storage_status, restore_storage_status): Delete
21858         functions.
21859         * toplev.c: Include "function.h".
21860         (current_function_decl): Delete declaration.
21861         (compile_file): Call init_dummy_function_start and
21862         expand_dummy_function_end around some initializations that need to
21863         emit rtl.
21864         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
21865         Call init_function_for_compilation.
21866         * unroll.c: Include "function.h"
21867         (unroll_loop): Access regno_pointer_* variables through
21868         current_function.
21869
21870         * tree.h (struct tree_decl): Add elt f to saved_insns member.
21871         (DECL_SAVED_INSNS): use it.
21872         (expand_dummy_function_end): Declare.
21873         (init_function_for_compilation): Declare.
21874         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
21875         that it's no longer an INLINE_HEADER.
21876         (expand_call): Likewise.
21877         * integrate.c (finish_inline): Delete function.
21878         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
21879         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
21880         args.  Don't generate an INLINE_HEADER rtx, just return the arg
21881         vector.  All callers changed.
21882         (save_for_inline_copying):  Create a duplicate struct emit_status to
21883         hold the emit state for compiling the current function.  Use this and
21884         the other new fields in struct function that are for integration
21885         instead of an INLINE_HEADER.
21886         Use memcpy instead of bcopy.
21887         Store the current struct function in DECL_SAVED_INSNS of fndecl.
21888         (save_for_inline_nocopy): Similar changes, except no new emit_status
21889         is needed here.
21890         (expand_inline_function): Get information from function structure,
21891         not from an inline header rtx.
21892         (output_inline_function): Lose code to extract the necessary
21893         information from an inline header; simply put back the function
21894         structure into current_function.  Clear its inlinable elt.
21895         * rtl.def (INLINE_HEADER): Delete.
21896         * rtl.h: Delete all accessors for an INLINE_HEADER.
21897         (gen_inline_header_rtx): Delete declaration.
21898         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
21899         Delete declarations.
21900         (REGNO_POINTER_ALIGN): Delete.
21901         (clear_emit_caches): Declare.
21902         (set_new_last_label_num): Declare.
21903
21904 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
21905
21906         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
21907
21908         * except.c (expand_eh_region_start_for_decl): Always start a new block.
21909         * stmt.c (is_eh_region): Make sure current_function is present, too.
21910
21911 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
21912
21913         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
21914         for 64bit PA targets.
21915
21916         * pa.h (SELECT_SECTION): Define.
21917         * som.h (SELECT_SECTION): Delete.
21918
21919 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21920
21921         * alias.c (init_alias_analysis): Wrap call to
21922         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
21923
21924 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
21925
21926         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
21927         <sys/asm.h> contains an asm comment with an apostrophe
21928         * fixinc/inclhack.sh:  regen
21929         * fixinc/fixincl.x:  regen
21930
21931 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
21932
21933         * function.c (init_function_start): Clear prologue & epilogue.
21934         (prologue_epilogue_contains): New function.
21935         * alias.c (init_alias_analysis): Use it.
21936         * rtl.h (prologue_epilogue_contains): Declare it.
21937
21938 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
21939
21940         * jump.c (onlyjump_p): New function.
21941         * rtl.h: Declare it.
21942         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
21943         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
21944
21945 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
21946
21947         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
21948         to invert loops.  Simplify block scanning.
21949
21950 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
21951
21952         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
21953         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
21954
21955 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
21956
21957         * config/sparc/liteelf.h: New file to support sparclite-elf target
21958         * config/sparc/t-sp86x: New file to support sparc86x targets
21959         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
21960         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
21961         * configure.in: Support above target triplets
21962         * configure: Regenerated
21963
21964 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
21965
21966         * fixinc/server.c (server_setup): Do not prefix function used as
21967         parameter with `&'.
21968
21969 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
21970
21971         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
21972         Remove fp reg alternatives.
21973
21974 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
21975
21976         * Makefiin (TAROUTOPTS): Kill.
21977         (install-headers-tar): Use "xpf" for tar headerfile extraction
21978         * i370/x-oe (TAROUTOPTS): Delete.
21979         * m68k/x-apollo68 (TAROUTOPTS): Delete.
21980         * m68k/x-hp320 (TAROUTOPTS): Delete.
21981         * m68k/x-hp320g (TAROUTOPTS): Delete.
21982         * gcc.texi: Update bug reporting text.
21983
21984 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
21985
21986         * reg-stack.c (change_stack) Fixed problem with negative array index.
21987
21988 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
21989
21990         * extend.texi, install.texi: Fix spelling mistakes.
21991
21992         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
21993         (s-attrtab); No longer try to use pre-made insn-attrtab file.
21994         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
21995         PREMADE_ATTRTAB_MD.
21996         * mips/t-ecoff: Likewise.
21997         * mips/t-elf: Likewise.
21998         * mips/t-mips: Likewise.
21999         * mips/t-osfrose: Likewise.
22000         * mips/t-r3900: Likewise.
22001         * mips/t-svr3: Likewise.
22002         * mips/t-svr4: Likewise.
22003         * mips/t-ultrix: Likewise.
22004
22005         * gcc.texi: Document recommend means to provide software floating
22006         point libraries in libgcc.a
22007
22008 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
22009
22010         * c-lex.c (yylex): We can have a number with no digits.
22011
22012 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
22013
22014         * jump.c (delete_prior_computation): New function, broken
22015         out of delete_computation.  Check for side effects with
22016         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
22017         multi-word hard registers.
22018         (delete_computation): Use it.  Check for side effects with
22019         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
22020         missing REG_DEAD note for a register which is both set and
22021         used by an insn.
22022
22023 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
22024
22025         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
22026         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
22027         (ASM_FILE_START): Import _mcount with the right type.
22028         (ASM_DECLARE_FUNCTION_NAME): Define.
22029         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
22030         * pa.c (output_function_prologue): Always emit the function's label
22031         here.
22032         * pa.h (TEXT_SPACE_P): Define.
22033         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
22034         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
22035         * som.h (TEXT_SPACE_P): Delete.
22036         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
22037         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
22038
22039 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
22040
22041         * expr.c (emit_group_load): Allow src to be a CONCAT.
22042
22043 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22044
22045         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
22046         (___mulsi3): Use '!' comment character.
22047
22048 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22049
22050         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
22051
22052 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
22053
22054         * gcc.c: Update URLs and mail addresses.
22055         * gcc.texi: Likewise.
22056
22057 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
22058
22059         * rs6000.c (current_file_function_operand): Return zero for
22060         weak functions.
22061         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
22062         weak symbols.
22063         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
22064         for weak symbols.
22065
22066 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
22067
22068         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
22069         allocate space in the stack frame for the PIC register.
22070
22071 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
22072
22073         * m68k.md (xordi3, anddi3): These patterns are not available on
22074         the coldfire.
22075
22076 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
22077
22078         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
22079         (PUT_REAL): Likewise.
22080
22081 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22082
22083         * final.c (shorten_branches): Don't add an alignment for loops
22084         that have no label inside.
22085
22086 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22087
22088         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
22089         prototypes in macro HAVE_cmpstrsi.
22090
22091         * cpplib.c (cpp_get_token): Remove unused label `op3'.
22092
22093         * emit-rtl.c (operand_subword): Remove unused variable
22094         `bits_per_word'.
22095
22096         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
22097
22098         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
22099
22100 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
22101
22102         * cpphash.c (macroexpand): Delete leading whitespace when arg
22103         is concatenated before.
22104         (unsafe_chars): Correct test for whether + and - can extend a
22105         token.
22106
22107         * cppinit.c (cpp_start_read): Do dependencies for
22108         -include/-imacros files also.
22109
22110         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
22111         tokenizing non-directive lines.
22112         (cpp_expand_to_buffer): Temporarily disable no-output mode.
22113         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
22114         the input file.
22115
22116 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
22117
22118         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
22119
22120         * c-lex.c: Sync with C++ frontend.
22121         (linemode): New variable.
22122         (parse_float): imag, conversion_errno, and type are output only.
22123         (yylex): Adjust.  Move initial '.' case into main switch.
22124         Use linemode.
22125         (handle_generic_pragma): Just deal with tokens.
22126         (readescape): Use ISXDIGIT and ISGRAPH.
22127         * c-parse.in: Add END_OF_LINE token.
22128
22129         * c-lex.c (lang_init): Generalize.
22130         (nextchar): Remove.  Replace uses with UNGETC.
22131         (skip_white_space): Handle linemode here.  Optimize for cpplib.
22132         (skip_white_space_on_line): Remove.
22133         (extend_token_buffer_to): New fn.
22134         (extend_token_buffer): Use it.
22135         (read_line_number, check_newline): Just deal with tokens.
22136         (token_getch, token_put_back): New fns.
22137         (yylex): Use them.  More cpplib optimizations.  Simplify.
22138
22139 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
22140                           Jason Merrill  <jason@yorick.cygnus.com>
22141
22142         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
22143         (consume_string): Make this smart about USE_CPPLIB.
22144         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
22145         (yylex): Rewrite to be intelligent about USE_CPPLIB.
22146         Also, clean up cases where we redundantly set token_buffer[0].
22147         (read_line_number): New fn.
22148         (ignore_escape_flag): New variable.
22149
22150 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
22151
22152         * a29k/t-a29kbare: Fix some comments.
22153         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
22154         (FPBIT, DPBIT): Define.
22155         * a29k/t-vx29k: Likewise.
22156         * arc/t-arc: Likewise.
22157         * arm/t-arm-elf: Likewise.
22158         * arm/t-bare: Likewise.
22159         * arm/t-pe: Likewise.
22160         * arm/t-pe-thumb: Likewise.
22161         * arm/t-semi: Likewise.
22162         * arm/t-thumb: Likewise.
22163         * arm/t-thumb-elf: Likewise.
22164         * arm/t-thumb-linux: Likewise.
22165         * h8300/t-h8300: Likewise.
22166         * i960/t-i960: Likewise.
22167         * i960/t-vxworks960: Likewise.
22168         * m32r/t-m32r: Likewise.
22169         * mips/t-ecoff: Likewise.
22170         * mips/t-elf: Likewise.
22171         * mips/t-r3900: Likewise.
22172         * pa/t-pro: Likewise.
22173         * rs6000/t-aix43: Likewise.
22174         * rs6000/t-beos: Likewise.
22175         * rs6000/t-newas: Likewise.
22176         * rs6000/t-ppccomm: Likewise.
22177         * rs6000/t-rs6000: Likewise.
22178         * rs6000/t-winnt: Likewise.
22179         * rs6000/t-xnewas: Likewise.
22180         * rs6000/t-xrs6000: Likewise.
22181         * sh/t-sh: Likewise.
22182         * sparc/t-elf: Likewise.
22183         * sparc/t-sparcbare: Likewise.
22184         * sparc/t-sparclite: Likewise.
22185         * sparc/t-splet: Likewise.
22186         * v850/t-v850: Likewise.
22187         * mn10200/t-mn10200: Fix comments.
22188         * mn10300/t-mn10300: Likewise.
22189
22190         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
22191         dummy operand.  Allocate a new pseudo for the dummy operand.
22192         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
22193
22194         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
22195
22196 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
22197
22198         * configure: Rebuilt.
22199         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
22200
22201 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
22202
22203         * recog.c (preproces_constraints): Zero recog_op_alt before
22204         processing the constraints.
22205
22206         * arm.c (typedef minipool_node): Renamed from pool_node.
22207         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
22208         (add_minipool_constant): New function.
22209         (dump_minipool): New function.
22210         (find_barrier): Remove special case for getting the insn size of
22211         an insn that references the constant pool.
22212         (minipool_fixup): New structure.
22213         (push_minipool_barrier): New function.
22214         (push_minipool_fix): New function.
22215         (note_invalid_constants): New function.
22216         (add_pool_constant, dump_table, fixit, broken_move): Delete.
22217         (arm_reorg): Rewrite code to fix up the constant pool into a
22218         series of mini-pools embedded in the insn stream.
22219         (arm_output_epilogue): New function, made mainly from the body
22220         of output_func_epilogue.
22221         (output_func_epilogue): Move insn generation part of epilogue code
22222         to arm_output_epilogue.
22223         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
22224         * arm.md (pool_range): New attribute.
22225         (zero_extendqidi2): Add attribute pool_range.
22226         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
22227         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
22228         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
22229         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
22230         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
22231         (epilogue): New expand.
22232         (epilogue_insn): New insn.  Call arm_output_epilogue.
22233
22234         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
22235         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
22236
22237 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
22238
22239         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
22240
22241 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
22242
22243         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
22244
22245 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
22246
22247         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
22248
22249 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
22250
22251         * global.c: Fix comment.
22252
22253 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
22254
22255         * gcc.c (access_check): New static function.
22256         (find_a_file): Use it when searching a directory list.
22257         * collect2.c (find_a_file): Don't accept directories found when
22258         searching a directory list.
22259
22260 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
22261
22262         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
22263         function parameters with `&'.
22264         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
22265
22266 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
22267
22268         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
22269         or tidy_fallthru_edge if the last insn in the block is not
22270         an unconditional jump or a simple conditional jump.
22271
22272 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22273
22274         * Makefile.in (c-decl.o): Depends on defaults.h.
22275
22276 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
22277
22278         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
22279         PA1.1 and above.
22280         (CLASS_MAX_NREGS): Likewise.
22281
22282 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
22283
22284         * cse.c (cse_insn): Fix dumb thinko in last change.
22285
22286 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22287
22288         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
22289         "const char *".
22290
22291 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
22292
22293         * dwarf2out.c (add_location_or_const_value_attribute): Correct
22294         test for sizes of passed and declared parameter types.
22295
22296 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22297
22298         * fixincludes: Fix the return type of bsearch, char* -> void*.
22299
22300         * fixinc/inclhack.def: Likewise.
22301
22302 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
22303
22304         * invoke.texi (-fdump-translation-unit): New option.
22305
22306 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
22307
22308         * expr.h (PROMOTE_PROTOTYPES): Move ...
22309         * defaults.h: ... to here.
22310         * c-decl.c: Include defaults.h instead of expr.h.
22311         * c-typeck.c: Include defaults.h.
22312
22313 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
22314
22315         * toplev.h (errorcount): Declare.
22316         (warningcount): Likewise.
22317         (sorrycount): Likewise.
22318         * c-lex.c (errorcount): Don't declare.
22319         * dwarf2out.c (errorcount): Don't declare.
22320
22321 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
22322
22323         * config/libgloss.h: Add a note discouraging use with ELF.
22324         * configure.in: Don't use libgloss.h for ELF targets.
22325         Always use_collect2 on a.out targets.
22326
22327 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
22328
22329         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
22330         (force_to_mode, case ASHIFTRT): Add shiftrt label.
22331
22332 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22333
22334         * loop.c (strength_reduce): When doing biv->giv conversion, update
22335         reg note of NEXT->insn.
22336
22337 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
22338
22339         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
22340
22341 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
22342
22343         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
22344         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
22345         Ensure expr.h is included.
22346         * c-typecheck.c (convert_arguments): Ditto.
22347
22348         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
22349
22350         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
22351         * config/convex/convex.h: Ditto.
22352         * config/dsp16xx/dsp16xx.h: Ditto.
22353         * config/fx80/fx80.h: Ditto.
22354         * config/gmicro/gmicro.h: Ditto.
22355         * config/i370/i370.h: Ditto.
22356         * config/i386/i386.h: Ditto.
22357         * config/m32r/m32r.h: Ditto.
22358         * config/m68k/m68k.h: Ditto.
22359         * config/m88k/m88k.h: Ditto.
22360         * config/mips/mips.h: Ditto.
22361         * config/pa/pa.h: Ditto.
22362         * config/pyr/pyr.h: Ditto.
22363         * config/tahoe/tahoe.h: Ditto.
22364         * config/we32k/we32k.h: Ditto.
22365
22366         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
22367         based on arch size.
22368
22369         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
22370
22371         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
22372         from comment.
22373
22374         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
22375
22376 1999-08-02  Richard Henderson  <rth@cygnus.com>
22377
22378         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
22379         for the register spill block.
22380         (m32r_va_arg): New.
22381         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
22382         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
22383
22384         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
22385         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
22386         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
22387
22388 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
22389
22390         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
22391         MAX_WCHAR_TYPE defined in sparc.h.
22392         * config/sparc/linuxaout.h: Likewise.
22393         * config/sparc/linux64.h: Likewise.
22394         Also default to -mvis if CPU is UltraSPARC.
22395
22396 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
22397
22398         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
22399         (RTX_OK_FOR_OLO10): Likewise.
22400         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
22401         %lo(), allow it in addresses...
22402         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
22403         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
22404         does not make sense.
22405         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
22406         (sparc_output_scratch_registers): New function.
22407         (output_function_prologue, sparc_flat_output_function_prologue): Use
22408         it.
22409         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
22410         defined.
22411         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
22412         * configure.in: Add check for .register pseudo-op support in as and
22413         check for offsetable %lo().
22414         * acconfig.h: Add templates for the above checks.
22415         * configure: Regenerate.
22416
22417 1999-08-02  Richard Henderson  <rth@cygnus.com>
22418
22419         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
22420         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
22421         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
22422
22423 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22424
22425         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
22426         reg_biv_class.
22427
22428 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
22429
22430         * config/float-sparc.h: New file.
22431         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
22432         sparc-*-linux-gnu and sparc64-*-linux*.
22433
22434 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22435
22436         * rs6000.c (rs6000_va_list): Type is an array.
22437         (rs6000_va_start): Don't doubly adjust for varargs.
22438         (rs6000_va_arg): Evaluate long long GPR adjustment.
22439
22440 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
22441
22442         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
22443         -maix64 and -maix32.
22444         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
22445         LINK_SPEC): Change appropriately.
22446         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
22447         (u_short_cint_operand): Likewise.
22448         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
22449         for 64-bit hosts.
22450         * rs6000/t-aix43 (MULTILIB): Change to -m64.
22451
22452         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
22453
22454 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
22455
22456         * rs6000/rs6000.c (num_insns_constant_wide): Correct
22457         for type promotion.
22458         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
22459         (non_add_cint_operand): Likewise.
22460         (logical_operand): Likewise.
22461         (non_logical_cint_operand): Likewise.
22462         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
22463         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
22464         (rs6000_select_rtx_section): Suppress warning.
22465         (small_data_operand): Suppress warning.
22466         (rs6000_got_register): Suppress warning.
22467         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
22468         type, so `J' is generally the wrong constraint for a SImode value;
22469         use `L' instead.
22470         (andsi3_internal2): Likewise.
22471         (andsi3_internal3): Likewise.
22472         (iorsi3_internal1): Likewise.
22473         (xorsi3_internal1): Likewise.
22474         (movsi): Likewise.
22475         (movsf_softfloat): Likewise.
22476         (scc insns): Likewise.
22477         (movsi+2): Preserve sign bits of SImode constant.
22478         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
22479         (movdf+1): Sign-extend properly.
22480         (movdi_32+1): Sign-extend properly.
22481         (scc insns): Sign-extend properly.
22482
22483         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
22484         K, L, and T.
22485
22486 1999-08-02  Richard Henderson  <rth@cygnus.com>
22487
22488         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
22489         -mcpu parsing code.
22490         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
22491         * alpha.md (all fp insns): Likewise.
22492
22493 1999-08-02  Nick Clifton  <nickc@cygnus.com>
22494
22495         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
22496         already defined.
22497
22498 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
22499
22500         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
22501         pic_load_label generator directly.
22502         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
22503         No longer a named pattern.
22504
22505 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
22506
22507         * explow.c (force_reg): Call force_operand if X does not
22508         satisfy general_operand.
22509
22510 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
22511
22512         * fix-header.c (main): When testing for CONTINUED, use string
22513         equality, not pointer equality.
22514
22515 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
22516
22517         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
22518
22519 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
22520
22521         * cse.c (cse_insn): Fix loop which deletes insns after a jump
22522         that has become an unconditional jump.
22523
22524         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
22525         (output_function_epilogue): Similarly.
22526
22527 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22528
22529         * tree.h (init_dummy_function_start): Declare.
22530
22531 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22532
22533         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
22534         last_expr_type, last_expr_value, block_start_count, block_stack,
22535         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
22536         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
22537         dynamically in stmt elt of struct function for each function.
22538         (struct nesting): Rename function_call_count elt to n_function_calls,
22539         target_temp_slot_level to block_target_temp_slot_level.  All users
22540         changed.
22541         (struct stmt_status): New structure definition.
22542         Add many accessor macros for stmt_status elements which previously
22543         were global variables.
22544         (init_stmt_for_function): Allocate stmt elt for current_function.
22545         Reflect that block_start_count was renamed to
22546         current_block_start_count.
22547         (save_stmt_status, restore_stmt_status): Delete functions.
22548         (preserve_subexpressions_p): Don't access loop_stack when outside
22549         a function.
22550         (expand_start_bindings): Reflect that block_start_count was renamed to
22551         current_block_start_count.
22552         (expand_fixup): Likewise.
22553         (expand_decl): Don't access block_stack when outside a function.
22554         (expand_decl_cleanup): Likewise.
22555         (expand_dcc_cleanup): Likewise.
22556         (expand_dhc_cleanup): Likewise.
22557         (expand_anon_union_decl): Likewise.
22558         (set_file_and_line_for_stmt): New function.
22559         (in_control_zone_p): New function.
22560
22561         * function.h (struct function): Add new elt stmt.
22562         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
22563         case_stack, nesting_stack, nesting_depth, block_start_count,
22564         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
22565         emit_lineno, goto_fixup_chain.
22566         (save_eh_status, restore_eh_status, save_stmt_status,
22567         restore_stmt_status): Delete declarations.
22568         * function.c (push_function_context_to): Don't call save_stmt_status.
22569         (pop_function_context_to): Don't call restore_stmt_status.
22570         * tree.h (in_control_zone_p): Declare.
22571         * rtl.h (set_file_and_line_for_stmt): Declare.
22572
22573         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
22574         call set_file_and_line_for_stmt.
22575
22576 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
22577
22578         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
22579         Also update copyright.
22580
22581 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22582
22583         * c-pragma.c: Don't include "except.h".
22584         * emit-rtl.c: Likewise.
22585         * stor-layout.c: Likewise.
22586         * tree.c: Likewise.
22587         * varasm.c: Likewise.
22588
22589         * flow.c: Include "function.h".
22590         * tree.h (init_dummy_function_start): Declare new function.
22591
22592         * except.h (struct eh_status): New structure.
22593         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
22594         been included.
22595         (eh_return_stub_label, ehstack, catchstack, ehqueue,
22596         catch_clauses, false_label_stack, caught_return_label_stack,
22597         protect_list, current_function_ehc): Add accessor macros for the
22598         corresponding fields in current_function->eh; delete declarations
22599         for all items that used to be declared here.
22600         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
22601         catch_clauses, false_label_stack, caught_return_label_stack,
22602         protect_list, current_function_ehc): Delete variables.
22603         (init_eh_for_function): Allocate current_function->eh.
22604         (save_eh_status, restore_eh_status): Delete functions.
22605
22606         * function.h (struct function): Add fields next_global and eh.
22607         Delete all exception handling related fields.
22608         * function.c (current_function): New variable.
22609         (all_functions): New variable.
22610         (push_function_context_to): Don't allocate a struct function,
22611         use current_function instead.  Call init_dummy_function_start when
22612         outside a function.  Clear current_function before returning.
22613         (pop_function_context_from): Restore current_function.
22614         Don't free the restored struct function.
22615         (prepare_function_start): New function.
22616         (init_dummy_function_start): New function.
22617         (init_function_start): Break out some code into prepare_function_start
22618         and call it here.
22619
22620         * stmt.c (save_stmt_status): Don't call save_eh_status.
22621         (restore_stmt_status): Don't call restore_eh_status.
22622
22623         * Makefile.in: Update dependencies.
22624
22625 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
22626
22627         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
22628         of depending on a magic constant value.  Update comments.
22629         (hppa_expand_prologue): Similarly.
22630
22631         * pa.md (reload_indi, reload_outdi): Allow any register for the
22632         original reload register.
22633
22634 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
22635
22636         * cccp.c (print_help): Change marcos to macros.
22637
22638 1999-07-30  Richard Henderson  <rth@cygnus.com>
22639
22640         * c-typeck.c (initializer_constant_valid_p): Move ...
22641         * c-common.c (initializer_constant_valid_p): ... here.  Use
22642         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
22643         of label addresses.
22644         * c-common.h (initializer_constant_valid_p): Declare.
22645         * c-tree.h (initializer_constant_valid_p): Remove.
22646
22647 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
22648
22649         * config/i386/sol2-c1.asm: Align the stack.
22650         * config/i386/sol2-gc1.asm: Likewise.
22651
22652 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
22653
22654         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
22655         -Asparclite for sparc86x.
22656         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
22657         sparc86x.
22658         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
22659
22660 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
22661
22662         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
22663         the user if using the non-default arch size in BI_ARCH configuration.
22664         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
22665
22666         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
22667         Fix patterns so that they actually match.
22668         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
22669         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
22670         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
22671         TARGET_HARD_MUL32.
22672         (mulsidi3): Reflect this in the expand.
22673         (smulsi3_highpart): Only on TARGET_ARCH32.
22674         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
22675         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
22676         (umulsidi3): Reflect this in the expand.
22677         (umulsi3_highpart): Only on TARGET_ARCH32.
22678         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
22679         don't require g0 to be zero.
22680         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
22681         ({,u}divsi3): New expands.
22682         ({,u}divsi3_sp64): New patterns.
22683         (after lshrdi3_v8plus): Four new patterns to help combiner
22684         optimizing nested mixed mode shifts.
22685
22686         * config/sparc/sparc.c (sparc_override_options): Use deprecated
22687         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
22688         speed things up. Don't use them by default on plain v9 in 64bit
22689         mode, according to what SPAMv9 sais.
22690
22691         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
22692         top 32 bits of %[og][0-7] in signal handlers.
22693         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
22694
22695 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
22696
22697         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
22698         (ashlsi3): Corresponding changes.
22699
22700         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
22701
22702 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
22703
22704         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
22705
22706 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22707
22708         * arm.h (Hint): Delete macro.
22709         Substitute HOST_WIDE_INT for Hint in some prototypes.
22710         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
22711
22712 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
22713
22714         * builtins.c (expand_builtin_setjmp): Use force_operand to
22715         make sure that the buffer address is in a suitable form to be
22716         passed to force_reg.
22717
22718 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
22719
22720         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
22721         them here.
22722
22723 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
22724
22725         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
22726         proper mode in the condition string.
22727         (icacheflush, dcacheflush): Remove modes from match_operands.
22728
22729         * pa.c (emit_move_sequence): Always convert scratch_reg to the
22730         proper mode before using it.
22731
22732         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
22733         pair.
22734
22735         * pa.c (store_reg): Do not call add_high_const generator directly.
22736         (load_reg, set_reg_plus_d): Likewise.
22737         * pa.md (add_high_const): No longer a named pattern.
22738
22739         * pa.c (legitimize_address): Consistently use Pmode rather than
22740         SImode.  Do not call gen_pic2_highpart directly anymore.
22741         * pa.md (pic2_highpart): No longer a named pattern.
22742         (pic2_lo_sum): Similarly.  Reformat to make more readable.
22743
22744         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
22745         needed.
22746
22747         * README: Update.
22748
22749 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22750
22751         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
22752
22753 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
22754
22755         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
22756         and tag the spill mems.
22757         (hppa_va_start): New.
22758         (hppa_va_arg): New.
22759         * pa.h (EXPAND_BUILTIN_VA_START): New.
22760         (EXPAND_BUILTIN_VA_ARG): New.
22761
22762 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
22763
22764         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
22765         and tag the spill mems.
22766         (mn10300_va_start): New.
22767         (mn10300_va_arg): New.
22768         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
22769         (EXPAND_BUILTIN_VA_ARG): New.
22770
22771 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
22772
22773         * mn10200.c (mn10200_va_arg): New.
22774         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
22775
22776 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
22777
22778         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
22779         rather than play with TREE_INT_CST_LOW.
22780
22781 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
22782
22783         * config/arm/telf.h: Include dbxelf.h.
22784         (CPP_PREDEFINES): Only define if not already defined.
22785         (ASM_IDENTIFY_GCC): Likewise.
22786         (SUBTARGET_EXTRA_SECTIONS): Likewise.
22787         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
22788         * config/arm/thumb.h (LINK_SPEC): Only define if not already
22789         defined.
22790         (DBX_DEBUGGING_INFO): Don't define.
22791         * config/arm/linux-telf.h: New file.
22792         * config/arm/linux-tgas.h: New file.
22793         * config/arm/t-thumb-linux: New file.
22794         * config/arm/uclinux-elf.h: New file.
22795         * config/arm/uclinux-telf.h: New file.
22796         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
22797         thumb-*-uclinux): New targets.
22798         * configure: Regenerate.
22799
22800 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
22801
22802         * pa.md (post_store, pre_load): New expanders.
22803         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
22804         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
22805         need to directly generate RTL for them.
22806         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
22807         changes.
22808
22809 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
22810
22811         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
22812         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
22813         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
22814         (secndary_reload_class): Make TARGET_ELF conditional compile.
22815         (print_operand_address): Similar.
22816         (output_toc): Print all values as hex.
22817         (get_issue_rate): Rearrange and add RS64A and PPC630.
22818         * rs6000.h (processor_type): Add RS64A and PPC630.
22819         (PROCESSOR_POWERPC64): New.
22820         (PROMOTE_MODE): Use word_mode.
22821         (RTX_COSTS): Add RS64A and PPC630.
22822         * rs6000.md (scheduling information): Add lmul and ldiv
22823         representing 64-bit integer multiply and divide.  Add rs64a and
22824         PPC630 information.
22825         (ashldi3): Add support for "rldic" instruction.
22826         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
22827
22828 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
22829
22830         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
22831         instead of V8 for sparclite86x in cpu_table.
22832
22833 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22834
22835         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
22836         output_file_directive.
22837
22838 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
22839
22840         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
22841         tree for op1, not the rtl.
22842
22843 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
22844
22845         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
22846         to m88k_va_start, leaving only the register spill.
22847         (m88k_build_va_list): New.
22848         (m88k_va_start): New.
22849         (m88k_va_arg): New.
22850         * m88k.h (BUILD_VA_LIST_TYPE): New.
22851         (EXPAND_BUILTIN_VA_START): New.
22852         (EXPAND_BUILTIN_VA_ARG): New.
22853
22854 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
22855
22856         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
22857         Rename from expand_builtin_saveregs.
22858         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
22859
22860 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
22861
22862         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
22863         for the register spill block.
22864         (i960_build_va_list): New.
22865         (i960_va_start): New.
22866         (i960_va_arg): New.
22867         * i960.h (BUILD_VA_LIST_TYPE): New.
22868         (EXPAND_BUILTIN_VA_START): New.
22869         (EXPAND_BUILTIN_VA_ARG): New.
22870         * i960.md (store_multiple): Use change_address on individul mems.
22871
22872 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
22873
22874         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
22875         an ARRAY_TYPE.
22876         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
22877         (expand_builtin_va_end): Evaluate arg for side effects.
22878         * c-common.c (c_common_nodes_and_builtins): Construct a
22879         va_list_arg_type_node to handle array decomposition to pointer.
22880
22881 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
22882
22883         * except.c (st_dynamic_cleanup): Use force_operand on the
22884         buffer's address.
22885
22886 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
22887
22888         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
22889         * c4x.c (c4x_va_arg): New.
22890
22891 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
22892
22893         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
22894         has manual_pop set.
22895
22896 1999-07-26  Nathan Sidwell  <nathan@acm.org>
22897
22898         * eh-common.h (__eh_matcher): Prototype correctly.
22899
22900 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
22901
22902         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
22903         (TARGET_SINGLE_PIC_BASE): Likewise.
22904         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
22905         definitions.
22906         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
22907         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
22908         (TARGET_OPTIONS): Add -mpic-register=N.
22909         (OUTPUT_INT_ADDR_CONST): New macro.
22910         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
22911         LEGITIMATE_PIC_OPERAND_P): Likewise.
22912         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
22913         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
22914         output_addr_const directly.
22915         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
22916         ARM port.
22917         (thumb_pic_register, thumb_pic_register_string): Declare.
22918
22919         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
22920         from arm.c.
22921         (label_mentioned_p): New function: Imported from arm.c.
22922         (legitimize_pic_address): New function: Imported from arm.c.
22923         (is_pic):New function: Imported from arm.c.
22924         (thumb_finalize_pic):New function: Imported from arm.c.
22925         (add_constant): Cope with PIC constants.
22926         (fixit): Cope with PIC constants.
22927         (output_return): Do not treat the PIC register as live if
22928         TARGET_SINGLE_PIC_BASE is true.
22929         (thumb_function_prologue): Do not treat the PIC register as live if
22930         TARGET_SINGLE_PIC_BASE is true.
22931         (thumb_expand_prologue): Do not treat the PIC register as live if
22932         TARGET_SINGLE_PIC_BASE is true.
22933         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
22934         TARGET_SINGLE_PIC_BASE is true.
22935         (thumb_print_operand): Accept '|'.
22936         (thumb_override_options): Process PIC options.
22937
22938         * config/arm/thumb.md (movsi): Support PIC.
22939         (call_insn): Change "i" constraint to "X".
22940         (call_value_insn): Likewise.
22941         (consttable_4, consttable_8, consttable_end): Set and clear
22942         "making_const_table" as appropriate.
22943         (pic_load_addr, pic_add_dot_plus_four): New insns.
22944
22945         * invoke.texi (Thumb Options): Fix spelling.  Document new
22946         options -msingle-pic-base and -mpic-register=.
22947
22948 1999-07-26  Andrew Haley  <aph@cygnus.com>
22949
22950         * config/m32r/initfini.c (__init): Use a full word immediate for
22951         __fini: this allows it to be placed in any memory region.
22952
22953         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
22954         -mmodel=medium.  This is OK for all memory models.
22955
22956 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
22957
22958         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
22959         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
22960
22961 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
22962
22963         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
22964         defined.
22965
22966         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
22967
22968 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
22969
22970         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
22971         (BUILD_VA_LIST_TYPE): New.
22972         (EXPAND_BUILTIN_VA_START): New.
22973         (EXPAND_BUILTIN_VA_ARG): New.
22974         * i860.c (output_delayed_branch): Disable.
22975         (output_delay_insn): Likewise.
22976         (i860_saveregs): New.
22977         (i860_build_va_list): New.
22978         (i860_va_start): New.
22979         (i860_va_arg): New.
22980         * i860.md: Disable all peepholes using output_delayed_branch.
22981         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
22982
22983 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
22984
22985         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
22986         (BUILD_VA_LIST_TYPE): New.
22987         (EXPAND_BUILTIN_VA_START): New.
22988         (EXPAND_BUILTIN_VA_ARG): New.
22989         * clipper.c (clipper_builtin_saveregs): Only dump registers.
22990         Return the address of the save area.
22991         (clipper_build_va_list): New.
22992         (clipper_va_start): New.
22993         (clipper_va_arg): New.
22994
22995 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
22996
22997         * arc.h (EXPAND_BUILTIN_VA_START): New.
22998         (EXPAND_BUILTIN_VA_ARG): New.
22999         * arc.c (arc_setup_incoming_varargs): Set alias set of
23000         varargs save area.
23001         (arc_va_start): New.
23002         (arc_va_arg): New.
23003
23004 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
23005
23006         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
23007         (BUILD_VA_LIST_TYPE): New.
23008         (EXPAND_BUILTIN_VA_START): New.
23009         (EXPAND_BUILTIN_VA_ARG): New.
23010         * alpha.c (alpha_builtin_saveregs): Delete.
23011         (alpha_build_va_list): New.
23012         (alpha_va_start): New.
23013         (alpha_va_arg): New.
23014
23015 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
23016
23017         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
23018         column zero.
23019         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
23020         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
23021
23022         * gcc.texi: More changes related to list conversion.
23023         * invoke.texi: Likewise.
23024
23025 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
23026
23027         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
23028         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
23029         (expand_builtin_next_arg): Accept ARGLIST not EXP.
23030         (stabilize_va_list): New function.
23031         (std_expand_builtin_va_start): New function.
23032         (expand_builtin_va_start): New function.
23033         (get_varargs_alias_set): New function.
23034         (std_expand_builtin_va_arg): New function.
23035         (expand_builtin_va_arg): New function.
23036         (expand_builtin_va_end): New function.
23037         (expand_builtin_va_copy): New function.
23038         (expand_builtin): Call them.
23039         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
23040         __builtin_{varargs_start,stdarg_start,end,copy}.
23041         (build_va_arg): New function.
23042         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
23043         (build_va_arg): Declare.
23044         * c-decl.c (ptr_type_node, va_list_type_node): New.
23045         * c-parse.gperf (__builtin_va_arg): New.
23046         * c-parse.in (VA_ARG): New token.
23047         (unary_expr): Recognize it.
23048         * expr.c (expand_expr): Expand VA_ARG_EXPR.
23049         * expr.h (std_expand_builtin_va_start): Declare.
23050         (std_expand_builtin_va_arg): Declare.
23051         (expand_builtin_va_arg): Declare.
23052         (get_varargs_alias_set): Declare.
23053         * tree.def (VA_ARG_EXPR): New.
23054         * tree.h (BUILT_IN_VARARGS_START): New.
23055         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
23056         (ptr_type_node, va_list_type_node): Declare.
23057         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
23058         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
23059         * m88k.h, m88k.c: Likewise.
23060         * mn10300.h, mn10300.c: Likewise.
23061         * pa.h, pa.c: Likewise.
23062         * rs6000.h, rs6000.c: Likewise.
23063         * sh.h, sh.c: Likewise.
23064         * sparc.h, sparc.c: Likewise.
23065
23066         * emit-rtl.c (operand_subword): Copy alias set.
23067         (change_address): Likewise.
23068
23069 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
23070
23071         * pa.c (compute_frame_size): Scan all the used callee saved registers,
23072         not just the first one.
23073
23074 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
23075
23076         * config/arm/arm.h (TARGET_SWITCHES): Add
23077         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
23078         (TARGET_OPTIONS): Add -mpic-register=.
23079         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
23080         (arm_pic_register_string): Declare.
23081         (NEED_PLT_GOT): Delete, replace with ...
23082         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
23083         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
23084         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
23085         * config/arm/arm.c (arm_override_options): Add new option
23086         -mpic-register=N.
23087         (arm_pic_register_string): New variable.
23088         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
23089         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
23090         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
23091         (output_return_instruction): Likewise.
23092         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
23093         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
23094         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
23095
23096         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
23097         mention of -msched-prolog.  Document new options -msingle-pic-base
23098         and -mpic-register=.
23099
23100 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
23101
23102         * haifa-sched.c (reemit_notes): Tidy.
23103         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
23104         haifa's routine.
23105
23106 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
23107
23108         * explow.c (trunc_int_for_mode): New function.
23109         (plus_constant_wide): Use it.
23110         * combine.c (simplify_and_const_int): Likewise.
23111         (merge_outer_ops): Likewise.
23112         (simplify_shift_const): Likewise.
23113         * cse.c (simplify_unary_operation): Likewise.
23114         (simplify_binary_operation): Likewise.
23115         * emit-rtl.c (operand_subword): Likewise.
23116         * rtl.h: Declare it.
23117
23118 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23119
23120         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
23121         (use NUM_REGS instead of NUM_INTS).
23122
23123 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23124
23125         * builtins.c: New file.
23126         * expr.c (saveregs_value, apply_args_value):  Delete definition,
23127         moved into builtins.c.
23128         (string_constant): No longer static.
23129         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
23130         apply_args_size, apply_result_size, result_vector,
23131         expand_builtin_apply_args, expand_builtin_apply,
23132         expand_builtin_return): Delete functions, moved into builtins.c.
23133         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
23134         * expr.h (saveregs_value, apply_args_value): Declare variables.
23135         (expand_builtin, string_constant): Declare functions.
23136         * Makefile.in: Update to build builtin.o.
23137
23138 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
23139
23140         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
23141         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
23142         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
23143         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
23144         false.
23145         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
23146         Define to zero.
23147
23148 1999-07-21  Michael Meissner  <meissner@cygnus.com>
23149
23150         * print-rtl.c (print_rtx): Print the names of the virtual
23151         registers.
23152
23153 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
23154
23155         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
23156         introduced in previous delta.
23157
23158 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23159
23160         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
23161         to avoid name clash.
23162
23163 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23164
23165         * c-lex.c (yylex) : Correct the test for overflow when lexing
23166         integer literals.
23167
23168 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
23169
23170         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
23171         (adjust_priority): Always call ADJUST_PRIORITY.
23172         (schedule_insn): Only put insns into the ready at cost 0.
23173         (schedule_block): Remove redundant initial sort.  Give clock_var
23174         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
23175         is not 0.
23176         * tm.texi (MD_SCHED_REORDER): Update docs.
23177
23178         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
23179         * sparc.c (ultra_reorder_called_this_block): Delete.
23180         (ultrasparc_sched_init): Don't set it.
23181         (ultrasparc_sched_reorder): Don't check it.
23182
23183 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
23184
23185         * rs6000.h (struct rs6000_args): Add sysv_gregno.
23186         * rs6000.c (init_cumulative_args): Init sysv_gregno.
23187         (function_arg_boundary): Align DFmode.
23188         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
23189         to get fp reg and stack overflow correct.
23190         (function_arg): Likewise.
23191         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
23192         (setup_incoming_varargs): Restructure for ABI_V4; use
23193         function_arg_advance to skip final named argument.
23194         (expand_builtin_saveregs): Properly unskip the last integer arg
23195         when doing varargs.  Adjust overflow location calculation.
23196
23197         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
23198         explicitly unsigned.
23199         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
23200         (__VA_GP_REGSAVE): Similarly.
23201         (__va_longlong_p): Delete.
23202         (__va_arg_type_violation): New declaration.
23203         (va_arg): Restructure.  Flag promotion errors.  Align double.
23204         TFmode passed by reference.
23205
23206         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
23207         in the HOST_BITS_PER_WIDE_INT > 32 case.
23208
23209 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
23210
23211         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
23212
23213 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
23214
23215         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
23216         * toplev.c (documented_lang_options): Add -fpreprocessed.
23217         * cpplib.h (struct cpp_buffer): Add preprocessed.
23218         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
23219         (cpp_start_read): Don't expand macros or emit an initial #line
23220         directive if -fpreprocessed.
23221
23222 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
23223
23224         * cpplib.h (struct cpp_buffer): Added manual_pop for
23225         better C++ tokenization.
23226         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
23227         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
23228         * c-common.c (cpp_token): Make non-static.
23229
23230 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23231
23232         * c-common.h: New file.
23233         * c-common.c (permanent_obstack): Delete unused declaration.
23234         (c_global_trees): New array.
23235         (c_common_nodes_and_builtins): New function; split off common code
23236         from init_decl_processing in both c-decl.c and cp/decl.c.
23237         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
23238         c_global_trees and accessor macros defined in c-common.h.
23239         Include c-common.h.
23240         * c-decl.c: Delete definitions for tree nodes that were replaced by
23241         c_global_trees.
23242         (init_decl_processing): Build void_list_node.
23243         Call c_common_nodes_and_builtins; delete code to generate the common
23244         builtins here.
23245         * objc/objc-act.c (build_module_descriptor): Rename variable
23246         void_list_node to avoid clash with c-common.h.
23247
23248         * Makefile.in: Update dependencies.
23249         * objc/Make-lang.in: Likewise.
23250
23251 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
23252
23253         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
23254         (UNIQUE_SECTION_P): Likewise.
23255         (UNIQUE_SECTION): Likewise.
23256
23257 1999-07-19  Linas Vepstas  <linas@linas.org>
23258
23259         * config/i370/README: New file.
23260         * config/i370/linux.h: New file.
23261         * config/i370/mvs.h: New file.
23262         * config/i370/oe.h: New file.
23263         * config/i370/t-linux: New file.
23264         * config/i370/t-mvs: New file.
23265         * config/i370/t-oe: New file.
23266         * config/i370/x-oe: New file.
23267         * config/i370/xm-linux.h: New file.
23268         * config/i370/xm-mvs.h: New file.
23269         * config/i370/xm-oe.h: New file.
23270
23271         * i370.c (label_node_t): Add first_ref_page, label_addr,
23272         label_first_ref, label_last_ref members.
23273         (mvs_need_base_reload): Renamed from mvs_label_emitted.
23274         (MAX_MVS_LABEL_SIZE): Define.
23275         (MAX_LONG_LABEL_SIZE): Define.
23276         (alias_node_t, alias_anchor, alias_number): New.
23277         (mvs_function_table): Reorder for EBCDIC.
23278         (ascebc, ebcasc): Unconditionally define.
23279         (i370_branch_dest, i370_branch_length): New functions.
23280         (i370_short_branch, i370_label_scan): New functions.
23281         (mvs_get_label): Renamed from mvs_add_label.  Search for
23282         an existing label before creating a new one.
23283         (mvs_add_label): New function.
23284         (mvs_get_label_page): New function.
23285         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
23286         over the entire list.
23287         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
23288         (mvs_check_page) [TARGET_ELF_ABI]: New function.
23289         (mvs_add_alias, mvs_need_alias): New functions.
23290         (mvs_get_alias, mvs_check_alias): New functions.
23291         (handle_pragma): New function.
23292         (mvs_function_check): New function.
23293         (unsigned_jump_follows_p): Search harder.
23294         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
23295         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
23296         * i370.h (TARGET_VERSION): Delete.
23297         (CPP_SPEC, CPP_PREDEFINES): Delete.
23298         (mvs_label_emitted): Delete.
23299         (TARGET_EBCDIC): Delete.
23300         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
23301         (HANDLE_PRAGMA): Define.
23302         (HARD_REGNO_NREGS): Handle complex modes.
23303         (HARD_REGNO_MODE_OK): Likewise.
23304         (CLASS_MAX_NREGS): Likewise.
23305         (RET_REG): Likewise.
23306         (EXTRA_CONSTRAINT): Define.
23307         (RETURN_IN_MEMORY): True for DImode.
23308         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
23309         (FUNCTION_PROFILER): Delete.
23310         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
23311         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
23312         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
23313         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
23314         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
23315         (ASM_FILE_START): Add "RMODE ANY".
23316         (ASM_OUTPUT_EXTERNAL): Check for aliases.
23317         (ASM_GLOBALIZE_LABEL): Likewise.
23318         (ASM_OUTPUT_LABELREF): Likewise.
23319         (ASM_OUTPUT_COMMON): Likewise.
23320         (PRINT_OPERAND): Handle 'K', 'W', default.
23321         (PRINT_OPERAND_ADDRESS): New.
23322         (Lots of defines): Add support for TARGET_ELF_ABI.
23323         * i370.md (attr length): New.  Define for all patterns.
23324         (*): Lots of tweeks to assembly output and constraints.
23325
23326 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
23327
23328         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
23329         Disable patterns performing SImode comparisons with SImode values
23330         if TARGET_POWERPC64 and instruction does not sign-extend or does
23331         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
23332         differ for signed quantities.
23333         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
23334         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
23335         (decrement_and_branch_on_count): Add 64-bit variant.
23336
23337 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23338
23339         * final.c (output_asm_insn): When searching for the matching string
23340         for a given dialect, don't run past the end of the list of
23341         alternatives if there are fewer alternatives in the template than
23342         dialects.
23343
23344 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
23345
23346         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
23347         Removed paragraph about compression of files and size limitation,
23348         duplicated in the FAQ.  Use gcc-patches for posting patches.
23349         * gcc.c (main): Updated URL with bug reporting instructions to
23350         gcc.gnu.org.  Removed e-mail address.
23351         * system.h (abort): Likewise.
23352
23353 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23354
23355         * Makefile.in (stmp-multilib-sub): Make the files extracted
23356         from $(LIBGCC1) writable.
23357
23358 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
23359
23360         * config/arm/aout.h: Reformat for improved readability.
23361
23362         * config/arm/arm.h: Reformat for improved readability.
23363         Replace uses of fprintf with asm_fprintf where appropriate.
23364         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
23365         function declaration assembler actions.
23366         (NUM_INTS): New macro: Convert from bytes to words.
23367         (NUM_REGS): New macro: Compute number of registers required to
23368         hold a quanitity of tyep MODE.
23369         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
23370         types.
23371         (NUM_ARG_REGS): New macro: The number of argument registers
23372         available.
23373         (ARG_REGISTER): New macro: Compute the register number of the Nth
23374         argument register.
23375         (LAST_ARG_REGNUM): New macro: The number of the last argument
23376         register.
23377         (SP_REGNUM): New macro: Register number of the stack pointer.
23378         (FP_REGNUM): New macro: Register number of the frame pointer.
23379         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
23380         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
23381         CUMULATIVE_ARGS so that it counts registers not bytes.
23382
23383         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
23384         TARGET_INTERWORK.
23385         Replace uses of fprintf with asm_fprintf where appropriate.
23386         (output_ascii_pseudo_op): Replace with version from thumb.c
23387
23388         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
23389
23390         * config/arm/elf.h (CPP_PREDEFINES): Replace with
23391         SUBTARGET_CPP_SPEC.
23392         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
23393         (ASM_FILE_START): Emit ASM_APP_OFF.
23394
23395 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
23396
23397         * pa.c (compute_frame_size): Round frame according to
23398         STACK_BOUNDARY rather than a hardwired value.
23399
23400         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
23401
23402         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
23403         of "1".
23404         * configure: Rebuilt.
23405
23406         * configure.in (hppa*-*-linux*): New configuration.
23407         * configure: Rebuilt.
23408         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
23409         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
23410         * pa/pa-linux.h: New file.
23411         * pa/t-linux: New file.
23412         * pa/xm-linux.h: New file.
23413
23414         * pa.c (hppa_legitimize_address): Change references from SImode to
23415         either Pmode or word_mode as appropriate.
23416         (emit_move_sequence, store_reg, load_reg): Likewise.
23417         (set_reg_plus_d, hppa_expand_prologue): Likewise.
23418         (output_mul_insn): Likewise.
23419         * pa.h (PROMOTE_MODE): Likewise.
23420         (INITIALZE_TRAMPOLINE): Likewise.
23421         (Pmode): Define to word_mode.
23422
23423         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
23424         value of 4.  Allocate 8 bytes for each FP register save.
23425         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
23426         value of 4.
23427         (hppa_expand_prologue): Likewise.
23428         * pa.h (PROMOTE_MODE): Likewise.
23429         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
23430         (FUNCTION_ARG_BOUNDARY): Likewise.
23431
23432         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
23433
23434         * pa.c (out_of_line_prologue_epilogue): Delete.
23435         (override_options): Remove -mspace related code.
23436         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
23437         (compute_frame_size): Only allocate space for register that
23438         actually need to be saved.
23439         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
23440         (TARGET_SWITCHES): Remove -mspace, -mno-space
23441         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
23442         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
23443         * pa/ee.asm, pa/ee_fp.asm: Delete.
23444
23445         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
23446
23447         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
23448         directive in column zero.
23449
23450 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
23451
23452         * m68k.c (output_function_prologue): Fix computation of save mask
23453         when generating PIC code.
23454
23455 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
23456
23457         * tree.c (build_type_attribute_variant): Move current_obstack restore
23458         after build_qualified_type call.
23459
23460 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
23461
23462         * configure.in: Use t-iris6, even with GNU LD.
23463         * config/mips/iris6gld.h: Fix typo in linker spec.
23464         * config/mips/t-iris6gld: Remove.
23465
23466 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
23467
23468         * rs6000.md (insv, extzv): Remove SImode dependence in named
23469         patterns.  Explicitly generate DImode RTL if PowerPC64 and
23470         operand is DImode.
23471         (insvdi): Reverse start and size in instruction template.
23472
23473 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
23474
23475         * invoke.texi: Typo fixes.
23476
23477 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
23478
23479         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
23480         handle at this time instead of silently generating incorrect code.
23481         (gen_imagpart): Likewise.
23482
23483         * reload.c (find_reloads): Emit a USE for a pseudo register without
23484         a hard register if we could not create an optional reload for the
23485         pseudo.
23486
23487 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23488
23489         * c-typeck.c (output_init_element, process_init_element):
23490         When advancing constructor_unfilled_fields for a RECORD_TYPE,
23491         check for nameless bit fields.
23492
23493 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
23494
23495         * regclass.c (scan_one_insn): Notice subregs that change the
23496         size of their operand.
23497         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
23498
23499 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
23500
23501         * configure.in (alpha*-*-*): Include alpha/t-ieee.
23502         * configure: Rebuilt.
23503         * alpha/t-ieee: New file.
23504
23505 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
23506
23507         * rs6000.c (find_addr_reg): Do not select r0 as an address
23508         register.
23509
23510 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
23511
23512         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
23513
23514 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
23515
23516         * rs6000.md (movsf): Do not force easy FP constants into memory.
23517
23518         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
23519         immed_double_const to ensure they are properly truncated then
23520         sign extended.
23521
23522 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
23523
23524         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
23525         always unless NO_DEBUG is used.  Compile this code
23526         unconditionally.
23527         (replace_symbols_in_block): Compile it unconditionally.
23528
23529 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
23530
23531         * configure.in (i?86-*-elf*): New target.
23532         * configure: Rebuilt.
23533         * i386/i386elf.h, i386/t-i386elf: New files.
23534
23535 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
23536
23537         * toplev.c (main): Don't complain about saying -gdwarf.
23538         (rest_of_compilation): Remove redundant code.
23539
23540 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
23541
23542         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
23543
23544 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
23545
23546         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
23547         "Li960R:", to avoid name clash.
23548
23549 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23550
23551         * loop.c (check_dbra_loop): When reversing a loop, delete all
23552         REG_EQUAL notes referencing the reversed biv except those which are
23553         for a giv based on it.
23554
23555 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
23556
23557         * version.c: Drop "gcc-" prefix from version #.
23558
23559 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
23560
23561         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
23562         the label if we're being verbose.
23563
23564 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
23565
23566         * m68k.c (output_function_prologue): Add pic register to mask
23567         if live and flag_pic.
23568         (output_function_epilogue): Likewise.
23569
23570 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
23571
23572         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
23573         directives in column zero.
23574
23575         * pa/elf.h (ASM_FILE_START): Define.
23576         * pa/som.h (ASM_FILE_START): Include .level directives.
23577         * pa/hpux10.h (ASM_FILE_START): Delete.
23578         * pa/hpux11.h (ASM_FILE_START): Delete.
23579
23580         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
23581
23582 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23583
23584         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
23585         when reload_out equals reload_in.
23586
23587 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
23588
23589         * invoke.texi (Spec Files): New node: Describe the contents of
23590         spec files.
23591
23592 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
23593
23594         * invoke.texi (DEC Alpha Options): Put @end table at
23595         beginning of line, to avoid confusing texi2html.
23596
23597 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
23598
23599         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
23600         introduced in previous delta.
23601
23602 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23603
23604         * reload1.c (gen_reload): When synthesizing a 3 operand add
23605         sequence, improve test for when to reload OP1 into the reload
23606         register instead of OP0.
23607
23608 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
23609
23610         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
23611
23612 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
23613
23614         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
23615         string literal.
23616
23617 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
23618
23619         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
23620         (va_dcl): Use __builtin_va_alist_t.
23621
23622 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
23623
23624         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
23625         on the permanent_obstack.
23626         * dwarfout.c (output_type): Likewise.
23627
23628 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23629
23630         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
23631         Merged from c-typeck.c and cp/typeck.c.
23632         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
23633         Merged into c-common.
23634
23635 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
23636
23637         * c-lex.c (errorcount): Declare it.
23638         (finish_parse): Update errorcount when using CPPLIB.
23639
23640 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
23641
23642         * fixinc/inclhack.def(end_else_label): Double the backslash so
23643         sed gets a chance to see it.
23644         * fixinc/inclhack.sh: regen
23645         * fixinc/fixincl.x: regen
23646
23647 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
23648
23649         Add framework to support armv5 architecture when it becomes
23650         available:
23651
23652         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
23653         (arm_arch5): New variable.
23654         (all_architectures): Add armv5 line.
23655         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
23656         -march=armv5 is specified on the command line.
23657         (arm_arch5): Export this variable.
23658         * invoke.texi: Document new string accepted by -march= switch for
23659         ARM ports.
23660
23661         * config/arm/arm.h: Replace use of constant 12 as a register
23662         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
23663         * config/arm/arm.c: Replace use of constant 12 as a register
23664         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
23665
23666         * config/arm/elf.h: Tidy up.
23667         * config/arm/coff.h: Tidy up.
23668
23669 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
23670
23671         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
23672         * gcc/config/mips/t-iris6gld: New file.
23673         * gcc/config/mips/iris6gld.h: Likewise.
23674
23675 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23676
23677         * c-decl.c (widest_integer_literal_type_node,
23678         widest_unsigned_literal_type) : New.
23679         (init_decl_processing): Handle/use the two new types.
23680         * c-common.c (type_for_size,type_for_mode) : Same.
23681         * c-lex.c (yylex) : Same.
23682         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
23683         Same.
23684         * c-tree.h (widest_integer_literal_type_node,
23685         widest_unsigned_literal_type) : New.
23686
23687 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
23688
23689         * dwarfout.c (field_byte_offset): Correctly compute the object's
23690         byte offset for the first bit of a field which crosses an alignment
23691         boundary on a !BYTES_BIG_ENDIAN target.
23692
23693 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
23694
23695         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
23696         ntohs.
23697
23698 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
23699                           Jeff Law <law@cygnus.com>
23700
23701         * ginclude/varargs.h (va_dcl): Use word_mode for type of
23702         __builtin_va_list.
23703
23704         * except.c: Include intl.h.
23705         (expand_eh_return): Set current_function_cannot_inline.
23706         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
23707         * function.h (struct function): Add eh_return_stub_label.
23708         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
23709         * Makefile.in (except.o): Depend on intl.h.
23710
23711 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
23712
23713         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
23714         same as offsettable in cases 1 and 2.
23715
23716 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
23717
23718         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
23719         (extlh, extwh): Likewise.
23720
23721 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23722
23723         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
23724
23725 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
23726
23727         * configure.in: Add arm-pe and thumb-pe targets.
23728         * configure: Regenerate.
23729
23730         * thumb.c (arm_naked_function_p): New function: Determines if
23731         a function is naked (has no gcc generated prologue/epilogue).
23732         (is_called_in_ARM_mode): Return true if the func has the
23733         interfacearm attribute.
23734         (output_return): Do not generate a return for naked functions.
23735         (thumb_function_prologue): Do not generate a prologue for
23736         naked functions.
23737         (thumb_expand_prologue): Do not generate a prologue for naked
23738         functions.
23739         (thumb_expand_epilogue): Do not generate an epilogue for naked
23740         functions.
23741         (arm_valid_machine_decl_attribute): New function, copied from
23742         arm.c:  Permit naked and interfacearm attributes.
23743
23744         * config/arm/pe.c: New file: Support code for arm-pe target.
23745         * config/arm/pe.h: New file: Header file for arm-pe target.
23746         * config/arm/tpe.h: New file: Header file for thumb-pe target.
23747         * config/arm/t-thumb-pe: New file: Makefile fragment for
23748         thumb-pe target.
23749
23750 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
23751
23752         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
23753         -fPIC or -fpic is specified.
23754
23755 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
23756
23757         * expr.c (emit_block_move): Use copy_to_mode_reg for
23758         !TARGET_MEM_FUNCTIONS case too.
23759
23760         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
23761         appropriate.
23762         * configure: Rebuilt.
23763         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
23764         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
23765         definitions made redundant by dbxelf.h inclusion.  Delete
23766         lots of definitions related to assembly output that are
23767         specific to the SOM object format.
23768         * pa.c (output_function_prologue): Do not emit the function's
23769         name for OBJ_ELF.
23770         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
23771         * pa-pro.h: Deleted.
23772         * som.h: New file with SOM specific definitions.
23773         * elf.h: New file with ELF specific definitions.
23774
23775         * elfos.h (const_section): Output a tab before assembler directives.
23776         (ctors_section, dtors_section): Likewise.
23777         (ASM_OUTPUT_SECTION_NAME): Likewise.
23778
23779         * pa/pa1.h: Delete unused file.
23780
23781 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
23782
23783         * configure.in (hppa*-hp-hpux11*): New configuration.
23784         * configure: Rebuilt.
23785         * pa/pa-hpux11.h: New file.
23786         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
23787         command line.
23788
23789         * mips.md (leasi, leadi): New patterns.
23790
23791         * expr.c (emit_block_move): Properly handle case where one of the
23792         block move arguments has a queued increment or decrement.
23793         (clear_storage): Similarly.  Fix formatting goof.
23794
23795 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
23796
23797         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
23798         semicolon from the BSD VA_LIST replacement expression.
23799
23800         * fixinc/inclhack.sh: regen
23801         * fixinc/fixincl.x: regen
23802
23803         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
23804         now use the fixincl program.
23805
23806 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
23807
23808         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
23809         case.  Also make the PIC register call_used.
23810
23811         * m68k.h (FINALIZE_PIC): Delete.
23812         * m68k.c (finalize_pic): Delete.
23813
23814 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
23815
23816         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
23817         to memory.
23818
23819 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
23820
23821         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
23822
23823 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
23824
23825         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
23826
23827 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
23828
23829         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
23830
23831 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
23832
23833         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
23834
23835 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
23836
23837         * rs6000.c (output_toc): Always use hex values for floating-point
23838         constants.  Store single-precision values in upper-half of TOC
23839         entry in 64-bit mode.
23840         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
23841         to final constraints.
23842         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
23843         (fctiwz): Improve accuracy of RTL for pattern.
23844
23845 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23846
23847         * expr.c (expand_expr): Allow RTL_EXPR's through the
23848         MAX_INTEGER_COMPUTATION_MODE checks.
23849
23850 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
23851
23852         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
23853         such that MASK_SUPPORT_ARCH is not negative.
23854
23855 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
23856
23857         * loop.c (verify_dominator): Properly handle ADDR_VEC and
23858         ADDR_DIFF_VEC insns that appear inside loops.
23859
23860 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
23861                           Jeff Law <law@cygnus.com>
23862
23863         * rs6000.md (movdf_hardfloat32): Revert previous patch.
23864         Handle LO_SUM the same as offsettable in cases 1 and 2.
23865         * rs6000.c (find_addr_reg): Revert previous patch.
23866
23867 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
23868
23869         * system.h (strstr): New external function declaration.
23870         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
23871         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
23872         * config.in, configure: Rebuilt.
23873
23874 1999-06-24  Tom Tromey  <tromey@cygnus.com>
23875
23876         * gcc.c (main): Read user-specified specs files after computing
23877         additional startfile_prefixes.
23878
23879 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
23880
23881         Revert these two patches:
23882
23883         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23884         * loop.c (strength_reduce): When doing biv->giv conversion, update
23885         reg note of NEXT->insn.
23886
23887         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23888         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
23889         reg_biv_class.
23890         (recombine_givs): Set ix field after sorting.
23891
23892 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23893
23894         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
23895         for the parts of an UNSPEC / UNSPEC_VOLATILE.
23896
23897 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
23898
23899         *fixinc/inclhack.def:  Add fix development commentary
23900         (read_ret_type): reactivate and add selection clause
23901         (zzz_*): tweak output file name to match what is used in hackshell.tpl
23902         *fixinc/{fixincl.x|inclhack.sh}: regen
23903
23904 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
23905
23906         * expr.c (expand_expr): STRIP_NOPS before checking against
23907         MAX_INTEGER_COMPUTATION_MODE
23908         (check_max_integer_computation_mode): Likewise.
23909
23910 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
23911
23912         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
23913
23914 1999-06-22  Jim Wilson  <wilson@cygnus.com>
23915
23916         * expr.c (store_expr): When target is a promoted subreg, return a
23917         promoted subreg as a result.
23918
23919 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
23920
23921         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
23922         coding standards.
23923         (dwarf2out_define): Mark unused parameters appropriately.
23924         (gen_unspecified_parameters_die): Ditto.
23925         (gen_subprogram_die): Fix signed/unsigned warnings.
23926         (gen_variable_die): Ditto.
23927
23928 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
23929
23930         * fixinc/inclhack.def(end_else_label): combined else_label
23931         and endif_label and fixed the sed expression.
23932         *fixinc/{fixincl.x|inclhack.sh}: regen
23933
23934 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
23935
23936         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
23937         'x' when handling non-offsettable addresses
23938
23939 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
23940
23941         * final.c (shorten_branches): Don't try to split an insn that has
23942         been deleted.
23943
23944 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
23945
23946         * config/mips/mips.c (symbolic_expression_p): New function.
23947         (mips_select_rtx_section): Put symbolic expressions in the
23948         data section, not the read-only data section.
23949
23950 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
23951
23952         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
23953
23954 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
23955
23956         * collect2.c (main): Log frame table count.
23957         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
23958         (scan_prog_file) [COFF]: Handle frame tables.
23959
23960         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
23961         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
23962         * alpha/elf.h: Undef them again.
23963         * alpha/vms.h: Remove their definitions.
23964
23965 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23966
23967         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
23968         remove the clobber of r0 and change the REG_UNUSED note to
23969         REG_INC.
23970
23971 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
23972
23973         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
23974         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
23975         fits in HOST_WIDE_INT and one uses union to access a long constant
23976         as double.
23977
23978 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
23979
23980         * sparc.c (sparc_override_options): Don't allow profiling for
23981         code models other than medlow.
23982         (sparc_function_profiler): New function from old FUNCTION_PROFILER
23983         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
23984         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
23985         (sparc_block_profiler): Likewise.
23986         (sparc_function_block_profiler_exit): Likewise.
23987         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
23988         (FUNCTION_BLOCK_PROFILER): Likewise.
23989         (BLOCK_PROFILER): Likewise.
23990         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
23991         (MCOUNT_FUNCTION): New.
23992         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
23993         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
23994         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
23995         (MCOUNT_FUNCTION): New.
23996         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
23997         (BLOCK_PROFILER): Delete.
23998         (MCOUNT_FUNCTION): New.
23999
24000 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
24001
24002         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
24003
24004 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
24005
24006         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24007         Add the macros.
24008
24009         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24010         Ditto.
24011
24012         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24013         Ditto.
24014
24015         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
24016         Ditto.
24017
24018 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
24019
24020         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
24021         types.
24022
24023 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
24024
24025         * i386/djgpp.h (LIB_SPEC): New.
24026         (STARTFILE_SPEC): New.
24027
24028         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
24029
24030 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
24031
24032         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
24033         compiler flags.
24034
24035         * system.h (WSTOPSIG): New macro.
24036
24037 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24038
24039         * c-pragma.c (push_alignment): Don't ignore alignments greater than
24040         4 bytes.
24041         (insert_pack_attributes): Take into account member natural
24042         alignment.
24043
24044         * i386/winnt.c (exports_head): New static variable.
24045         (i386_pe_record_exported_symbol): New function.
24046         (i386_pe_asm_file_end): Use.
24047         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
24048         symbols to be emitted at end of assembly.
24049         (ASM_DECLARE_OBJECT_NAME): Likewise.
24050         (ASM_DECLARE_FUNCTION_NAME): Likewise.
24051
24052         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
24053         -iwithprefix.
24054
24055 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
24056
24057         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
24058         in last change.
24059
24060 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
24061
24062         * haifa-sched.c (sched_analyze_1): Use free_list instead of
24063         zapping reg_last_uses directly.
24064         (sched_analyze_2, sched_analyze_insn): Likewise.
24065         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
24066
24067 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
24068
24069         * rs6000.md (movdf_hardfloat32): Use worst case insn length
24070         attributes for cases 1 and 2.
24071
24072 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
24073
24074         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
24075         instead of set.
24076
24077 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
24078
24079         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
24080
24081 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
24082
24083         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
24084         PIC_OFFSET_TABLE_REGNUM for general alloaction.
24085         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
24086         must be stacked if it is used for PIC accesses.
24087         * arm.c (use_return_insn): Handle PIC register specially.
24088         (output_return_instruction): Likewise.
24089         (output_func_{prologue,epilogue}): Likewise.
24090         (output_expand_prologue): Likewise.
24091
24092         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
24093         (*strsi_predec): Renamed from *strqi_predec.
24094         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
24095         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
24096
24097         * arm.c (arm_override_options): Remove warning about PIC code
24098         not being supported.
24099
24100 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
24101
24102         * rs6000.c (find_addr_reg): New function.
24103         * rs6000.h (find_addr_reg): Declare.
24104         (offsettable_addr_operand): Delete.
24105         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
24106         from and stores to GPRs.
24107
24108 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
24109
24110         * alpha.c (alpha_expand_block_move): Use get_insns rather than
24111         gen_sequence as argument to emit_no_conflict_block.
24112
24113 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24114
24115         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
24116         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
24117         *fixinc/fixincl.x: regen
24118         *fixinc/inclhack.sh: regen
24119
24120 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
24121
24122         * added support for -mpcrel (PC relative addressing for m68k)
24123         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
24124         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
24125         * m68k.c (print_operand_address): Handle 32-bit PIC case.
24126         (comments for general_src_operand): Add some explanation
24127         about EXTRA_CONSTRAINTS.
24128         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
24129         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
24130         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
24131         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
24132         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
24133         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
24134         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
24135         if not already set.
24136         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
24137         * m68k.h (TARGET_PCREL): New target flag.
24138         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
24139         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
24140         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
24141         contains a SYMBOL_REF.  Relax this constraint during reload, since
24142         we want to use the predicates, not reload's built-in concept of a
24143         valid memory address, to control what insns need reloading.
24144         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
24145         operands (essentially 'g', 'm', and 's' under normal circumstances).
24146         * m68k.c (print_operand): Cause printing of pc-relative addresses
24147         to include pc register.
24148         (print_operand_address): Ditto.
24149         (general_src_operand): Accept operands that are not only
24150         general_operands, but are also valid when used as a pc-relative
24151         source.
24152         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
24153         (memory_src_operand): Similar, for memory_operands.
24154         (pcrel_address): New predicate to accept the special case of a
24155         pc-relative address.
24156         * m68k.md (many patterns): Rewrite common SImode, HImode, and
24157         QImode insns to accept *_src_operand instead of *_operand where
24158         pc-relative operands can fit.  For example, a pc-relative operand
24159         can be used as a memory source operand for addsi3, but not as a
24160         memory destination.
24161         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
24162
24163 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
24164
24165         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
24166         .thumb_set pseudo op to mark aliases of thumb functions.
24167
24168 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
24169
24170         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
24171         preference to ASM_OUTPUT_DEF, if it is defined.
24172
24173         * tm.texi: Document new, optional target macro
24174         ASM_OUTPUT_DEF_FROM_DECLS.
24175
24176 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24177
24178         * fixincludes: ISCNTL patch
24179         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
24180         (dgux_int_varargs): new for DG/UX
24181         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
24182
24183 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
24184
24185         * invoke.texi (ia32 options): Fix typo.
24186
24187 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24188
24189         * loop.c (strength_reduce): When doing biv->giv conversion, update
24190         reg note of NEXT->insn.
24191
24192 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
24193
24194         * loop.c (move_movables): Note issues with replacing REGs with
24195         SUBREGs.
24196         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
24197
24198 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
24199
24200         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
24201
24202         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
24203         the reference to `mcount' was not correct for the ELF on FreeBSD.
24204
24205 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24206
24207         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
24208         reg_biv_class.
24209
24210         (recombine_givs): Set ix field after sorting.
24211
24212 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
24213
24214         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
24215         to safe to extract a subword out of a REG.
24216
24217 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24218
24219         * sh.md (mulsi3): Don't add a no-op move at the end.
24220
24221 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24222
24223         * cse.c (cse_insn): Don't put hard register source into tables for
24224         the last insn of a libcall.
24225
24226 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24227
24228         * loop.c (strength_reduce): Insert sets of derived givs at every
24229         biv increment, even if it's the only one.
24230
24231 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
24232
24233         * dwarfout.c (add_incomplete_type): New fn.
24234         (output_type): Call it.
24235         (retry_incomplete_types): New fn.
24236         (dwarfout_finish): Call it.
24237
24238         From Eric Raskin <ehr@listworks.com>:
24239         (output_type): Output types for bases.
24240
24241 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
24242
24243         * mips.c (mips_output_conditional_branch): Add `break'
24244         between `default' label and `close braces'.
24245
24246 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
24247
24248         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
24249         specifications and make it realistic.
24250         (LIB_SPEC): Likewise.
24251
24252 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
24253
24254         * config/mips/mips.c (mips_secondary_reload_class): Check for
24255         (PLUS (SP) (REG)) and return appropriate register class.
24256         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
24257         Handle (PLUS (SP) (REG)).
24258         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
24259         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
24260         of emit_insn for tablejump.
24261
24262 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
24263
24264         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
24265         asm_fprintf format string by itself.
24266         (output_function_profiler): Likewise.
24267
24268 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
24269
24270         * combine.c (simplify_logical, case AND): Only call
24271         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
24272         or the constant is positive.
24273
24274 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
24275
24276         * configure.in: Fix typo in rs6000-ibm-aix4 case.
24277         * configure: Regenerate.
24278
24279 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
24280
24281         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
24282         require a sub-version #.
24283         * configure: Rebuilt.
24284
24285 1999-06-14  Robert Lipe  (robertlipe@usa.net)
24286
24287         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
24288
24289 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
24290
24291         * c-typeck.c (process_init_element): Detect excess elements in
24292         char array initializer.
24293
24294 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
24295
24296         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
24297
24298 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
24299
24300         * invoke.texi (Option Summary): Add -fpermissive flag.
24301
24302 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
24303
24304         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
24305         that require PIC code sequences.
24306
24307 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
24308
24309         * configure.in: Add new target: thumb-elf.
24310         * configure: Regenerate.
24311         * config/arm/t-thumb-elf: New file: Makefile fragment for
24312         thumb-elf build.
24313         * config/arm/telf.h: New file: Header file for thumb-elf
24314         build.
24315
24316 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
24317
24318         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
24319         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
24320         initializers is some circumstances.
24321
24322         * fixinc/inclhack.def (endif_label): Add additional selector for
24323         more bogus stuff after #endif statements.
24324         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
24325
24326 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24327
24328         * i386/cygwin.h (SET_ASM_OP): Define.
24329
24330 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24331
24332         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
24333
24334 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24335
24336         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
24337         latter.
24338
24339         * sh.md (ic_invalidate_line_i): Remove second alternative.
24340
24341 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24342
24343         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
24344         test for the presence of valid prototypes.  Delete bypass expr.
24345         (ioctl_fix_ctrl): Correct the selection expression.
24346         (no_double_slash): Correct quoting rules
24347         *fixinc/fixincl.x: regen
24348         *fixinc/inclhack.sh: regen
24349
24350 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
24351
24352         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
24353
24354 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24355
24356         * rs6000.md (movsi_got_internal_mem): Delete.
24357         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
24358         (GOT_TOC_REGNUM): Delete.
24359         (PIC_OFFSET_TABLE_REGNUM): Define.
24360         (FINALIZE_PIC): Disable.
24361         * rs6000.c (rs6000_got_register): New code for fixed pic register.
24362         (rs6000_replace_regno): Delete.
24363         (rs6000_finalize_pic): Likewise.
24364         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
24365
24366 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24367
24368         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
24369         is a note; use <= for the compare; advance P while it is
24370         a NOTE.
24371
24372 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
24373
24374         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
24375         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
24376
24377         * varasm.c (remove_from_pending_weak_list): Verify t->name
24378         is non-NULL before passing it to strcmp.
24379
24380 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24381
24382         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
24383         the typed arguments are not part of a comment
24384         (ioctl_fix_ctrl): Added a purpose comment
24385         *fixinc/fixincl.x: regenerate
24386         *fixinc/inclhack.sh: regenerate
24387
24388 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24389
24390         * invoke.texi: Add C4x invocation docs.
24391
24392 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24393
24394         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
24395         Define new macros.
24396         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
24397         TARGET_EXPOSE_LDP.
24398         (c4x_legitimize_reload_address): New function.
24399         * config/c4x/c4x.md: Update docs.
24400
24401 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
24402
24403         * fixincludes: Avoid removing '.'.
24404         * fixinc/fixinc.svr4: Likewise.
24405         * fixinc/fixinc.winnt: Likewise.
24406         * fixinc/inclhack.tpl: Likewise.
24407         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
24408
24409 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24410
24411         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
24412         pattern.
24413         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
24414
24415 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24416
24417         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
24418         correctly.
24419
24420 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
24421
24422         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
24423         * configure: Regenerate.
24424
24425 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
24426
24427         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
24428         values.
24429
24430 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
24431
24432         * fixinc/inclhack.def (avoid_bool): Also catch
24433         "typedef [unsigned] int bool".
24434         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
24435
24436         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
24437         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
24438         * configure: Rebuilt.
24439
24440 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
24441
24442         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
24443         such that we can override its definitions if necessary.
24444         (CPP_SPEC): New define.  Support processor specific predefines via
24445         %(cpp_cpu).
24446         (CC1_SPEC): New define.  Support processor specific compiler
24447         options via %(cc1_cpu).
24448         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
24449         -static.
24450
24451 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24452
24453         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
24454         between sed's -e flag, and the open-quote following it.
24455         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
24456
24457 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
24458                           Jeffrey A Law  (law@cygnus.com)
24459
24460         * varasm.c (assemble_start_function): Remove the function
24461         from the pending weak decls list when we define a function.
24462         (assemble_variable): Similarly for variables.
24463         (weak_finish): Ignore items on the list with a NULL name.
24464         (remove_from_ending_weak_list); New function to "remove" an item
24465         from the pending weak declarations list.
24466
24467 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
24468
24469         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
24470
24471 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
24472
24473         * c-lex.c (GETC): Redefine to call getch.
24474         (UNGETC): Redefine to call put_back.
24475         (putback_buffer): New structure type.
24476         (putback): New static structure.
24477         (getch): New function.
24478         (put_back): New function.
24479         (yylex): Replace unused bytes from bad multibyte character.
24480
24481 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
24482
24483         * cpplib.c (do_define): Cast `alloca' return value.
24484         (do_include, do_undef, do_pragma): Likewise.
24485         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
24486         values.
24487         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
24488         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
24489
24490 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
24491
24492         * sparc.md (abstf2): This should be an expand.
24493         (split after abstf2_notv9): Fix mode.
24494         (abstf2_hq_v9): New pattern.
24495         (abstf2_v9): Only use when no hard quad.
24496         (absdf2_v9): Fix if target is not the same as source.
24497         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
24498         Add correct output constraints.
24499
24500 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
24501
24502         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
24503         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
24504
24505 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
24506
24507         * mips.h (mips_output_conditional_branch): New function.
24508         (mips_adjust_insn_length): Likewise.
24509         (ASSEMBLER_SCRATCH_REGNUM): New macro.
24510         (ADJUST_INSN_LENGTH): Likewise.
24511         * mips.c (print_operand): Add `F' and `W' for floating-point
24512         comparison opcodes.
24513         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
24514         are now in bytes.
24515         (mips_adjust_insn_length): New function.
24516         (mips_output_conditional_branch): New function.
24517         * mips.md (length): Adjust attribute definition to handle
24518         conditional branches.  Change lengths to bytes, rather than
24519         instructions throughout.  Remove length attribute from
24520         instructions whose length is four bytes, and rely on the default
24521         instead.
24522         (dslot): Fix typo in comment.
24523         Reword conditional branch patterns to use
24524         mips_output_conditional_branch.
24525
24526 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24527
24528         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
24529         (LIB_SPEC): Likewise.
24530         Link with -lprof1_r for -g/-pg.
24531
24532 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
24533
24534         * loop.c (check_dbra_loop): Fix change of Jan 19.
24535
24536 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
24537
24538         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
24539         (STARTFILE_SPEC):  Define, override the svr4.h version.
24540         (ENDFILE_SPEC):  Likewise.
24541
24542 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
24543
24544         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
24545         * fixinc/fixincl.x: Regenerated.
24546         * fixinc/inclhack.sh: Regenerated.
24547
24548 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24549
24550         * sh.c (barrier_align): Don't return early for normal branch/barrier
24551         when optimizing for SH2.
24552
24553 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
24554
24555         * i386/udk.h (LINK_SPEC): Correct linker search path for
24556         system libraries.
24557
24558 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24559
24560         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
24561         (braf_label_ref_operand): Delete.
24562         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
24563         * sh.md (casesi_jump_2): Operand1 is now the inside of a
24564         label_ref, and has no predicate.
24565         The patten has a predicate to guard against invalid substitutions.
24566         (dummy_jump): Delete.
24567         (casesi): Update use of casesi_jump_2.
24568
24569 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24570
24571         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
24572         *fixinc/fixincl.x: regenerate
24573         *fixinc/inclhack.sh: regenerate
24574
24575 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
24576
24577         * dwarf2out.c (add_incomplete_type): New fn.
24578         (gen_struct_or_union_type_die): Call it.
24579         (retry_incomplete_types): New fn.
24580         (dwarf2out_finish): Call it.
24581
24582 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
24583
24584         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
24585         current block starts with a CODE_LABEL and ends with a CALL and
24586         we can not find all the argument setup instructions for the CALL.
24587
24588 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
24589
24590         Revert this change:
24591         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
24592         something is a candidate for optimize_bit_field_compare.
24593
24594 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24595
24596         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
24597
24598 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
24599
24600         * alpha.c (override_options): Thinko in last patch.
24601
24602         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
24603         (LIB_SPEC): Recognize -pthread.
24604
24605 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
24606
24607         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
24608         definition in config/arm/coff.h
24609         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
24610
24611 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
24612
24613         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
24614         fixes that need "file=xxx\n" prepended before invocation
24615         (start_fixer - new): starting the fixer process is complex enough
24616         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
24617         (process): uses the new routine; omit usage of putenv()
24618         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
24619         * fixinc/fixincl.x: regenerate
24620
24621 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
24622
24623         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
24624         and version #s (1.1 -> 2.96) as needed.
24625         * README.g77: Kill way out of date file in the toplevel directory.
24626
24627 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
24628
24629         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
24630         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
24631         * configure: Rebuilt.
24632         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
24633         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
24634         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
24635         (SWITCH_TAKES_ARG): Likewise.
24636         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
24637         * config/t-freebsd: Moved from config/i386/ so it can used for all
24638         FreeBSD targets.
24639
24640 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
24641
24642         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
24643
24644 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
24645
24646         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
24647         * configure: Rebuilt.
24648
24649 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
24650
24651         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
24652         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
24653         * rs6000/rs6000.c (rs6000_file_start): Use putc.
24654         (rs6000_output_load_toc_table): Same.
24655         (output_prolog, output_mi_thunk): Same.
24656         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
24657         (ASM_GLOBALIZE_LABEL): Use putc.
24658
24659 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
24660
24661         * alpha.md (reload_*_help): New patterns and splitters.
24662         (reload_*): Use them.
24663         (mov[qh]i): Likewise.
24664
24665 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
24666
24667         * cccp.c (handle_directive): Handle backslash-newlines in quoted
24668         strings correctly.
24669
24670 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
24671
24672         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
24673
24674 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
24675
24676         * flow.c (mark_regs_live_at_end, insn_dead_p,
24677         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
24678         and HARD_FRAME_POINTER_REGNUM special treatment if reload
24679         hasn't run or the frame pointer is needed.
24680         * haifa-sched.c (attach_deaths): Likewise.
24681         * sched.c (attach_deaths): Likewise.
24682
24683 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
24684
24685         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
24686         calculate_can_reach_end returns nonzero.
24687
24688         * configure.in (native gas tests): Search for an assembler in the
24689         same manner that the installed compiler will.
24690         * configure: Rebuilt.
24691         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
24692
24693         * alias.c (find_base_term): Improve handling of addresses
24694         constructed from binary operations.
24695
24696 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
24697
24698         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
24699
24700 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
24701
24702         * function.h (cleanup_label, frame_offset): Declare.
24703         (tail_recursion_label, tail_recursion_reentry): Likewise.
24704         (arg_pointer_save_area, rtl_expr_chain): Likewise.
24705         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
24706         (tail_recursion_label, tail_recursion_reentry): Likewise.
24707         (arg_pointer_save_area, rtl_expr_chain): Likewise.
24708
24709 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
24710
24711         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
24712         defined.
24713         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
24714         (MAX_OFILE_ALIGNMENT): Define.
24715
24716 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
24717
24718         * fixincl.c: Replace local include scheme with #includes of
24719         gansidecl.h and system.h.
24720         * procopen.c:  Likewise.
24721         * server.c:  Likewise.
24722
24723 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
24724
24725         * i386/t-dgux (EXTRA_PARTS): Add crti.o
24726         (crti.o): Add build rule and dependencies.
24727         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
24728
24729 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24730
24731         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
24732         (LIB_LINUX_SPEC): Likewise.
24733         (LIB_LINUX_SPEC): Add support for -pthread
24734         (CPP_OS_LINUX_SPEC): Likewise.
24735         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
24736         specified.
24737
24738 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
24739
24740         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
24741         conditional move.
24742         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
24743         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
24744         for IEEE math and CC_FCOMI.
24745         (put_jump_code): No IEEE if CC_FCOMI is set.
24746
24747 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
24748
24749         * fold-const.c (fold_truthop): Make the field reference unsigned
24750         when converting a single bit compare.
24751
24752 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24753
24754         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
24755
24756 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
24757
24758         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
24759         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
24760         version did.
24761
24762         * reload.c (push_reload): Do not call remove_address_replacements
24763         when presented with identical optional reloads.
24764
24765 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
24766
24767         * alpha.h (MASK_FIX, TARGET_FIX): New.
24768         (MASK_*): Reorganize constants.
24769         (CPP_AM_FIX_SPEC): New.
24770         (TARGET_SWITCHES): Add FIX.
24771         (EXTRA_SPECS): Likewise.
24772         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
24773         (SECONDARY_MEMORY_NEEDED): Likewise.
24774         (REGISTER_MOVE_COST): Likewise.
24775         * alpha.c (override_options): Add FIX support.  Always use
24776         ALPHA_TP_PROG for ev6.
24777         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
24778         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
24779         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
24780
24781 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
24782
24783         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
24784         something is a candidate for optimize_bit_field_compare.
24785
24786 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
24787
24788         * gcc.texi (Passes): Document branch-shortening.
24789         * invoke.texi (Debugging Options): Document the fact that `-dp'
24790         outputs length information for instructions.
24791
24792 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
24793
24794         * flow.c: Revert previous delta.
24795
24796 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
24797
24798         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
24799         FRAME_POINTER_REGNUM.
24800         (mark_set_1): Ditto.
24801         (mark_used_regs): Ditto.
24802
24803 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
24804
24805         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
24806         (GOT_PCREL): New macro.  Define to 1 if not already defined.
24807         * arm/elf.h (GOT_PCREL): Define to 0.
24808         * arm.c (arm_finalize_pic): Take into account the setting of
24809         GOT_PCREL.
24810
24811 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
24812
24813         * output.h (STRIP_NAME_ENCODING): Provide default definition.
24814         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
24815
24816         * flow.c (mark_set_1): Do not record BLKmode stores as dead
24817         store elimination candidates.
24818
24819 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24820
24821         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
24822         TARGET_GAS.
24823
24824 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
24825
24826         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
24827         Add use of x-aix41-gld.
24828
24829 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
24830
24831         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
24832         (ASM_OUTPUT_DESTRUCTOR): Define.
24833
24834 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
24835
24836         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
24837         last CODE_LABEL in a loop if we have previously passed a jump
24838         to the top of the loop.
24839
24840 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
24841
24842         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
24843         applying Philip's patch.
24844
24845 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
24846
24847         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
24848         are not VAR_DECLs.
24849
24850 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
24851
24852         * loop.c (strength_reduce): Grow reg_single_usage as needed.
24853
24854 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
24855
24856         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
24857         Also remove a useless comment.
24858
24859 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
24860
24861         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
24862
24863 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
24864
24865         * collect2.c (main): Only generate import or export file and add
24866         to link arguments if non-empty.  Use xmalloc not alloca.
24867         (write_{export,import}_file): Delete.
24868         (write_aix_file): New function.
24869         (locatelib): Use xmalloc not malloc.
24870         (GCC_OK_SYMBOL): Do not check type if aix64.
24871
24872 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
24873
24874         Based on patch by Scott Bambrough and Pat Beirne:
24875         * config/arm/arm.c (making_const_table): New variable.
24876         * config/arm/arm.h (making_const_table): Declare.
24877         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
24878         appropriate.
24879         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
24880         Keep track of when we are building the constant table.
24881
24882 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
24883
24884         * config/arm/arm.c (arm_override_options): Fix erroneous warning
24885         message.
24886
24887 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
24888
24889         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
24890         defined.
24891
24892 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
24893
24894         * tm.texi (FUNCTION_ARG): Correct description of a stack element
24895         in a PARALLEL.
24896
24897 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
24898
24899         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
24900
24901 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24902
24903         * rs6000.c (output_mi_thunk): Enable full support again.
24904
24905 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24906
24907         * sh.h (BRANCH_COST): Define.
24908
24909 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
24910
24911         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
24912
24913 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
24914
24915         * function.c (assign_stack_local): Align stack slot propertly.
24916         (assign_outer_stack_local): Likewise.
24917
24918 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
24919
24920         * expr.h (lang_expand_constant): Declare.
24921         * toplev.c (lang_expand_constant): Define it.
24922         * varasm.c (output_constant): Use it.
24923
24924 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24925
24926         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
24927         Change function definitions to K&R style.
24928
24929 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24930
24931         * fixinc/fixincl.c: We must not ignore SIGCLD now.
24932
24933 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
24934
24935         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
24936         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
24937         (several places): omit static initialization
24938         (process): use single fd, since only the read fd is used
24939         * fixinc/gnu-regex.c: define 'const' away, if not supported
24940         * fixinc/procopen.c(several places): omit static initialization
24941         * fixinc/server.c: define 'volitile' away, if not supported
24942
24943 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
24944
24945         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
24946         asm_fprintf and %L to generate the label name.
24947         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
24948         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
24949
24950 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
24951
24952         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
24953         insn for a conditional jump can not be found.
24954
24955 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
24956
24957         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
24958         on variables in specific sections other than .sbss and .sdata.
24959
24960 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
24961
24962         * stmt.c (expand_return): Call start_cleanup_deferral and
24963         end_cleanup_deferral around conditional code.
24964
24965 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
24966
24967         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
24968         filename lists.  Utilizes new "krstr" AutoGen function.
24969         * fixinc/fixincl.x: Rebuilt.
24970
24971 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
24972
24973         * i386.c (output_float_compare): Avoid GNU-C extensions.
24974
24975 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
24976
24977         * version.c: Bump to distinguish mainline tree from the
24978         gcc-2.95 branch.
24979
24980 See ChangeLog.1 for earlier changes.
24981
24982